def zoomOut(self): if viewingIrText(): cid = str(mw.reviewer.card.id) if cid not in self.settings['zoom']: self.settings['zoom'][cid] = 1 self.settings['zoom'][cid] -= self.settings['zoomStep'] mw.web.setZoomFactor(self.settings['zoom'][cid]) elif mw.reviewer.card: newFactor = mw.web.zoomFactor() - self.settings['zoomStep'] mw.web.setZoomFactor(newFactor)
def restoreView(self): if viewingIrText(): cid = str(mw.reviewer.card.id) if cid not in self.settings['zoom']: self.settings['zoom'][cid] = 1 if cid not in self.settings['scroll']: self.settings['scroll'][cid] = 0 mw.viewManager.setZoom() mw.viewManager.setScroll() self.restoreHighlighting()
def keyHandler(self, evt, _old): key = unicode(evt.text()) handled = False if viewingIrText(): if key == mw.settingsManager.settings['extractKey'].lower(): mw.readingManager.extract() handled = True elif key == mw.settingsManager.settings['highlightKey'].lower(): mw.readingManager.highlightText() handled = True elif key == mw.settingsManager.settings['removeKey'].lower(): mw.readingManager.removeText() handled = True if handled: return True else: _old(self, evt)
def saveScroll(self, event=None): if viewingIrText(): pos = mw.web.page().mainFrame().scrollPosition().y() self.settings['scroll'][str(mw.reviewer.card.id)] = pos
def quickAdd(self, quickKey): if not viewingIrText(): return hasSelection = False selectedText = '' if len(mw.web.selectedText()) > 0: hasSelection = True mw.web.triggerPageAction(QWebPage.Copy) clipboard = QApplication.clipboard() mimeData = clipboard.mimeData() if quickKey['plainText']: selectedText = mimeData.text() else: selectedText = mimeData.html() self.highlightText(quickKey['bgColor'], quickKey['textColor']) # Create new note with selected model and deck newModel = mw.col.models.byName(quickKey['modelName']) newNote = notes.Note(mw.col, newModel) setField(newNote, quickKey['fieldName'], selectedText) card = mw.reviewer.card currentNote = card.note() tags = currentNote.stringTags() # Sets tags for the note, but still have to set them in the editor # if show dialog (see below) newNote.setTagsFromStr(tags) for f in newModel['flds']: if SOURCE_FIELD_NAME == f['name']: setField(newNote, SOURCE_FIELD_NAME, getField(currentNote, SOURCE_FIELD_NAME)) if quickKey['editExtract']: self.acsCount += 1 addCards = addcards.AddCards(mw) addCards.editor.setNote(newNote) if newNote.stringTags(): addCards.editor.tags.setText(newNote.stringTags().strip()) addCards.modelChooser.models.setText(quickKey['modelName']) addCards.deckChooser.deck.setText(quickKey['deckName']) elif hasSelection: deckId = mw.col.decks.byName(quickKey['deckName'])['id'] newNote.model()['did'] = deckId ret = newNote.dupeOrEmpty() if ret == 1: showWarning(_('The first field is empty.'), help='AddItems#AddError') return cards = mw.col.addNote(newNote) if not cards: showWarning(_('''\ The input you have provided would make an empty \ question on all cards.'''), help='AddItems') return clearAudioQueue() mw.col.autosave() tooltip(_('Added')) if quickKey['editSource']: self.editCurrent = editcurrent.EditCurrent(mw)