Пример #1
0
    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())
Пример #3
0
 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())
Пример #4
0
    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'))
Пример #6
0
 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'))
Пример #7
0
 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)
Пример #8
0
 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())
Пример #9
0
    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)