def initialize(self): self.function_name.currentIndexChanged[str].connect(self.function_index_changed) self.function_name.editTextChanged.connect(self.function_name_edited) self.documentation.textChanged.connect(self.enable_save_button) self.program.textChanged.connect(self.enable_save_button) self.macrofile.textChanged.connect(self.enable_save_button) self.fromfile_checkbox.stateChanged.connect(self.fromfile_checkbox_clicked) self.delete_button.clicked.connect(self.delete_button_clicked) self.save_button.clicked.connect(self.save_button_clicked) self.execute_button.clicked.connect(self.execute_button_clicked) self.import_button.clicked.connect(self.import_button_clicked) self.export_button.clicked.connect(self.export_button_clicked) self.save_file_button.clicked.connect(self.save_file_button_clicked) self.load_file_button.clicked.connect(self.load_file_button_clicked) self.filebrowse_button.clicked.connect(self.filebrowse_button_clicked) self.filebrowse_button.setIcon(QIcon(I('document_open.png'))) self.save_button.setEnabled(False) self.delete_button.setEnabled(False) self.program.setTabStopWidth(20) self.highlighter = PythonHighlighter(self.program.document()) self.build_function_names_box()
def initialize(self): try: self.builtin_source_dict = json.loads( P('template-functions.json', data=True, allow_user_override=False).decode('utf-8')) except: traceback.print_exc() self.builtin_source_dict = {} self.funcs = formatter_functions().get_functions() self.builtins = formatter_functions().get_builtins_and_aliases() self.build_function_names_box() self.function_name.currentIndexChanged[str].connect( self.function_index_changed) self.function_name.editTextChanged.connect(self.function_name_edited) self.argument_count.valueChanged.connect(self.enable_replace_button) self.documentation.textChanged.connect(self.enable_replace_button) self.program.textChanged.connect(self.enable_replace_button) self.create_button.clicked.connect(self.create_button_clicked) self.delete_button.clicked.connect(self.delete_button_clicked) self.create_button.setEnabled(False) self.delete_button.setEnabled(False) self.replace_button.setEnabled(False) self.clear_button.clicked.connect(self.clear_button_clicked) self.replace_button.clicked.connect(self.replace_button_clicked) self.program.setTabStopWidth(20) self.highlighter = PythonHighlighter(self.program.document())
def toggle_mode(self, *args): if self.stacks.currentIndex() == 1: self.stacks.setCurrentIndex(0) self.toggle_mode_button.setText(_('Switch to Advanced mode')) else: self.stacks.setCurrentIndex(1) self.toggle_mode_button.setText(_('Switch to Basic mode')) if not unicode(self.source_code.toPlainText()).strip(): src = self.options_to_profile()[0].replace('AutomaticNewsRecipe', 'BasicNewsRecipe') self.source_code.setPlainText(src.replace('BasicUserRecipe', 'AdvancedUserRecipe')) self.highlighter = PythonHighlighter(self.source_code.document())
def initialize(self): try: self.builtin_source_dict = json.loads( P('template-functions.json', data=True, allow_user_override=False).decode('utf-8')) except: traceback.print_exc() self.builtin_source_dict = {} self.funcs = dict( (k, v) for k, v in formatter_functions().get_functions().items() if v.is_python) self.builtins = formatter_functions().get_builtins_and_aliases() self.st_funcs = {} for v in self.db.prefs.get('user_template_functions', []): if not function_pref_is_python(v): self.st_funcs.update( {function_pref_name(v): compile_user_function(*v)}) self.build_function_names_box() self.function_name.currentIndexChanged[native_string_type].connect( self.function_index_changed) self.function_name.editTextChanged.connect(self.function_name_edited) self.argument_count.valueChanged.connect(self.enable_replace_button) self.documentation.textChanged.connect(self.enable_replace_button) self.program.textChanged.connect(self.enable_replace_button) self.create_button.clicked.connect(self.create_button_clicked) self.delete_button.clicked.connect(self.delete_button_clicked) self.create_button.setEnabled(False) self.delete_button.setEnabled(False) self.replace_button.setEnabled(False) self.clear_button.clicked.connect(self.clear_button_clicked) self.replace_button.clicked.connect(self.replace_button_clicked) self.program.setTabStopWidth(20) self.highlighter = PythonHighlighter(self.program.document()) self.st_build_function_names_box() self.template_editor.template_name.currentIndexChanged[ native_string_type].connect(self.st_function_index_changed) self.template_editor.template_name.editTextChanged.connect( self.st_template_name_edited) self.st_create_button.clicked.connect(self.st_create_button_clicked) self.st_delete_button.clicked.connect(self.st_delete_button_clicked) self.st_create_button.setEnabled(False) self.st_delete_button.setEnabled(False) self.st_replace_button.setEnabled(False) self.st_clear_button.clicked.connect(self.st_clear_button_clicked) self.st_replace_button.clicked.connect(self.st_replace_button_clicked) self.st_button_layout.insertSpacing(0, 90) self.template_editor.new_doc.setFixedHeight(50)
def current_changed(self, current, previous): if not current.isValid(): return src = self._model.script(current) if src is None: return if 'class BasicUserRecipe' in src: recipe = compile_recipe(src) self.populate_options(recipe) self.stacks.setCurrentIndex(0) self.toggle_mode_button.setText(_('Switch to Advanced mode')) self.source_code.setPlainText('') else: self.source_code.setPlainText(src) self.highlighter = PythonHighlighter(self.source_code.document()) self.stacks.setCurrentIndex(1) self.toggle_mode_button.setText(_('Switch to Basic mode'))
def genesis(self, gui): self.gui = gui self.tweaks_view.current_changed.connect(self.current_changed) self.view = self.tweaks_view self.highlighter = PythonHighlighter(self.edit_tweak.document()) self.restore_default_button.clicked.connect(self.restore_to_default) self.apply_button.clicked.connect(self.apply_tweak) self.plugin_tweaks_button.clicked.connect(self.plugin_tweaks) self.splitter.setStretchFactor(0, 1) self.splitter.setStretchFactor(1, 100) self.next_button.clicked.connect(self.find_next) self.previous_button.clicked.connect(self.find_previous) self.search.initialize('tweaks_search_history', help_text=_('Search for tweak')) self.search.search.connect(self.find) self.view.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.view.customContextMenuRequested.connect(self.show_context_menu) self.copy_icon = QIcon(I('edit-copy.png'))
def __init__(self, raw, parent=None): QDialog.__init__(self, parent) self.edit = QPlainTextEdit(self) self.highlighter = PythonHighlighter(self.edit.document()) self.l = QVBoxLayout() self.setLayout(self.l) self.msg = QLabel( _('Add/edit tweaks for any custom plugins you have installed. ' 'Documentation for these tweaks should be available ' 'on the website from where you downloaded the plugins.')) self.msg.setWordWrap(True) self.l.addWidget(self.msg) self.l.addWidget(self.edit) self.edit.setPlainText(raw) self.bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel, Qt.Horizontal, self) self.bb.accepted.connect(self.accept) self.bb.rejected.connect(self.reject) self.l.addWidget(self.bb) self.resize(550, 300)
def populate_source_code(self): src = self.options_to_profile().replace('BasicUserRecipe', 'AdvancedUserRecipe') self.source_code.setPlainText(src) self.highlighter = PythonHighlighter(self.source_code.document())
def initialize(self): try: self.builtin_source_dict = json.loads( P('template-functions.json', data=True, allow_user_override=False).decode('utf-8')) except: traceback.print_exc() self.builtin_source_dict = {} self.funcs = { k: v for k, v in formatter_functions().get_functions().items() if v.is_python } self.builtins = formatter_functions().get_builtins_and_aliases() self.st_funcs = {} try: for v in self.db.prefs.get('user_template_functions', []): if not function_pref_is_python(v): self.st_funcs.update( {function_pref_name(v): compile_user_function(*v)}) except: if question_dialog( self, _('Template functions'), _('The template functions saved in the library are corrupt. ' "Do you want to delete them? Answering 'Yes' will delete all " "the functions."), det_msg=traceback.format_exc(), show_copy_button=True): self.db.prefs['user_template_functions'] = [] raise AbortInitialize() self.build_function_names_box() self.function_name.currentIndexChanged[native_string_type].connect( self.function_index_changed) self.function_name.editTextChanged.connect(self.function_name_edited) self.argument_count.valueChanged.connect(self.enable_replace_button) self.documentation.textChanged.connect(self.enable_replace_button) self.program.textChanged.connect(self.enable_replace_button) self.create_button.clicked.connect(self.create_button_clicked) self.delete_button.clicked.connect(self.delete_button_clicked) self.create_button.setEnabled(False) self.delete_button.setEnabled(False) self.replace_button.setEnabled(False) self.clear_button.clicked.connect(self.clear_button_clicked) self.replace_button.clicked.connect(self.replace_button_clicked) self.program.setTabStopWidth(20) self.highlighter = PythonHighlighter(self.program.document()) self.te_textbox = self.template_editor.textbox self.te_name = self.template_editor.template_name self.st_build_function_names_box() self.te_name.currentIndexChanged[native_string_type].connect( self.st_function_index_changed) self.te_name.editTextChanged.connect(self.st_template_name_edited) self.st_create_button.clicked.connect(self.st_create_button_clicked) self.st_delete_button.clicked.connect(self.st_delete_button_clicked) self.st_create_button.setEnabled(False) self.st_delete_button.setEnabled(False) self.st_replace_button.setEnabled(False) self.st_test_template_button.setEnabled(False) self.st_clear_button.clicked.connect(self.st_clear_button_clicked) self.st_test_template_button.clicked.connect(self.st_test_template) self.st_replace_button.clicked.connect(self.st_replace_button_clicked) self.st_current_program_name = '' self.st_current_program_text = '' self.st_previous_text = '' self.st_first_time = False self.st_button_layout.insertSpacing(0, 90) self.template_editor.new_doc.setFixedHeight(50) # get field metadata and selected books view = self.gui.current_view() rows = view.selectionModel().selectedRows() self.mi = [] if rows: db = view.model().db self.fm = db.field_metadata for row in rows: if row.isValid(): self.mi.append( db.new_api.get_proxy_metadata( db.data.index_to_id(row.row()))) self.template_editor.set_mi(self.mi, self.fm)