diff --git a/ui/reader.ui b/ui/reader.ui index f06a695..13ef455 100644 --- a/ui/reader.ui +++ b/ui/reader.ui @@ -70,9 +70,6 @@ &Edit - - - @@ -148,7 +145,7 @@ - + false @@ -224,7 +221,7 @@ - + @@ -414,26 +411,6 @@ Toggle definitions - - - - :/img/img/icon_copy_definition.png:/img/img/icon_copy_definition.png - - - Copy &definition - - - Ctrl+D - - - true - - - - - Copy &all definitions - - @@ -457,14 +434,6 @@ &Anki - - - Copy sen&tence - - - Ctrl+T - - diff --git a/yomi_base/gen/about_ui.py b/yomi_base/gen/about_ui.py index acd8f31..422f1c1 100644 --- a/yomi_base/gen/about_ui.py +++ b/yomi_base/gen/about_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'ui/about.ui' # -# Created: Sun Nov 10 15:33:42 2013 +# Created: Sun Nov 10 17:56:51 2013 # by: PyQt4 UI code generator 4.10 # # WARNING! All changes made in this file will be lost! diff --git a/yomi_base/gen/preferences_ui.py b/yomi_base/gen/preferences_ui.py index 2299c65..fdebe21 100644 --- a/yomi_base/gen/preferences_ui.py +++ b/yomi_base/gen/preferences_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'ui/preferences.ui' # -# Created: Sun Nov 10 15:33:42 2013 +# Created: Sun Nov 10 17:56:51 2013 # by: PyQt4 UI code generator 4.10 # # WARNING! All changes made in this file will be lost! diff --git a/yomi_base/gen/reader_ui.py b/yomi_base/gen/reader_ui.py index 97b9017..a6d5ba4 100644 --- a/yomi_base/gen/reader_ui.py +++ b/yomi_base/gen/reader_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'ui/reader.ui' # -# Created: Sun Nov 10 15:33:42 2013 +# Created: Sun Nov 10 17:56:51 2013 # by: PyQt4 UI code generator 4.10 # # WARNING! All changes made in this file will be lost! @@ -70,11 +70,11 @@ class Ui_MainWindowReader(object): self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) - self.textDefinitions = QtGui.QTextBrowser(self.dockWidgetContents) - self.textDefinitions.setAcceptDrops(False) - self.textDefinitions.setOpenLinks(False) - self.textDefinitions.setObjectName(_fromUtf8("textDefinitions")) - self.verticalLayout.addWidget(self.textDefinitions) + self.textVocabDefs = QtGui.QTextBrowser(self.dockWidgetContents) + self.textVocabDefs.setAcceptDrops(False) + self.textVocabDefs.setOpenLinks(False) + self.textVocabDefs.setObjectName(_fromUtf8("textVocabDefs")) + self.verticalLayout.addWidget(self.textVocabDefs) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.label = QtGui.QLabel(self.dockWidgetContents) @@ -121,9 +121,9 @@ class Ui_MainWindowReader(object): self.dockWidgetContents_3.setObjectName(_fromUtf8("dockWidgetContents_3")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.dockWidgetContents_3) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) - self.textBrowser = QtGui.QTextBrowser(self.dockWidgetContents_3) - self.textBrowser.setObjectName(_fromUtf8("textBrowser")) - self.verticalLayout_3.addWidget(self.textBrowser) + self.textKanjiDefs = QtGui.QTextBrowser(self.dockWidgetContents_3) + self.textKanjiDefs.setObjectName(_fromUtf8("textKanjiDefs")) + self.verticalLayout_3.addWidget(self.textKanjiDefs) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.label_2 = QtGui.QLabel(self.dockWidgetContents_3) @@ -192,29 +192,19 @@ class Ui_MainWindowReader(object): self.actionToggleVocab = QtGui.QAction(MainWindowReader) self.actionToggleVocab.setCheckable(True) self.actionToggleVocab.setObjectName(_fromUtf8("actionToggleVocab")) - self.actionCopyDefinition = QtGui.QAction(MainWindowReader) - icon9 = QtGui.QIcon() - icon9.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/img/icon_copy_definition.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.actionCopyDefinition.setIcon(icon9) - self.actionCopyDefinition.setIconVisibleInMenu(True) - self.actionCopyDefinition.setObjectName(_fromUtf8("actionCopyDefinition")) - self.actionCopyAllDefinitions = QtGui.QAction(MainWindowReader) - self.actionCopyAllDefinitions.setObjectName(_fromUtf8("actionCopyAllDefinitions")) self.actionHomepage = QtGui.QAction(MainWindowReader) - icon10 = QtGui.QIcon() - icon10.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/img/icon_action_homepage.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.actionHomepage.setIcon(icon10) + icon9 = QtGui.QIcon() + icon9.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/img/icon_action_homepage.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionHomepage.setIcon(icon9) self.actionHomepage.setIconVisibleInMenu(True) self.actionHomepage.setObjectName(_fromUtf8("actionHomepage")) self.actionToggleAnki = QtGui.QAction(MainWindowReader) self.actionToggleAnki.setCheckable(True) self.actionToggleAnki.setObjectName(_fromUtf8("actionToggleAnki")) - self.actionCopySentence = QtGui.QAction(MainWindowReader) - self.actionCopySentence.setObjectName(_fromUtf8("actionCopySentence")) self.actionFeedback = QtGui.QAction(MainWindowReader) - icon11 = QtGui.QIcon() - icon11.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/img/icon_action_feedback.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.actionFeedback.setIcon(icon11) + icon10 = QtGui.QIcon() + icon10.addPixmap(QtGui.QPixmap(_fromUtf8(":/img/img/icon_action_feedback.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionFeedback.setIcon(icon10) self.actionFeedback.setObjectName(_fromUtf8("actionFeedback")) self.actionToggleKanji = QtGui.QAction(MainWindowReader) self.actionToggleKanji.setCheckable(True) @@ -224,9 +214,6 @@ class Ui_MainWindowReader(object): self.menuFile.addAction(self.menuOpenRecent.menuAction()) self.menuFile.addSeparator() self.menuFile.addAction(self.actionQuit) - self.menuEdit.addAction(self.actionCopyDefinition) - self.menuEdit.addAction(self.actionCopyAllDefinitions) - self.menuEdit.addAction(self.actionCopySentence) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionFind) self.menuEdit.addAction(self.actionFindNext) @@ -310,14 +297,9 @@ class Ui_MainWindowReader(object): self.actionToggleWrap.setToolTip(_translate("MainWindowReader", "Toggle word wrap", None)) self.actionToggleVocab.setText(_translate("MainWindowReader", "&Vocabulary", None)) self.actionToggleVocab.setToolTip(_translate("MainWindowReader", "Toggle definitions", None)) - self.actionCopyDefinition.setText(_translate("MainWindowReader", "Copy &definition", None)) - self.actionCopyDefinition.setShortcut(_translate("MainWindowReader", "Ctrl+D", None)) - self.actionCopyAllDefinitions.setText(_translate("MainWindowReader", "Copy &all definitions", None)) self.actionHomepage.setText(_translate("MainWindowReader", "&Homepage...", None)) self.actionHomepage.setToolTip(_translate("MainWindowReader", "Yomichan homepage", None)) self.actionToggleAnki.setText(_translate("MainWindowReader", "&Anki", None)) - self.actionCopySentence.setText(_translate("MainWindowReader", "Copy sen&tence", None)) - self.actionCopySentence.setShortcut(_translate("MainWindowReader", "Ctrl+T", None)) self.actionFeedback.setText(_translate("MainWindowReader", "&Feedback...", None)) self.actionToggleKanji.setText(_translate("MainWindowReader", "&Kanji", None)) diff --git a/yomi_base/gen/resources_rc.py b/yomi_base/gen/resources_rc.py index 173fb69..3d23083 100644 --- a/yomi_base/gen/resources_rc.py +++ b/yomi_base/gen/resources_rc.py @@ -2,7 +2,7 @@ # Resource object code # -# Created: Sun Nov 10 15:33:42 2013 +# Created: Sun Nov 10 17:56:51 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! diff --git a/yomi_base/reader.py b/yomi_base/reader.py index 4d63d6e..18111be 100644 --- a/yomi_base/reader.py +++ b/yomi_base/reader.py @@ -30,12 +30,13 @@ import update class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): class State: def __init__(self): + self.archiveIndex = None self.filename = unicode() - self.definitions = list() + self.kanjiDefs = list() + self.scanPosition = 0 self.searchPosition = 0 self.searchText = unicode() - self.scanPosition = 0 - self.archiveIndex = None + self.vocabDefs = list() def __init__(self, parent, preferences, language, filename=None, anki=None, closed=None): @@ -44,15 +45,15 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.textContent.mouseMoveEvent = self.onContentMouseMove self.textContent.mousePressEvent = self.onContentMousePress - self.dockAnki.setEnabled(bool(anki)) + self.dockAnki.setEnabled(anki is not None) - self.preferences = preferences - self.updateFinder = update.UpdateFinder() - self.state = self.State() - self.language = language self.addedFacts = list() self.anki = anki self.closed = closed + self.language = language + self.preferences = preferences + self.state = self.State() + self.updateFinder = update.UpdateFinder() self.zoom = 0 self.applyPreferences() @@ -67,9 +68,6 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.openFile(filenames[0]) self.actionAbout.triggered.connect(self.onActionAbout) - self.actionCopyAllDefinitions.triggered.connect(self.onActionCopyAllDefinitions) - self.actionCopyDefinition.triggered.connect(self.onActionCopyDefinition) - self.actionCopySentence.triggered.connect(self.onActionCopySentence) self.actionFeedback.triggered.connect(self.onActionFeedback) self.actionFind.triggered.connect(self.onActionFind) self.actionFindNext.triggered.connect(self.onActionFindNext) @@ -84,8 +82,10 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.dockKanji.visibilityChanged.connect(self.onVisibilityChanged) self.dockVocab.visibilityChanged.connect(self.onVisibilityChanged) self.listDefinitions.itemDoubleClicked.connect(self.onDefinitionDoubleClicked) - self.textDefinitions.anchorClicked.connect(self.onDefinitionsAnchorClicked) - self.textVocabSearch.returnPressed.connect(self.onDefinitionSearchReturn) + self.textKanjiDefs.anchorClicked.connect(self.onKanjiDefsAnchorClicked) + self.textKanjiSearch.returnPressed.connect(self.onKanjiDefSearchReturn) + self.textVocabDefs.anchorClicked.connect(self.onVocabDefsAnchorClicked) + self.textVocabSearch.returnPressed.connect(self.onVocabDefSearchReturn) self.updateFinder.updateResult.connect(self.onUpdaterSearchResult) if self.preferences['checkForUpdates']: @@ -223,20 +223,6 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.textContent.setLineWrapMode(wrap) - def onActionCopyDefinition(self): - reader_util.copyVocabDefs(self.state.definitions[:1]) - - - def onActionCopyAllDefinitions(self): - reader_util.copyVocabDefs(self.state.definitions) - - - def onActionCopySentence(self): - content = unicode(self.textContent.toPlainText()) - sentence = reader_util.findSentence(content, self.state.scanPosition) - QtGui.QApplication.clipboard().setText(sentence) - - def onActionHomepage(self): url = QtCore.QUrl(constants.c['urlHomepage']) QtGui.QDesktopServices().openUrl(url) @@ -247,9 +233,9 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): QtGui.QDesktopServices().openUrl(url) - def onDefinitionsAnchorClicked(self, url): + def onVocabDefsAnchorClicked(self, url): command, index = unicode(url.toString()).split(':') - definition = self.state.definitions[int(index)] + definition = self.state.vocabDefs[int(index)] if command == 'addVocabExp': markup = reader_util.markupVocabExp(definition) @@ -261,9 +247,28 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): reader_util.copyVocabDefs([definition]) - def onDefinitionSearchReturn(self): + def onKanjiDefsAnchorClicked(self, url): + command, index = unicode(url.toString()).split(':') + definition = self.state.kanjiDefs[int(index)] + + if command == 'addVocabExp': + markup = reader_util.markupVocabExp(definition) + self.ankiAddFact('vocab', markup) + if command == 'addVocabReading': + markup = reader_util.markupVocabReading(definition) + self.ankiAddFact('vocab', markup) + elif command == 'copyVocabDef': + reader_util.copyVocabDefs([definition]) + + + def onVocabDefSearchReturn(self): text = unicode(self.textVocabSearch.text()) - self.state.definitions, length = self.language.findTerm(text, True) + self.state.vocabDefs, length = self.language.findTerm(text, True) + self.updateDefinitions() + + + def onKanjiDefSearchReturn(self): + text = unicode(self.textKanjiSearch.text()) self.updateDefinitions() @@ -492,10 +497,10 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): return contentSampleFlat = contentSample.replace('\n', unicode()) - self.state.definitions, lengthMatched = self.language.findTerm(contentSampleFlat) + self.state.vocabDefs, lengthMatched = self.language.findTerm(contentSampleFlat) sentence = reader_util.findSentence(content, samplePosStart) - for definition in self.state.definitions: + for definition in self.state.vocabDefs: definition['sentence'] = sentence self.updateDefinitions() @@ -562,8 +567,8 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): def updateDefinitions(self): - html = reader_util.buildVocabDefs(self.state.definitions, self.ankiIsFactValid) - self.textDefinitions.setHtml(html) + html = reader_util.buildVocabDefs(self.state.vocabDefs, self.ankiIsFactValid) + self.textVocabDefs.setHtml(html) def setStatus(self, status):