def get_keyboard_data(folder_name): def rename(): create_keyboard(default_text=folder_name) def make_new_folder_action(): self.storage.add_folder(destination + '/' + folder_name, ignore_existing=True) #return file options to root options while self.return_to_previous_list(): pass #go back to file explorer file_callback() if self.storage.folder_exists(destination + '/' + folder_name): title = lang.pack['Files']['Keyboard']['Error']['Title'] body_text = lang.pack['Files']['Keyboard']['Error']['Body'] option1 = lang.pack['Files']['Keyboard']['Error']['Rename'] option2 = lang.pack['Files']['Keyboard']['Error']['Cancel'] modal_screen = Modal_Question_No_Title(body_text, option1, option2, rename, back_function) #make screen roboprinter.screen_controls.set_screen_content( modal_screen, title, back_function=back_function, option_function='no_option') else: make_new_folder_action()
def generate_dual_option(self, name, entry): title = name temp_ext1 = entry['Extruder1'] temp_ext2 = entry['Extruder2'] temp_bed = entry['Bed'] body_text = ( "[size=40][color=#69B3E7][font=fonts/S-Core - CoreSansD55Bold.otf][b]" + title + "[/color][/b][/font]\n" + "[size=30]" + lang.pack['Preheat']['Extruder1'] + str(temp_ext1) + lang.pack['Preheat']['Celsius_Alone'] + "\n[size=30]" + lang.pack['Preheat']['Extruder2'] + str(temp_ext2) + lang.pack['Preheat']['Celsius_Alone'] + "\n" + lang.pack['Preheat']['Bed'] + str(temp_bed) + lang.pack['Preheat']['Celsius_Alone']) #alter the view for the model: if self.model == "Robo C2": body_text = ( "[size=40][color=#69B3E7][font=fonts/S-Core - CoreSansD55Bold.otf][b]" + title + "[/color][/b][/font]\n" + "[size=30]" + lang.pack['Preheat']['Extruder1'] + str(temp_ext1) + lang.pack['Preheat']['Celsius_Alone'] + "\n[size=30]" + lang.pack['Preheat']['Extruder2'] + str(temp_ext2) + lang.pack['Preheat']['Celsius_Alone']) #these options lead to callbacks that will either set the temperature or edit the option option1 = partial(self.set_temp, extruder=[temp_ext1, temp_ext2], bed=temp_bed) option2 = partial(self.edit, option=title) option1_text = lang.pack['Preheat']['Preheat'] if self.end_point != None: option1_text = lang.pack['Preheat']['Select'] #body_text, option1_text, option2_text, option1_function, option2_function modal_screen = Modal_Question_No_Title(body_text, option1_text, lang.pack['Preheat']['Edit'], option1, option2) #make screen if self.bb == None: self.bb_screen = roboprinter.robosm._generate_backbutton_screen( name='view_preheat', title=lang.pack['Preheat']['Edit_Preset']['Select_Preset'], back_destination=self._name, content=modal_screen, backbutton_callback=self.c.update) else: #if this screen already exists then delete it and remake it. if self.bb.does_screen_exist( lang.pack['Preheat']['Edit_Preset']['Select_Preset']): self.show_dual_preheat_selection_screen() self.bb.make_screen( modal_screen, lang.pack['Preheat']['Edit_Preset']['Select_Preset'], option_function="no_option", )
def confirm_delete(): body_text = lang.pack['Files']['Delete_File_Conf']['Body'] option1 = lang.pack['Files']['Delete_File_Conf']['positive'] option2 = lang.pack['Files']['Delete_File_Conf']['negative'] modal_screen = Modal_Question_No_Title(body_text, option1, option2, delete_action, cancel_action) #add to the screen roboprinter.screen_controls.set_screen_content( modal_screen, lang.pack['Files']['Delete_File_Conf']['Title'], back_function=back_function, option_function='no_option')
def confirm_exit(): body_text = lang.pack['Files']['File_Options']['Exit_File_Options']['Body'] option1 = lang.pack['Files']['File_Options']['Exit_File_Options']['Option1'] option2 = lang.pack['Files']['File_Options']['Exit_File_Options']['Option2'] modal_screen = Modal_Question_No_Title(body_text, option1, option2, exit_fe, cancel_action ) #add to the screen roboprinter.screen_controls.set_screen_content(modal_screen, lang.pack['Files']['File_Options']['Exit_File_Options']['Title'], back_function=back_function, option_function = 'no_option')
def update_warning(): body_text = roboprinter.lang.pack['Update_Printer'][ 'Update_Warning']['Body'] option1 = roboprinter.lang.pack['Update_Printer'][ 'Update_Warning']['Option1'] option2 = roboprinter.lang.pack['Update_Printer'][ 'Update_Warning']['Option2'] modal_screen = Modal_Question_No_Title(body_text, option1, option2, loading_popup, cancel) name = 'update' title = roboprinter.lang.pack['Update_Printer']['Update_Warning'][ 'Title'] roboprinter.back_screen(name=name, title=title, back_destination=back_destination, content=modal_screen)
def reset_defaults(self): #get the current screen back_screen = roboprinter.robosm.current def reset(): roboprinter.printer_instance._printer.commands("M502") roboprinter.printer_instance._printer.commands("M500") roboprinter.printer_instance._printer.commands("M501") #make screen to say that the variables have been reset #body_text, button_function, button_text = roboprinter.lang.pack['Button_Screen']['Default_Button'] content = Button_Screen(roboprinter.lang.pack['EEPROM'] ['Acknowledge_Reset']['Body_Text'], roboprinter.robosm.go_back_to_main, button_text=roboprinter.lang.pack['EEPROM'] ['Acknowledge_Reset']['Button']) #make screen roboprinter.robosm._generate_backbutton_screen( name='ack_reset_eeprom', title=roboprinter.lang.pack['EEPROM']['Acknowledge_Reset'] ['Title'], back_destination=back_screen, content=content) def cancel(): roboprinter.robosm.current = back_screen #make the confirmation screen #body_text, option1_text, option2_text, option1_function, option2_function content = Modal_Question_No_Title( roboprinter.lang.pack['EEPROM']['Reset_Confirmation']['Body_Text'], roboprinter.lang.pack['EEPROM']['Reset_Confirmation']['positive'], roboprinter.lang.pack['EEPROM']['Reset_Confirmation']['negative'], reset, cancel) #make screen roboprinter.robosm._generate_backbutton_screen( name='reset_eeprom', title=roboprinter.lang.pack['EEPROM']['Reset_Confirmation'] ['Title'], back_destination=back_screen, content=content)
def delete_preset(self): screen = roboprinter.robosm.current def delete(): if not self.dual: #get all the options presets = roboprinter.printer_instance._settings.get( ['Temp_Preset']) #delete entry name = next(iter(self.selected_option)) del presets[name] #save roboprinter.printer_instance._settings.set(['Temp_Preset'], presets) roboprinter.printer_instance._settings.save() #Info Popup saying that we deleted the preset title = lang.pack['Preheat']['Delete']['Deleted'] ep = Error_Popup(name, title, callback=self.delete_callback) ep.show() else: #get all the options presets = roboprinter.printer_instance._settings.get( ['Dual_Temp_Preset']) #delete entry name = next(iter(self.selected_option)) del presets[name] #save roboprinter.printer_instance._settings.set( ['Dual_Temp_Preset'], presets) roboprinter.printer_instance._settings.save() #Info Popup saying that we deleted the preset title = lang.pack['Preheat']['Delete']['Deleted'] ep = Error_Popup(name, title, callback=self.delete_callback) ep.show() def cancel(): #go back to previous screen if self.bb == None: roboprinter.robosm.current = screen else: if self.option != None: self.bb.go_back_to_screen_with_title( lang.pack['Preheat']['Edit_Preset']['Title'], group=self.group) else: self.bb.go_back_to_screen_with_title( lang.pack['Preheat']['Edit_Preset']['Add_Material'], group=self.group) #make the modal screen name = next(iter(self.selected_option)) body_text = lang.pack['Preheat']['Delete']['Body'] + str( name) + lang.pack['Preheat']['Delete']['Q_Mark'] modal_screen = Modal_Question_No_Title( body_text, lang.pack['Preheat']['Delete']['positive'], lang.pack['Preheat']['Delete']['negative'], delete, cancel) #make screen if self.bb == None: roboprinter.robosm._generate_backbutton_screen( name='delete_preset', title=lang.pack['Preheat']['Delete']['Title'], back_destination=screen, content=modal_screen) else: self.bb.make_screen(modal_screen, lang.pack['Preheat']['Delete']['Title'], option_function='no_option', group=self.group)
def save_preset(self): #get all the options if not self.dual: presets = roboprinter.printer_instance._settings.get( ['Temp_Preset']) else: presets = roboprinter.printer_instance._settings.get( ['Dual_Temp_Preset']) current_screen = roboprinter.robosm.current name = next(iter(self.selected_option)) def save_new_entry(): #delete old entry if not self.dual: if self.original_option != None: del presets[self.original_option] #save new entry presets[name] = self.selected_option[name] #save roboprinter.printer_instance._settings.set(['Temp_Preset'], presets) roboprinter.printer_instance._settings.save() else: if self.original_option != None: del presets[self.original_option] #save new entry presets[name] = self.selected_option[name] #save roboprinter.printer_instance._settings.set( ['Dual_Temp_Preset'], presets) roboprinter.printer_instance._settings.save() #go back to screen self.callback('', name) def cancel(): #go back to previous screen if self.bb == None: roboprinter.robosm.current = current_screen else: if self.option != None: self.bb.go_back_to_screen_with_title( lang.pack['Preheat']['Edit_Preset']['Title'], group=self.group) else: self.bb.go_back_to_screen_with_title( lang.pack['Preheat']['Edit_Preset']['Add_Material'], group=self.group) #check for duplicate names if name in presets and name != self.original_option and not self.confirm_overwrite: #make the modal screen body_text = lang.pack['Preheat']['Duplicate']['Body_Text'] + str( name) + lang.pack['Preheat']['Duplicate']['Body_Text1'] modal_screen = Modal_Question_No_Title( body_text, lang.pack['Preheat']['Duplicate']['option1'], lang.pack['Preheat']['Duplicate']['option2'], save_new_entry, cancel) #make screen if self.bb == None: roboprinter.robosm._generate_backbutton_screen( name='duplicate_error', title=lang.pack['Preheat']['Duplicate']['Title'], back_destination=current_screen, content=modal_screen) else: self.bb.make_screen(modal_screen, lang.pack['Preheat']['Duplicate']['Title'], option_function='no_option', group=self.group) else: save_new_entry()
def get_keyboard_results(self, result): def overwrite(): Logger.info("Result is: " + str(result)) name = next(iter(self.selected_option)) if not self.dual: temp_option = { result: { 'Extruder1': self.selected_option[name]['Extruder1'], 'Bed': self.selected_option[name]['Bed'] } } else: temp_option = { result: { 'Extruder1': self.selected_option[name]['Extruder1'], 'Extruder2': self.selected_option[name]['Extruder2'], 'Bed': self.selected_option[name]['Bed'] } } Logger.info(str(temp_option)) self.selected_option = temp_option self.name_button.update_value(str(result)) if self.bb == None: roboprinter.robosm.current = 'edit_preheat' else: Logger.info("Going back a page with group: " + str(self.group)) if self.option != None: self.bb.go_back_to_screen_with_title( lang.pack['Preheat']['Edit_Preset']['Title']) else: self.bb.go_back_to_screen_with_title( lang.pack['Preheat']['Edit_Preset']['Add_Material']) self.confirm_overwrite = True def cancel(): name = next(iter(self.selected_option)) self.show_keyboard(name) #check if the result will overwrite an existing preset preheat_name = next(iter(self.selected_option)) Logger.info("Result is: " + str(result) + " Name is: " + str(preheat_name)) preheat_settings = roboprinter.printer_instance._settings.get( ['Temp_Preset']) if result != preheat_name and result in preheat_settings: #make the modal screen body_text = lang.pack['Preheat']['Duplicate']['Body_Text'] + str( result) + lang.pack['Preheat']['Duplicate']['Body_Text1'] modal_screen = Modal_Question_No_Title( body_text, lang.pack['Preheat']['Duplicate']['option1'], lang.pack['Preheat']['Duplicate']['option2'], overwrite, cancel) #make screen if self.bb == None: roboprinter.robosm._generate_backbutton_screen( name='duplicate_error', title=lang.pack['Preheat']['Duplicate']['Title'], back_destination='edit_preheat', content=modal_screen) else: self.bb.make_screen(modal_screen, lang.pack['Preheat']['Duplicate']['Title'], option_function='no_option', group=self.group) else: overwrite()