Exemplo n.º 1
0
 def change_speech_module(*data):
     index_engine = combobox_speech_module.get_active()
     combobox_speech_language.clear()
     test = speech.Speech()
     list = test.list_output_modules()
     test.set_output_module(list[index_engine])
     for item in test.list_voices():
         combobox_speech_language.add_item(item)
     combobox_speech_language.set_active(self.speech_language)
Exemplo n.º 2
0
    def open_configure_dialog(self, page=0):
        def change_engine(*data):
            index_engine = combobox_engine.get_active()
            combobox_language.clear()
            for item in self.available_ocr_engine_list[index_engine][1]:
                combobox_language.add_item(item)
            combobox_language.set_active(self.language)

        def change_speech_module(*data):
            index_engine = combobox_speech_module.get_active()
            combobox_speech_language.clear()
            test = speech.Speech()
            list = test.list_output_modules()
            test.set_output_module(list[index_engine])
            for item in test.list_voices():
                combobox_speech_language.add_item(item)
            combobox_speech_language.set_active(self.speech_language)

        def change_mode_of_rotation(*data):
            if (combobox_mode_of_rotation.get_active() == 2):
                combobox_angle.show()
                self.label_angle.show()
            else:
                combobox_angle.hide()
                self.label_angle.hide()

        self.require_scanner_refresh = False

        #Notebook
        notebook = containers.NoteBook()
        notebook.show_all()

        #GENERAL - PAGE #########
        label_font = widget.Label(_("Font"))
        fontbutton_font = widget.FontButton()
        fontbutton_font.set_font_name(self.font)
        label_font.set_mnemonic_widget(fontbutton_font)

        label_font_color = widget.Label(_("Font Color"))
        colorbutton_font = widget.ColorButton()
        colorbutton_font.set_color_from_string(self.font_color)
        label_font_color.set_mnemonic_widget(colorbutton_font)

        label_background_color = widget.Label(_("Background Color"))
        colorbutton_background = widget.ColorButton()
        colorbutton_background.set_color_from_string(self.background_color)
        label_background_color.set_mnemonic_widget(colorbutton_background)

        label_highlight_font = widget.Label(_("Highlight Font"))
        fontbutton_highlight_font = widget.FontButton()
        fontbutton_highlight_font.set_font_name(self.highlight_font)
        label_highlight_font.set_mnemonic_widget(fontbutton_highlight_font)

        label_highlight_color = widget.Label(_("Highlight Color"))
        colorbutton_highlight = widget.ColorButton()
        colorbutton_highlight.set_color_from_string(self.highlight_color)
        label_highlight_color.set_mnemonic_widget(colorbutton_highlight)

        label_highlight_background = widget.Label(_("Highlight Background"))
        colorbutton_highlight_background = widget.ColorButton()
        colorbutton_highlight_background.set_color_from_string(
            self.background_highlight_color)
        label_highlight_background.set_mnemonic_widget(
            colorbutton_highlight_background)

        label_speech_module = widget.Label(_("Speech-Module"))
        combobox_speech_module = widget.ComboBox()
        for item in speech.Speech().list_output_modules():
            combobox_speech_module.add_item(item)
        combobox_speech_module.connect_change_callback_function(
            change_speech_module)
        label_speech_module.set_mnemonic_widget(combobox_speech_module)

        label_speech_language = widget.Label(_("Speech-Language"))
        combobox_speech_language = widget.ComboBox()
        combobox_speech_module.set_active(self.speech_module)
        combobox_speech_language.set_active(self.speech_language)
        label_speech_language.set_mnemonic_widget(combobox_speech_language)

        label_speech_rate = widget.Label(_("Speech-Rate"))
        spin_speech_rate = widget.SpinButton(self.speech_rate, -100, 100, 1,
                                             10, 0)
        label_speech_rate.set_mnemonic_widget(spin_speech_rate)
        label_speech_volume = widget.Label(_("Speech-Volume"))
        spin_speech_volume = widget.SpinButton(self.speech_volume, -100, 100,
                                               1, 10, 0)
        label_speech_volume.set_mnemonic_widget(spin_speech_volume)
        label_speech_pitch = widget.Label(_("Speech-Pitch"))
        spin_speech_pitch = widget.SpinButton(self.speech_pitch, -100, 100, 1,
                                              10, 0)
        label_speech_pitch.set_mnemonic_widget(spin_speech_pitch)

        grid_general = containers.Grid()
        grid_general.add_widgets([
            (label_font, 1, 1), (fontbutton_font, 1, 1),
            containers.Grid.NEW_ROW, (label_font_color, 1, 1),
            (colorbutton_font, 1, 1), containers.Grid.NEW_ROW,
            (label_background_color, 1, 1), (colorbutton_background, 1, 1),
            containers.Grid.NEW_ROW, (label_highlight_font, 1, 1),
            (fontbutton_highlight_font, 1, 1), containers.Grid.NEW_ROW,
            (label_highlight_color, 1, 1), (colorbutton_highlight, 1,
                                            1), containers.Grid.NEW_ROW,
            (label_highlight_background, 1, 1),
            (colorbutton_highlight_background, 1, 1), containers.Grid.NEW_ROW,
            (label_speech_module, 1, 1), (combobox_speech_module, 1, 1),
            containers.Grid.NEW_ROW, (label_speech_language, 1, 1),
            (combobox_speech_language, 1, 1), containers.Grid.NEW_ROW,
            (label_speech_rate, 1, 1), (spin_speech_rate, 1, 1),
            containers.Grid.NEW_ROW, (label_speech_pitch, 1, 1),
            (spin_speech_pitch, 1, 1), containers.Grid.NEW_ROW,
            (label_speech_volume, 1, 1), (spin_speech_volume, 1, 1)
        ])
        notebook.add_page(_("General"), grid_general)
        grid_general.show_all()

        #RECOGNITION - PAGE ########
        #Engine
        label_engine = widget.Label(_("Engine"))
        combobox_engine = widget.ComboBox()
        combobox_engine.connect_change_callback_function(change_engine)
        label_engine.set_mnemonic_widget(combobox_engine)

        for item in self.available_ocr_engine_list:
            combobox_engine.add_item(item[0])

        #Language
        label_language = widget.Label(_("Language"))
        combobox_language = widget.ComboBox()
        label_language.set_mnemonic_widget(combobox_language)

        #setting current engine - This can't be done before creating language combobox
        combobox_engine.set_active(self.ocr_engine)
        combobox_language.set_active(self.language)

        #Run text cleaner
        checkbutton_run_text_cleaner = widget.CheckButton(
            _("Run Text Cleaner"))
        checkbutton_run_text_cleaner.set_active(self.run_text_cleaner)

        #insert_position
        label_insert_position = widget.Label(_("Insert Position"))
        combobox_insert_position = widget.ComboBox()
        combobox_insert_position.add_item(_("Start"))
        combobox_insert_position.add_item(_("Cursor"))
        combobox_insert_position.add_item(_("End"))
        combobox_insert_position.set_active(self.insert_position)
        label_insert_position.set_mnemonic_widget(combobox_insert_position)

        #Seperator
        seperator_1 = widget.Separator()

        #Mode of Rotation
        label_mode_of_rotation = widget.Label(_("Mode Of Rotation"))
        combobox_mode_of_rotation = widget.ComboBox()
        combobox_mode_of_rotation.add_item(_("Full Automatic"))
        combobox_mode_of_rotation.add_item(_("Partial Automatic"))
        combobox_mode_of_rotation.add_item(_("Manual"))
        combobox_mode_of_rotation.connect_change_callback_function(
            change_mode_of_rotation)
        label_mode_of_rotation.set_mnemonic_widget(combobox_mode_of_rotation)

        #Angle
        self.label_angle = widget.Label(_("Angle"))
        combobox_angle = widget.ComboBox()
        combobox_angle.add_item(_("00"))
        combobox_angle.add_item(_("90"))
        combobox_angle.add_item(_("180"))
        combobox_angle.add_item(_("270"))
        self.label_angle.set_mnemonic_widget(combobox_angle)

        #Seperator 2
        seperator_2 = widget.Separator()

        #Page-Numbering
        label_numbering_type = widget.Label(_("Page Numbering Type"))
        combobox_numbering_type = widget.ComboBox()
        combobox_numbering_type.add_item(_("Single Page"))
        combobox_numbering_type.add_item(_("Double Page"))
        combobox_numbering_type.set_active(self.page_numbering_type)
        label_numbering_type.set_mnemonic_widget(combobox_numbering_type)

        #Starting Page Number
        label_starting_page_number = widget.Label(_("Starting Page Number"))
        spin_starting_page_number = widget.SpinButton(0, 0, 100000, 1, 5, 0)
        spin_starting_page_number.set_value(self.starting_page_number)
        label_starting_page_number.set_mnemonic_widget(
            spin_starting_page_number)

        grid_recognition = containers.Grid()
        grid_recognition.add_widgets(
            [(label_engine, 1, 1), (combobox_engine, 1, 1),
             containers.Grid.NEW_ROW, (label_language, 1, 1),
             (combobox_language, 1, 1), containers.Grid.NEW_ROW,
             (checkbutton_run_text_cleaner, 1, 1), containers.Grid.NEW_ROW,
             (label_insert_position, 1, 1),
             (combobox_insert_position, 1, 1), containers.Grid.NEW_ROW,
             (seperator_1, 2, 1), containers.Grid.NEW_ROW,
             (label_mode_of_rotation, 1, 1), (combobox_mode_of_rotation, 1, 1),
             containers.Grid.NEW_ROW, (self.label_angle, 1, 1),
             (combobox_angle, 1, 1), containers.Grid.NEW_ROW,
             (seperator_2, 2, 1), containers.Grid.NEW_ROW,
             (label_numbering_type, 1, 1), (combobox_numbering_type, 1, 1),
             containers.Grid.NEW_ROW, (label_starting_page_number, 1, 1),
             (spin_starting_page_number, 1, 1)])
        notebook.add_page(_("Recognition"), grid_recognition)
        grid_recognition.show_all()

        #setting current mode of rotation - This can't be done before creating angle combobox
        #also it should be here because the show_all function of grid will make angle combobox show again
        combobox_mode_of_rotation.set_active(self.mode_of_rotation)
        combobox_angle.set_active(self.rotation_angle)

        #SCANNING - PAGE ##############
        label_resolution = widget.Label(_("Resolution"))
        spin_resolution = widget.SpinButton(300, 100, 1200, 1, 5, 0)
        spin_resolution.set_value(self.scan_resolution)
        label_resolution.set_mnemonic_widget(spin_resolution)

        label_brightness = widget.Label(_("Brightness"))
        spin_brightness = widget.SpinButton(50, 0, 100, 1, 5, 0)
        spin_brightness.set_value(self.scan_brightness)
        label_brightness.set_mnemonic_widget(spin_brightness)

        label_scan_area = widget.Label(_("Scan Area"))
        combobox_scan_area = widget.ComboBox()
        label_scan_area.set_mnemonic_widget(combobox_scan_area)
        combobox_scan_area.add_item(_("Full Scan Area"))
        combobox_scan_area.add_item(_("Three Quarters"))
        combobox_scan_area.add_item(_("Two Quarters"))
        combobox_scan_area.add_item(_("One Quarters"))
        combobox_scan_area.set_active(self.scan_area)

        label_scan_driver = widget.Label(_("Driver"))
        combobox_scan_driver = widget.ComboBox()
        label_scan_driver.set_mnemonic_widget(combobox_scan_driver)
        for item in self.available_scanner_drivers:
            combobox_scan_driver.add_item(item)
        combobox_scan_driver.set_active(self.scan_driver)

        sparator_3 = widget.Separator()

        label_number_of_pages_to_scan = widget.Label(
            _("Number of Pages to Scan"))
        spin_number_of_pages_to_scan = widget.SpinButton(10, 2, 100, 1, 5, 0)
        spin_number_of_pages_to_scan.set_value(self.number_of_pages_to_scan)
        label_number_of_pages_to_scan.set_mnemonic_widget(
            spin_number_of_pages_to_scan)

        label_time_bitween_repeted_scanning = widget.Label(
            _("Time Bitween Repeted Scanning"))
        spin_time_bitween_repeted_scanning = widget.SpinButton(
            0, 0, 30, 1, 5, 0)
        spin_time_bitween_repeted_scanning.set_value(
            self.time_between_repeated_scanning)
        label_time_bitween_repeted_scanning.set_mnemonic_widget(
            spin_time_bitween_repeted_scanning)

        sparator_4 = widget.Separator()

        checkbutton_scan_mode_switching = widget.CheckButton(
            _("Change to binary or lineart if possible"))
        checkbutton_scan_mode_switching.set_active(self.scanner_mode_switching)

        checkbutton_scanner_cache_calibration = widget.CheckButton(
            _("Cache Calibration"))
        checkbutton_scanner_cache_calibration.set_active(
            self.scanner_cache_calibration)

        grid_scanning = containers.Grid()
        grid_scanning.add_widgets([
            (label_resolution, 1, 1), (spin_resolution, 1, 1),
            containers.Grid.NEW_ROW, (label_brightness, 1, 1),
            (spin_brightness, 1, 1), containers.Grid.NEW_ROW,
            (label_scan_area, 1, 1), (combobox_scan_area, 1, 1),
            containers.Grid.NEW_ROW, (label_scan_driver, 1, 1),
            (combobox_scan_driver, 1, 1), containers.Grid.NEW_ROW,
            (sparator_3, 2, 1), containers.Grid.NEW_ROW,
            (label_number_of_pages_to_scan, 1, 1),
            (spin_number_of_pages_to_scan, 1, 1), containers.Grid.NEW_ROW,
            (label_time_bitween_repeted_scanning, 1, 1),
            (spin_time_bitween_repeted_scanning, 1, 1),
            containers.Grid.NEW_ROW, (sparator_4, 2,
                                      1), containers.Grid.NEW_ROW,
            (checkbutton_scan_mode_switching, 2, 1), containers.Grid.NEW_ROW,
            (checkbutton_scanner_cache_calibration, 2, 1)
        ])

        notebook.add_page(_("Scanning"), grid_scanning)
        grid_scanning.show_all()

        #Setting page
        notebook.set_current_page(page)

        dlg = dialog.Dialog(_("Lios Preferences"),
                            (_("Apply"), dialog.Dialog.BUTTON_ID_1, _("Close"),
                             dialog.Dialog.BUTTON_ID_2))
        dlg.add_widget(notebook)
        if (dlg.run() == True):
            self.font = fontbutton_font.get_font_name()
            self.font_color = colorbutton_font.get_color_as_string()
            self.background_color = colorbutton_background.get_color_as_string(
            )

            self.highlight_font = fontbutton_highlight_font.get_font_name()
            self.highlight_color = colorbutton_highlight.get_color_as_string()
            self.background_highlight_color = colorbutton_highlight_background.get_color_as_string(
            )

            self.ocr_engine = combobox_engine.get_active()
            self.language = combobox_language.get_active()
            self.speech_module = combobox_speech_module.get_active()
            self.speech_language = combobox_speech_language.get_active()
            self.speech_rate = spin_speech_rate.get_value()
            self.speech_pitch = spin_speech_pitch.get_value()
            self.speech_volume = spin_speech_volume.get_value()
            self.insert_position = combobox_insert_position.get_active()
            self.mode_of_rotation = combobox_mode_of_rotation.get_active()
            self.rotation_angle = combobox_angle.get_active()
            self.page_numbering_type = combobox_numbering_type.get_active()
            self.starting_page_number = spin_starting_page_number.get_value_as_int(
            )

            self.scan_resolution = spin_resolution.get_value_as_int()
            self.scan_brightness = spin_brightness.get_value_as_int()
            self.scan_area = combobox_scan_area.get_active()
            self.scan_driver = combobox_scan_driver.get_active()
            self.number_of_pages_to_scan = spin_number_of_pages_to_scan.get_value_as_int(
            )
            self.time_between_repeated_scanning = spin_time_bitween_repeted_scanning.get_value_as_int(
            )
            self.scanner_mode_switching = int(
                checkbutton_scan_mode_switching.get_active())
            self.run_text_cleaner = int(
                checkbutton_run_text_cleaner.get_active())
            self.scanner_cache_calibration = int(
                checkbutton_scanner_cache_calibration.get_active())

            dlg.destroy()
            return True
        dlg.destroy()
        return False