Exemplo n.º 1
0
        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",
            )
Exemplo n.º 3
0
            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')
Exemplo n.º 4
0
        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')
Exemplo n.º 5
0
        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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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()
Exemplo n.º 9
0
    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()