Esempio n. 1
0
 def __init__(self, mw, note):
     QDialog.__init__(self, None, Qt.Window)
     mw.setupDialogGC(self)
     self.mw = mw
     self.form = aqt.forms.editcurrent.Ui_Dialog()
     self.form.setupUi(self)
     self.setWindowTitle(_("Anki: Edit underlying note (add-on window)"))
     self.setMinimumHeight(400)
     self.setMinimumWidth(250)
     self.form.buttonBox.button(QDialogButtonBox.Close).setShortcut(
         QKeySequence("Ctrl+Return"))
     if False:  # gc("when editing note externally - no reset"):
         self.editor = MyEditor(self.mw, self.form.fieldsArea, self)
     else:
         self.editor = aqt.editor.Editor(self.mw, self.form.fieldsArea,
                                         self)
     self.editor.setNote(note, focusTo=0)
     restoreGeom(self, "note_edit")
     # addHook("reset", self.onReset)
     # self.mw.requireReset()
     self.show()
     self.activateWindow()
     # reset focus after open, taking care not to retain webview
     # pylint: disable=unnecessary-lambda
     self.mw.progress.timer(100, lambda: self.editor.web.setFocus(), False)
Esempio n. 2
0
    def __init__(self):
        # Here, you should call the inherited class' init, which is QDialog
        QDialog.__init__(self, mw, Qt.Window)
        mw.setupDialogGC(self)

        self.mw = mw
        self.parent = mw
        self.col = self.mw.col

        self.hanzi = None
        self.queries = None
        self.action_field = None

        v1 = QVBoxLayout()
        v1.addWidget(SourceBox(self.col, self.source_field_selected))
        v1.addWidget(DestinationBox(self.col, self.destination_field_selected))
        self.actiongrid = ActionGrid(self.col)
        v1.addWidget(self.actiongrid)
        v1.setContentsMargins(12, 12, 12, 12)
        self.setLayout(v1)
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Hanzi Filter')
        self.show()

        # take the focus away from the first input area when starting up,
        # as users tend to accidentally type into the template
        self.setFocus()
Esempio n. 3
0
 def __init__(self, conf, callback):
     QDialog.__init__(self, mw, Qt.Window)
     mw.setupDialogGC(self)
     self.conf = conf
     self.cleanup = callback
     self.setupDialog()
     self.loadConfigData()
     self.setupConnections()
Esempio n. 4
0
    def __init__(self, parent):
        QDialog.__init__(self, mw, Qt.WindowType.Window)
        mw.setupDialogGC(self)
        self.mw = mw
        self.parent = parent
        self.setupDialog()
        self.loadConfigData()
        self.setupConnections()

        self.exec()
Esempio n. 5
0
 def __init__(self, imgoccadd, parent):
     QDialog.__init__(self)
     mw.setupDialogGC(self)
     self.setWindowFlags(Qt.Window)
     self.visible = False
     self.imgoccadd = imgoccadd
     self.parent = parent
     self.mode = "add"
     loadConfig(self)
     self.setupUi()
     restoreGeom(self, "imgoccedit")
     addHook("unloadProfile", self.onProfileUnload)
Esempio n. 6
0
    def __init__(self, parent):
        QDialog.__init__(self, parent, Qt.Window)
        self.parent = parent
        mw.setupDialogGC(self)
        self.form = config_widgets_editors.Ui_Dialog()
        self.form.setupUi(self)
        self.setWindowTitle("Anki Add-on: Html Cleaner clean settings")
        self.resize(800, 1300)
        restoreGeom(self, "html_cleaner_conf_window")
        self.mw = mw

        self.editor_old = ShortcutLessNonEditableEditor(
            self.mw, self.form.widget_original, self, True)
        self.clean_ed = DupeIgnoringEditor(self.mw, self.form.widget_cleaned,
                                           self, True)

        # bottom
        for f in getUserOption("config_window_loadable_nids"):
            self.form.bot_cb_recent_notes.addItem(str(f))
        self.other_note_into_editor(firstrun=True)
        # initial run must before the next line or the editor_did_load_note hooks are run once more
        # so that I get another entry of Arthurs "clean" next a field name
        self.form.bot_cb_recent_notes.currentIndexChanged.connect(
            self.other_note_into_editor)
        self.form.bot_pb_add_note.clicked.connect(self.add_note)
        self.form.bot_pb_remove.clicked.connect(self.remove_note)
        self.form.bot_pb_ok.clicked.connect(self.accept)
        self.form.bot_pb_cancel.clicked.connect(self.reject)

        # sidebar
        self.clean_settings = getUserOption("clean_settings")
        self.active_settings_group = getUserOption(
            "clean_active_settings_group")
        self.current_config = self.clean_settings[self.active_settings_group]
        if self.active_settings_group not in self.clean_settings:
            showInfo((
                "Invalid config detected: the group set in 'clean_active_settings_group' "
                'must be in "clean_settings". Update/Repair your config. Aborting'
            ))
            self.reject()
        self.form.conf_pb_group.setText(self.active_settings_group)
        self.form.conf_pb_group.clicked.connect(self.on_config_group_change)
        self.populate_versions()
        self.form.conf_pb_backup.setVisible(False)
        self.form.conf_pb_backup.clicked.connect(self.backup_current_vals)
        self.form.conf_pb_save.clicked.connect(self.save_current_vals)

        self.set_conf_text(
        )  # initial run must before the next line or the editor_did_load_note hooks are run once more
        # so that I get another entry of Arthurs "clean" next a field name
        self.form.conf_pte_conf.textChanged.connect(self.update_clean_ed)
        self.show()
Esempio n. 7
0
 def __init__(self, editor, name, path="", src="", create_new=False):
     QDialog.__init__(self, editor.widget, Qt.Window)
     # Compatibility: 2.1.0+
     mw.setupDialogGC(self)
     self.editor_wv = editor.web
     self.editor = editor
     self.image_name = name
     self.image_path = path
     self.image_src = src
     self.create_new = create_new
     self.close_queued = False
     if not create_new:
         self.check_editor_image_selected()
     self.setupUI()
    def __init__(self, clayout):
        QDialog.__init__(self, clayout, Qt.WindowType.Window)
        mw.setupDialogGC(self)
        self.mw = mw
        self.clayout = clayout

        self.profile = CssProfile()
        self.memoryBackedUpCssProfileText = ''

        self.form = AdvancedStylerUI.Ui_Form()
        self.form.setupUi(self)
        self.loadUI()

        self.show()
Esempio n. 9
0
 def __init__(self, imgoccadd, parent):
     QDialog.__init__(self)
     mw.setupDialogGC(self)
     self.setWindowFlags(Qt.Window)
     self.visible = False
     self.imgoccadd = imgoccadd
     self.parent = parent
     self.mode = "add"
     loadConfig(self)
     self.setupUi()
     restoreGeom(self, "imgoccedit")
     try:
         from aqt.gui_hooks import profile_will_close
         profile_will_close.append(self.onProfileUnload)
     except (ImportError, ModuleNotFoundError):
         addHook("unloadProfile", self.onProfileUnload)
Esempio n. 10
0
    def __init__(self, parent, rootHtmlPath, size=None):
        super().__init__(parent)
        mw.setupDialogGC(self)

        self.setWindowFlags(Qt.Window)
        self.setWindowModality(Qt.WindowModal)

        # Populate content
        self.web = AnkiWebView()
        self.web._page._isMiniBrowser = True
        # Support window.close
        self.web._page.windowCloseRequested.connect(self.close)
        l = QVBoxLayout()
        l.setContentsMargins(0, 0, 0, 0)
        l.addWidget(self.web)
        self.setLayout(l)

        if type(size) == tuple:
            w, h = size
            self.resize(w, h)
            self.show()

        elif size is None:
            self.resize(800, 600)
            self.show()

        elif size == "maximized" or size == "maximize":
            self.resize(800, 600)
            self.showMaximized()

        elif size == "minimized" or size == "minimize":
            self.resize(800, 600)
            self.showMinimized()

        else:
            print("MiniBrowser - bad size (%s)" % size)
            self.resize(800, 600)
            self.show()

        # OK
        self.gotoLocalFile(rootHtmlPath)
Esempio n. 11
0
 def __init__(self, parent, url, win_title):
     super(PdfJsViewer, self).__init__(parent)
     if pointVersion() < 45:
         mw.setupDialogGC(self)
     else:
         mw.garbage_collect_on_dialog_finish(self)
     self.url = url
     self.setWindowTitle(win_title)
     restoreGeom(self, "319501851")
     mainLayout = QVBoxLayout()
     mainLayout.setContentsMargins(0, 0, 0, 0)
     mainLayout.setSpacing(0)
     self.setLayout(mainLayout)
     self.web = QWebEngineView()
     self.web.title = "pdfjs"
     mainLayout.addWidget(self.web)
     QMetaObject.connectSlotsByName(self)
     self.web.load(QUrl(self.url))
     self.web.show()
     self.web.loadFinished.connect(self.load_finished)
     # self.web.setFocus()
     self.exit_shortcut = QShortcut(QKeySequence(Qt.Key_Escape), self)
     self.exit_shortcut.activated.connect(self.reject)
def create_link(editor):
    dialog = QDialog(editor.parentWindow, Qt.Dialog)
    form = link.Ui_Dialog()
    form.setupUi(dialog)

    # Default values
    # Line of text
    form.line_display.setText(editor.web.selectedText())

    # open
    form.combo_open_in.setCurrentIndex({
        "Browser": 0,
        "Previewer": 1
    }.get(getUserOption("Last open in", "Browser"), 0))

    # search
    form.combo_search_type.setCurrentIndex({
        "Note": 0,
        "Card": 1,
        "Query": 2
    }.get(getUserOption("Last search type", "Note"), 0))

    # query
    def default() -> str:
        search_type = ["Note", "Card",
                       "Query"][form.combo_search_type.currentIndex()]
        if search_type == "Note":
            if editor.note:
                return str(editor.note.id)
        elif search_type == "Card":
            if editor.card:
                return str(editor.card.id)
            elif editor.note:
                cards = editor.note.cards()
                if cards:
                    return str(cards[0].id)
        else:
            return getUserOption("Last query", "")
        return ""

    def set_default() -> None:
        form.line_search.setText(default())

    set_default()

    form.button_current.clicked.connect(set_default)

    ##
    dialog.exec()
    mw.setupDialogGC(dialog)
    # Get values

    # Line of text
    text = form.line_display.text()
    setUserOption("Last open in", text)

    # open
    open_in = ["Browser search",
               "Previewer"][form.combo_open_in.currentIndex()]
    setUserOption("Last open in", open_in)

    # search
    search_type = ["Note", "Card",
                   "Query"][form.combo_search_type.currentIndex()]
    setUserOption("Last search type", search_type)

    # query
    query = form.line_search.text()
    setUserOption("Last query", query)

    # Replace text
    if search_type == "Note":
        query = f"nid:{query}"
    elif search_type == "Card":
        query = f"cid:{query}"
    text = f"""<a onclick="pycmd('{open_in}:{query}')">{text}</a>"""
    editor.web.eval(
        f"document.execCommand('insertHTML', false, {json.dumps(text)});")
Esempio n. 13
0
 def __init__(self):
     QDialog.__init__(self, mw, Qt.Window)
     mw.setupDialogGC(self)
Esempio n. 14
0
    def __init__(self, cm):
        QDialog.__init__(self, mw, Qt.Window)
        mw.setupDialogGC(self)
        self.form = ruby.Ui_Dialog()
        self.form.setupUi(self)

        # Environment variables
        # TODO: Clean this up
        self.mw = mw
        self.parent = mw
        self.col = self.mw.col
        self.chinese_master = cm
        # Initialize objects
        decks = self.col.decks.all()
        deck_pairs = [(deck['id'], deck['name']) for deck in decks]
        self.deck_ids, self.deck_names = zip(
            *sorted(deck_pairs, key=lambda a: a[1]))
        self.pinyin_option = None
        self.cedict_enabled = False
        self.primed = False

        self.notes = [[], []]
        self.rubies = [[], []]
        self.tables = [[], []]

        # Set the event listeners
        self.form.deck_combobox.currentIndexChanged.connect(self.deck_selected)
        self.form.note_combobox.currentIndexChanged.connect(self.note_selected)
        self.form.field_combobox.currentIndexChanged.connect(
            self.field_selected)

        self.form.pinyin_match_combobox.currentIndexChanged.connect(
            self.pinyin_match_selected)
        self.form.pinyin_generate_combobox.currentIndexChanged.connect(
            self.pinyin_generate_selected)

        self.form.ruby_combobox.currentIndexChanged.connect(self.ruby_selected)

        self.form.cedict_checkbox.stateChanged.connect(self.cedict_check)

        self.form.list_match.currentRowChanged.connect(
            self.list_match_selected)
        self.form.list_generate.currentRowChanged.connect(
            self.list_generate_selected)

        self.form.button_match.clicked.connect(self.execute_match)
        self.form.button_generate.clicked.connect(self.execute_generate)

        # Pinyin selection
        self.form.pinyin_option.buttonClicked.connect(
            self.pinyin_option_selected)
        self.form.pinyin_match_combobox.hide()
        self.form.pinyin_match_label.hide()
        self.form.widget_match.hide()
        self.form.pinyin_generate_combobox.hide()
        self.form.pinyin_generate_label.hide()
        self.form.widget_generate.hide()

        # CEDICT selection
        self.form.cedict_combobox.hide()
        self.form.cedict_label.hide()

        # Output preview
        self.form.preview_match = RubyPreview()
        self.form.preview_generate = RubyPreview()
        self.form.preview_match_layout.addWidget(self.form.preview_match, 5)
        self.form.preview_generate_layout.addWidget(self.form.preview_generate,
                                                    5)

        # Show main menu
        self.show()
        self.setFocus()
        self.adjustSize()
        self.form.deck_combobox.addItems(self.deck_names)