示例#1
0
文件: editor.py 项目: 2php/lios-3
    def open_find_dialog(self, *data):
        entry = widget.Entry()
        statusbar_context = widget.Statusbar()
        statusbar_context.set_text(_("Context label"))

        def find_next(*data):
            word = entry.get_text()
            if (not self.is_cursor_at_end()):
                if (self.move_forward_to_word(word)):
                    statusbar_context.set_text(self.get_context_text())

        def find_previous(*data):
            word = entry.get_text()
            if (not self.is_cursor_at_start()):
                if (self.move_backward_to_word(word)):
                    statusbar_context.set_text(self.get_context_text())

        label = widget.Label(_("<b> Find word  : </b>"))
        label.set_use_markup(True)
        label.set_mnemonic_widget(entry)

        next_button = widget.Button(_("Next"))
        next_button.connect_function(find_next)
        previous_button = widget.Button(_("Previous"))
        previous_button.connect_function(find_previous)

        grid = containers.Grid()
        grid.add_widgets([(label, 1, 1),
                          (entry, 1, 1), containers.Grid.NEW_ROW,
                          (statusbar_context, 2, 1), containers.Grid.NEW_ROW,
                          (next_button, 1, 1, False, False),
                          (previous_button, 1, 1, False, False)])
        window_find = window.Window(_("Find Dialog"))
        window_find.add(grid)
        window_find.show_all()
示例#2
0
	def button_ocr_and_view_clicked(self,*data):
		name = self.icon_view_image_list.get_selected_item_names()
		if(name == []):
			return;

		self.show_progress_bar("Running ocr... Please wait");
		image_file = self.get_shell_filename(name[0])
		self.output_terminal.run_command("tesseract {0} /tmp/tesseract-train/output -l {1}".format(image_file,self.language));

		# Wait for output
		os.system("while [ ! -f /tmp/tesseract-train/output.txt ]; do sleep .1; done")
		os.system("count=100; while [ ! -s /tmp/tesseract-train/output.txt ] && [ $count -ge 0 ]; do sleep .1; count=$(($count-1)); done")
		self.hide_progress_bar()
		loop.acquire_lock()

		window_output = window.Window(_("Recognised text from image {0} with {1}".format(image_file.split("/")[-1],self.language)))
		window_output.set_taskbar_icon(macros.logo_file)
		tv = text_view.TextView()
		sb = containers.ScrollBox()
		sb.add(tv)
		tv.set_vexpand(True)
		tv.set_hexpand(True)
		tv.set_text(open("/tmp/tesseract-train/output.txt").read())
		os.system("rm /tmp/tesseract-train/output.txt")
		window_output.set_default_size(500,400)
		window_output.add(sb)
		window_output.show_all()
		loop.release_lock()
示例#3
0
	def open_bookmark_table(self,*data):
		window_bookmark = window.Window(_("Bookmark Table"))
		list_view = widget.ListView(_("Select the bookmark"))
		for item in self.bookmark_list:
			name = item[0]
			list_view.add_item(name)
		
		def jump(*data):
			index = list_view.get_selected_item_index()
			self.move_cursor_to_mark(self.bookmark_list[index][1])
			self.highlights_cursor_line()
			window_bookmark.destroy()

		def scroll_to_position(*data):
			index = list_view.get_selected_item_index()
			self.move_cursor_to_mark(self.bookmark_list[index][1])
			self.highlights_cursor_line()
			
		
		def delete(*data):
			index = list_view.get_selected_item_index()
			self.bookmark_list.pop(index)
			list_view.remove_selected_item()
			self.save_bookmark_table("None")

		def close(*data):
			window_bookmark.destroy()
		
		

		scroll_box_bookmark = containers.ScrollBox()
		scroll_box_bookmark.add(list_view)
		
		button_jump = widget.Button(_("Jump"))
		button_jump.connect_function(jump)
		
		button_scroll_to_position = widget.Button(_("Scroll Text to position"))
		button_scroll_to_position.connect_function(scroll_to_position)
			
		button_delete = widget.Button(_("Delete"))
		button_delete.connect_function(delete)
				
		button_close = widget.Button(_("Close"))
		button_close.connect_function(close)	
			
		list_view.connect_on_select_callback(jump)
		

		grid_bookmark = containers.Grid()
		grid_bookmark.add_widgets([(scroll_box_bookmark,4,1),containers.Grid.NEW_ROW,
			(button_jump,1,1,False,False),(button_scroll_to_position,1,1,False,False),
			(button_delete,1,1,False,False),(button_close,1,1,False,False)])

		
		window_bookmark.add(grid_bookmark)
		window_bookmark.set_default_size(500,200)
		window_bookmark.show_all()
示例#4
0
    def open_all_bookmark_table(self, *data):
        all_bookmark_list = []
        window_bookmark = window.Window(_("Bookmark Table"))
        list_view = widget.ListView(_("Select the bookmark"))
        for bookmark_file in os.listdir(macros.bookmarks_dir):
            with open(macros.bookmarks_dir + bookmark_file) as file:
                for line in file:
                    all_bookmark_list.append(bookmark_file + "~" + line)
                    list_view.add_item(
                        bookmark_file.split("|")[-1] + " : " + line)

        def jump(*data):
            index = list_view.get_selected_item_index()
            item = all_bookmark_list[index]
            filename = item.split("~")[0].replace("|", "/").replace("#", " ")
            line_number = item.split("~")[1].split()[0]
            text = open(filename).read()
            self.set_text(text)

            #self.move_cursor_to_line(int(line_number))
            print(int(line_number), filename)

            self.save_file_name = filename
            self.import_bookmarks_using_filename()

            mark = self.get_mark_at_line(int(line_number))
            self.move_cursor_to_mark(mark)

            self.highlights_cursor_line()
            window_bookmark.destroy()

        def close(*data):
            window_bookmark.destroy()

        scroll_box_bookmark = containers.ScrollBox()
        scroll_box_bookmark.add(list_view)

        button_jump = widget.Button(_("Jump"))
        button_jump.connect_function(jump)
        button_close = widget.Button(_("Close"))
        button_close.connect_function(close)
        list_view.connect_on_select_callback(jump)

        grid_bookmark = containers.Grid()
        grid_bookmark.add_widgets([(scroll_box_bookmark, 2, 1),
                                   containers.Grid.NEW_ROW,
                                   (button_jump, 1, 1, False, False),
                                   (button_close, 1, 1, False, False)])

        window_bookmark.add(grid_bookmark)
        window_bookmark.set_default_size(500, 200)
        window_bookmark.show_all()
示例#5
0
    def open_spell_check(self, *data):
        entry = widget.Entry()
        list_view = widget.ListView(_("Suggestions"))
        statusbar_context = widget.Statusbar()
        statusbar_context.set_text(_("Context label"))
        statusbar_context.set_line_wrap(True)
        change_all_dict = {}
        self.word = ""

        def find_next_mispeleed_word(*data):
            while (not self.is_cursor_at_end()):
                self.word = self.get_next_word()
                if self.word in change_all_dict.keys():
                    self.replace_last_word(change_all_dict[self.word])
                    continue

                if (not self.dict.check(self.word)):
                    entry.set_text(self.word)
                    statusbar_context.set_text(self.get_context_text())
                    list_view.clear()
                    for item in self.dict.suggest(self.word):
                        list_view.add_item(item)
                    break
            if (self.is_cursor_at_end()):
                entry.set_text("")
                statusbar_context.set_text(_("Spell Check finished"))

        def ignore_all(*data):
            word = entry.get_text()
            self.dict.add_to_session(word)
            find_next_mispeleed_word()

        def change(*data):
            replace_word = entry.get_text()
            self.replace_last_word(replace_word)
            find_next_mispeleed_word()

        def change_all(*data):
            replace_word = entry.get_text()
            change_all_dict[self.word] = replace_word
            self.replace_last_word(replace_word)
            find_next_mispeleed_word()

        def delete(*data):
            self.delete_last_word()
            find_next_mispeleed_word()

        def on_suggestion_selected(*data):
            item = list_view.get_selected_item()
            entry.set_text(item)

        def close(*data):
            window1.destroy()

        grid = containers.Grid()

        label = widget.Label(_("<b> Misspelled word  : </b>"))
        label.set_use_markup(True)
        label.set_mnemonic_widget(entry)

        scroll_box = containers.ScrollBox()
        scroll_box.add(list_view)
        change_button = widget.Button(_("Change"))
        change_button.connect_function(change)
        change_all_button = widget.Button(_("Change All"))
        change_all_button.connect_function(change_all)
        delete_button = widget.Button(_("Delete"))
        delete_button.connect_function(delete)
        ignore_button = widget.Button(_("Ignore"))
        ignore_button.connect_function(find_next_mispeleed_word)
        ignore_all_button = widget.Button(_("Ignore All"))
        ignore_all_button.connect_function(ignore_all)
        add_to_dict_button = widget.Button(_("Add to user dict"))
        close_button = widget.Button(_("Close"))
        close_button.connect_function(close)

        list_view.connect_on_select_callback(on_suggestion_selected)
        entry.connect_activate_function(change)

        grid.add_widgets([(label, 1, 1, False, False),
                          (entry, 6, 1, False, False), containers.Grid.NEW_ROW,
                          (scroll_box, 1, 3, False, False),
                          (change_button, 1, 1, False, False),
                          (change_all_button, 1, 1, False, False),
                          (delete_button, 1, 1, False, False),
                          containers.Grid.NEW_ROW,
                          (ignore_button, 1, 1, False, False),
                          (ignore_all_button, 1, 1, False, False),
                          (add_to_dict_button, 1, 1, False,
                           False), containers.Grid.NEW_ROW,
                          (statusbar_context, 1, 1), containers.Grid.NEW_ROW,
                          (close_button, 4, 1, False, False)])

        find_next_mispeleed_word()

        window1 = window.Window(_("Spell-Check"))
        window1.add(grid)
        window1.set_default_size(500, 200)
        window1.show_all()
示例#6
0
    def open_find_and_replace_dialog(self, *data):
        entry_word = widget.Entry()
        entry_replace_word = widget.Entry()
        statusbar_context = widget.Statusbar()
        statusbar_context.set_text(_("Context label"))

        def find_next(*data):
            word = entry_word.get_text()
            if (not self.is_cursor_at_end()):
                if (self.move_forward_to_word(word)):
                    statusbar_context.set_text(self.get_context_text())

        def find_previous(*data):
            word = entry_word.get_text()
            if (not self.is_cursor_at_start()):
                if (self.move_backward_to_word(word)):
                    statusbar_context.set_text(self.get_context_text())
                else:
                    dialog.Dialog(_("No match found")).run()

        def replace(*data):
            word_replace = entry_replace_word.get_text()
            self.replace_last_word(word_replace)

        def replace_all(*data):
            word = entry_word.get_text()
            word_replace = entry_replace_word.get_text()
            while (not self.is_cursor_at_end()):
                if (self.move_forward_to_word(word)):
                    self.replace_last_word(word_replace)
                else:
                    break

        label_word = widget.Label(_("<b> Word: </b>"))
        label_word.set_use_markup(True)
        label_word.set_mnemonic_widget(entry_word)
        label_replace_word = widget.Label(_("<b> Replace word: </b>"))
        label_replace_word.set_use_markup(True)
        label_replace_word.set_mnemonic_widget(entry_replace_word)

        entry_word.connect_activate_function(find_next)
        entry_replace_word.connect_activate_function(find_next)

        button_next = widget.Button(_("Next"))
        button_next.connect_function(find_next)
        button_previous = widget.Button(_("Previous"))
        button_previous.connect_function(find_previous)
        button_replace = widget.Button(_("Replace"))
        button_replace.connect_function(replace)
        button_replace_all = widget.Button(_("Replace All"))
        button_replace_all.connect_function(replace_all)

        grid = containers.Grid()
        grid.add_widgets([(label_word, 2, 1), (entry_word, 4, 1),
                          containers.Grid.NEW_ROW, (label_replace_word, 2, 1),
                          (entry_replace_word, 4, 1), containers.Grid.NEW_ROW,
                          (button_next, 3, 1, False, False),
                          (button_previous, 3, 1, False,
                           False), containers.Grid.NEW_ROW,
                          (statusbar_context, 6, 1), containers.Grid.NEW_ROW,
                          (button_replace, 3, 1, False, False),
                          (button_replace_all, 3, 1, False, False)])
        window_find = window.Window(_("Find Dialog"))
        window_find.add(grid)
        window_find.show_all()
示例#7
0
    def open_text_cleaner(self, *data):
        window_text_cleaner = window.Window(_("Text Cleaner"))
        scroll_box = containers.ScrollBox()
        treeview = tree_view.TreeView([(_("Match"), str, True),
                                       (_("Replace"), str, True)], None)
        scroll_box.add(treeview)
        treeview.set_list(self.text_cleaner_list)

        def add_clicked(*data):
            entry_match = widget.Entry()
            entry_replace = widget.Entry()
            dlg = dialog.Dialog(_("Give match and replace"),
                                (_("Ok"), dialog.Dialog.BUTTON_ID_1,
                                 _("Close!"), dialog.Dialog.BUTTON_ID_2))
            dlg.add_widget_with_label(entry_match, _("Match : "))
            dlg.add_widget_with_label(entry_replace, _("Replace : "))
            entry_match.grab_focus()
            dlg.show_all()
            response = dlg.run()
            if (response == dialog.Dialog.BUTTON_ID_1):
                treeview.append(
                    (entry_match.get_text(), entry_replace.get_text()))
                self.text_cleaner_list = treeview.get_list()
                self.save_text_cleaner_list_to_file(
                    macros.local_text_cleaner_list_file_path)
            dlg.destroy()

        def remove_clicked(*data):
            index = treeview.get_selected_row_index()
            treeview.remove(index)
            self.text_cleaner_list = treeview.get_list()
            self.save_text_cleaner_list_to_file(
                macros.local_text_cleaner_list_file_path)

        def export_list(*data):
            self.export_text_cleaner_list()

        def import_list(*data):
            self.import_text_cleaner_list()
            treeview.set_list(self.text_cleaner_list)
            self.save_text_cleaner_list_to_file(
                macros.local_text_cleaner_list_file_path)

        def restore(*data):
            self.set_text_cleaner_list_from_file(
                macros.default_text_cleaner_list_file_path)
            treeview.set_list(self.text_cleaner_list)
            self.save_text_cleaner_list_to_file(
                macros.local_text_cleaner_list_file_path)

        def clear(*data):
            self.text_cleaner_list = []
            treeview.set_list(self.text_cleaner_list)
            self.save_text_cleaner_list_to_file(
                macros.local_text_cleaner_list_file_path)

        def list_updated(*data):
            self.text_cleaner_list = treeview.get_list()
            self.save_text_cleaner_list_to_file(
                macros.local_text_cleaner_list_file_path)

        def close(*data):
            window_text_cleaner.close()

        treeview.connect_update_callback(list_updated)

        button_add = widget.Button(_("Add"))
        button_add.connect_function(add_clicked)
        button_remove = widget.Button(_("Remove"))
        button_remove.connect_function(remove_clicked)

        button_import = widget.Button(_("Import"))
        button_import.connect_function(import_list)
        button_export = widget.Button(_("Export"))
        button_export.connect_function(export_list)

        button_clear = widget.Button(_("Clear"))
        button_clear.connect_function(clear)
        button_restore = widget.Button(_("Restore"))
        button_restore.connect_function(restore)

        button_apply_from_cursor = widget.Button(_("Apply from cursor"))
        button_apply_from_cursor.connect_function(
            self.apply_text_cleaner_from_cursor)

        button_apply = widget.Button(_("Apply on entire text"))
        button_apply.connect_function(self.apply_text_cleaner_entire_text)

        button_close = widget.Button(_("Close"))
        button_close.connect_function(close)

        grid = containers.Grid()
        grid.add_widgets([(scroll_box, 3, 1), containers.Grid.NEW_ROW,
                          (button_add, 1, 1, False, False),
                          (button_remove, 1, 1, False, False),
                          (button_clear, 1, 1, False, False),
                          containers.Grid.NEW_ROW,
                          (button_restore, 1, 1, False, False),
                          (button_apply_from_cursor, 1, 1, False, False),
                          (button_apply, 1, 1, False, False),
                          containers.Grid.NEW_ROW,
                          (button_import, 1, 1, False, False),
                          (button_export, 1, 1, False, False),
                          (button_close, 1, 1, False, False)])

        window_text_cleaner.add(grid)
        window_text_cleaner.set_default_size(400, 500)
        window_text_cleaner.show_all()