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()
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()
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()
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()
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()
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()
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()