Exemplo n.º 1
0
    def __init__(self, mainWindow, renderThread, pluginConfig=None):
        QWidget.__init__(self, mainWindow)
        self.mainWindow = mainWindow
        self.renderThread = renderThread
        self.pluginConfig = pluginConfig

        self.databaseUrl = None
        if self.pluginConfig:
            self.maximumSize = util.readConfigInt(self.pluginConfig,
                "Handwriting maximum field size",
                HandwritingPage.DEFAULT_MAXIMUM_FIELD_SIZE)
            self.maximumResults = util.readConfigInt(self.pluginConfig,
                "Handwriting maximum results",
                HandwritingPage.DEFAULT_MAXIMUM_RESULTS)
            self.databaseUrl = util.readConfigString(self.pluginConfig,
                "Update database url", None)
        else:
            self.maximumSize = HandwritingPage.DEFAULT_MAXIMUM_FIELD_SIZE
            self.maximumResults = HandwritingPage.DEFAULT_MAXIMUM_RESULTS

        if not self.databaseUrl:
            self.databaseUrl = unicode('sqlite:///'
                + util.getLocalData('dictionaries.db'))

        # set up UI
        self.setupUi(self)

        # connect to main window
        self.connect(self.mainWindow, SIGNAL("settingsChanged()"),
            self.slotSettingsChanged)
        self.connect(self.mainWindow, SIGNAL("writeSettings()"),
            self.writeSettings)

        self.connect(self.renderThread, SIGNAL("jobFinished"),
            self.contentRendered)

        self.handwritingView.setMaximumSize(self.maximumSize)

        # connect to the widgets
        self.connect(self.handwritingView, SIGNAL("updated()"),
            self.strokeInputUpdated)
        self.connect(self.handwritingResultView,
            SIGNAL("linkClicked(const QUrl &)"), self.handwritingResultClicked)
        self.handwritingResultView.page().setLinkDelegationPolicy(
            QWebPage.DelegateAllLinks)

        # add connections for clearing stroke input
        self.connect(self.clearButton, SIGNAL("clicked()"),
            self.handwritingView.clear)
        self.connect(self.backButton, SIGNAL("clicked()"),
            self.handwritingView.remove_last_stroke)

        self.clearButton.setIcon(KIcon('edit-clear'))
        self.backButton.setIcon(KIcon('edit-undo'))

        self.language = None
        self.characterDomain = None
        self.initialised = False
Exemplo n.º 2
0
    def restoreWindowState(self):
        # GUI settings
        history = util.readConfigString(GeneralConfig, "Url History", '')\
            .split(',')
        self.characterCombo.insertItems(history)
        self.historyLength = util.readConfigInt(GeneralConfig, "History Length",
            20)
        self.autoLookup = util.readConfigString(GeneralConfig,
            "Auto-Lookup clipboard", str(False)) != "False"
        self.autoLookupAction.setChecked(self.autoLookup)
        self.onlyAutoLookupCJKCharacters = util.readConfigString(GeneralConfig,
            "Auto-Lookup only Chinese characters", str(False)) != "False"

        self.splitterFrame.restoreState(QByteArray.fromBase64(
            str(util.readConfigString(GeneralConfig, "Splitter", ""))))
        self.splitterSizes = [int(i) for i \
            in util.readConfigString(GeneralConfig, "Splitter sizes",
                "220,426").split(',')]

        self.toolbarOriginalState = QByteArray.fromBase64(
            str(util.readConfigString(GeneralConfig, "Toolbar original state",
                "")))
        self.restoreState(self.toolbarOriginalState)
        self.menuBar().setVisible(True)

        self.characterChooser.setCurrentIndex(util.readConfigInt(GeneralConfig,
            "Toolbox current", 0))

        visible = GeneralConfig.readEntry("Toolbox visibile", str(True))
        if visible == "False":
            self.characterChooserOriginalVisibility = False
        else:
            self.splitterFrame.setSizes(self.splitterSizes)
            self.characterChooserOriginalVisibility = True
        self.characterChooser.setVisible(
            self.characterChooserOriginalVisibility)
        self.toggleToolboxAction.setChecked(
            self.characterChooserOriginalVisibility)

        w = util.readConfigInt(GeneralConfig, "Width", 640)
        h = util.readConfigInt(GeneralConfig, "Height", 420)
        self.defaultWindowSize = QSize(w, h)
        x = util.readConfigInt(GeneralConfig, "LastX", 0)
        y = util.readConfigInt(GeneralConfig, "LastY", 0)

        mini_w = util.readConfigInt(GeneralConfig, "Mini-mode Width", 400)
        mini_h = util.readConfigInt(GeneralConfig, "Mini-mode Height", 200)
        self.miniModeWindowSize = QSize(mini_w, mini_h)

        self.setGeometry(x, y, w, h)
Exemplo n.º 3
0
    def __init__(self, mainWindow, renderThread, pluginConfig=None):
        KDialog.__init__(self, mainWindow)
        self.renderThread = renderThread

        self.databaseUrl = None
        if pluginConfig:
            self.databaseUrl = util.readConfigString(self.pluginConfig,
                "Update database url", None)

        if not self.databaseUrl:
            self.databaseUrl = unicode('sqlite:///'
                + util.getLocalData('dictionaries.db'))

        self.renderThread.setObject(DictionaryInfo,
            databaseUrl=self.databaseUrl)

        self.setCaption(i18n("Install/Update Dictionaries"))
        self.setButtons(KDialog.ButtonCode(KDialog.Close))
        self.enableButton(KDialog.Cancel, False)

        # TODO can we defer the creation of the update widget until the dialog is shown?
        self.updateWidget = UpdateWidget(mainWindow, renderThread, pluginConfig)
        self.connect(self.updateWidget, SIGNAL("working(bool)"),
            self.slotUpdateWorking)
        self.setMainWidget(self.updateWidget)

        self.connect(self, SIGNAL("finished()"), self.slotFinish)

        self.initialised = False

        self.connect(self.renderThread, SIGNAL("jobFinished"),
            self.contentRendered)
        self.connect(self.renderThread, SIGNAL("jobErrorneous"),
            self.renderingFailed)

        self.actionCollection = KActionCollection(self)
        self.setupActions()
Exemplo n.º 4
0
    def __init__(self, mainWindow, renderThread, pluginConfig=None):
        QWidget.__init__(self, mainWindow)
        self.mainWindow = mainWindow
        self.renderThread = renderThread
        self.pluginConfig = pluginConfig

        # set up UI
        self.setupUi(self)

        self.radicalView.setPage(util.HandyWebpage(self))

        self.databaseUrl = None
        if self.pluginConfig:
            self.includeAllRadicals = self.pluginConfig.readEntry(
                "Radical include all", str(False)) != "False"
            self.databaseUrl = util.readConfigString(self.pluginConfig,
                "Update database url", None)
        else:
            self.includeAllRadicals = True

        if not self.databaseUrl:
            self.databaseUrl = unicode('sqlite:///'
                + util.getLocalData('dictionaries.db'))

        self.nonKangxiRadicalButton.setChecked(self.includeAllRadicals)
        self.radicalOptions.setCurrentIndex(0)

        self.strokeCountRegex = re.compile(r'\s*(\d+)\s*$')
        self.radicalIndexRegex = re.compile(r'\s*[#RrIi](\d*)\s*$')

        self.radicalTableViewScroll = 0
        self.currentRadicalIndex = None
        self.currentSelectedEntry = None
        self.radicalEntryDict = None
        self.language = None
        self.characterDomain = None

        # connect to main window
        self.connect(self.mainWindow, SIGNAL("settingsChanged()"),
            self.slotSettingsChanged)
        self.connect(self.mainWindow, SIGNAL("writeSettings()"),
            self.writeSettings)

        self.connect(self.renderThread, SIGNAL("jobFinished"),
            self.contentRendered)

        # connect to the radical table widgets
        self.connect(self.gotoEdit, SIGNAL("textChanged(const QString &)"),
            self.gotoEditChanged)
        self.connect(self.gotoEdit, SIGNAL("returnPressed()"),
            self.lookupSelectedRadical)
        self.connect(self.gotoEdit, SIGNAL("clearButtonClicked()"),
            self.gotoEditCleared)
        self.connect(self.gotoNextButton, SIGNAL("clicked(bool)"),
            self.gotoNextClicked)
        self.connect(self.gotoButton, SIGNAL("clicked(bool)"),
            lambda x: self.lookupSelectedRadical())
        # connect to the character table widgets
        self.connect(self.toRadicalTableButton, SIGNAL("clicked(bool)"),
            self.showRadicalTable)
        self.connect(self.nonKangxiRadicalButton, SIGNAL("clicked(bool)"),
            self.toggleIncludeAllRadicals)

        self.connect(self.radicalView.page(),
            SIGNAL("linkClicked(const QUrl &)"), self.radicalClicked)

        self.gotoNextButton.setEnabled(False)
        self.gotoButton.setEnabled(False)
        self.groupRadicalFormsButton.setVisible(False) # TODO implement functionality

        self.initialised = False
Exemplo n.º 5
0
    def __init__(self, mainWindow, renderThread, pluginConfig=None):
        QWidget.__init__(self, mainWindow)
        self.mainWindow = mainWindow
        self.renderThread = renderThread
        self.pluginConfig = pluginConfig

        # set up UI
        self.setupUi(self)

        self.databaseUrl = None
        if self.pluginConfig:
            self.includeSimilar = util.readConfigString(self.pluginConfig,
                "Component include similar", str(True)) != "False"
            self.includeVariants = util.readConfigString(self.pluginConfig, 
                "Component include variants", str(True)) != "False"

            self.databaseUrl = util.readConfigString(self.pluginConfig,
                "Update database url", None)

            splitterState = util.readConfigString(self.pluginConfig,
                "Component splitter", "")
            self.componentSplitter.restoreState(QByteArray.fromBase64(
                str(splitterState)))
        else:
            self.includeSimilar = True
            self.includeVariants = True

        if not self.databaseUrl:
            self.databaseUrl = unicode('sqlite:///'
                + util.getLocalData('dictionaries.db'))

        self.includeSimilarButton.setChecked(self.includeSimilar)
        self.includeVariantsButton.setChecked(self.includeVariants)

        self.componentViewScroll = 0
        self.selectedComponents = []
        self.language = None
        self.characterDomain = None

        # connect to main window
        self.connect(self.mainWindow, SIGNAL("settingsChanged()"),
            self.slotSettingsChanged)
        self.connect(self.mainWindow, SIGNAL("writeSettings()"),
            self.writeSettings)

        self.connect(self.renderThread, SIGNAL("jobFinished"),
            self.contentRendered)

        # connect to the widgets
        self.connect(self.includeVariantsButton, SIGNAL("clicked(bool)"),
            self.componentIncludeVariants)
        self.connect(self.includeSimilarButton, SIGNAL("clicked(bool)"),
            self.componentIncludeSimilar)

        self.connect(self.componentView, SIGNAL("linkClicked(const QUrl &)"),
            self.componentClicked)
        self.connect(self.componentView, SIGNAL("loadFinished(bool)"),
            self.componentViewLoaded)
        self.connect(self.componentResultView,
            SIGNAL("linkClicked(const QUrl &)"), self.componentResultClicked)
        self.connect(self.componentEdit,
            SIGNAL("textChanged(const QString &)"),
            self.componentEditChanged)

        self.componentView.page().setLinkDelegationPolicy(
            QWebPage.DelegateAllLinks)
        self.componentResultView.page().setLinkDelegationPolicy(
            QWebPage.DelegateAllLinks)

        self.initialised = False