Beispiel #1
0
def saveAsDb(fldbk, newDb=None):
    if QtWidgets.QApplication.focusWidget() != None:
        fieldname = QtWidgets.QApplication.focusWidget().objectName()
        try:
            update.setContents(fldbk, fieldname)
        except IndexError:
            pass
    parent = None
    openFileDialog = QtWidgets.QFileDialog(fldbk)
    filePath = path.dirname(openFileDialog.directory().currentPath())
    fileDir = path.split(filePath)
    if fileDir[1] == 'com.UNTProject.eFieldbook':
        openFileDialog.setDirectory(dataIndex.homePath)
    if newDb != None:
        openFileDialog.setDirectory(dataIndex.homePath)
        openFileDialog.selectFile('*.xml')
        fname = openFileDialog.getSaveFileName(parent, "Create database.")[0]
    else:
        fname = openFileDialog.getSaveFileName(parent, "Save As...")[0]
    if fname:
        saveDoc = etree.tostring(dataIndex.root, encoding="unicode")
        saveFile = open(fname, "w", encoding="UTF-8")
        saveFile.write(saveDoc)
        saveFile.close()
        dataIndex.unsavedEdit = 0
        dataIndex.sourceFile = fname[len(dataIndex.homePath):]
        if dataIndex.sourceFile not in dataIndex.recentFile:
            dataIndex.recentFile.insert(0, dataIndex.sourceFile)
        fldbk.settings.setValue('LastFile', dataIndex.sourceFile)
        fldbk.settings.setValue('RecentFile', dataIndex.recentFile)
        fldbk.giveWindowTitle()
 def eventFilter(self,  object,  event):
     fldbk = dataIndex.fldbk
     if event.type() == QtCore.QEvent.FocusIn:
         try:
             object.clearSelection()
         except AttributeError:
             pass
     if event.type() == QtCore.QEvent.FocusOut:
         try:
             object.clearSelection()
         except AttributeError:
             pass
         try:
             if self.parentWidget().dialectMenu.hasFocus():
                 return False
         except AttributeError:
             pass
         if dataIndex.unsavedEdit == 1:
             fieldname = QtCore.QObject.objectName(object)
             wordCount = fldbk.lDialect.toPlainText().split()
             if len(wordCount) == 2:
                 fldbk.dialectBox = QtWidgets.QMessageBox()
                 fldbk.dialectBox.setIcon(QtWidgets.QMessageBox.Warning)
                 fldbk.dialectBox.setStandardButtons(QtWidgets.QMessageBox.Cancel)
                 fldbk.dialectBox.setStandardButtons(QtWidgets.QMessageBox.Ok)
                 fldbk.dialectBox.setDefaultButton(QtWidgets.QMessageBox.Ok)
                 fldbk.dialectBox.setText('Formatting error.')
                 fldbk.dialectBox.setInformativeText('Format dialect information as'
                                                    '<blockquote><big>Cdn. (US. soda; UK fizzy drink)</big></blockquote>'
                                                    'For expressions known for only one dialect, simply<br /> '
                                                    'give the dialect name without an alternative.<br />')
                 fldbk.dialectBox.exec_()
                 return False
             update.setContents(fldbk, fieldname)
     return False
    def eventFilter(self, object, event):
        fldbk = self.fldbk
               
        if event.type() == QtCore.QEvent.FocusOut:
#            if dataIndex.unsavedEdit == 1:
            fieldname = QtCore.QObject.objectName(object)
            update.setContents(fldbk, fieldname)
        
        if event.type() == QtCore.QEvent.KeyPress:
            if event.key() == QtCore.Qt.Key_Return:
                if not fldbk.eAutoParsingBtn.isChecked():
                    return True
                autoparsing.doParse()
                return True
        return False
        def eventFilter(self, object, event):
            fldbk = dataIndex.fldbk
            if event.type() == QtCore.QEvent.FocusIn:
                try:
                    object.clearSelection()
                except AttributeError:
                    pass
                   
            if event.type() == QtCore.QEvent.FocusOut:
                try:
                    object.clearSelection()
                except AttributeError:
                    pass
#                if dataIndex.unsavedEdit == 1:
                fieldname = QtCore.QObject.objectName(object)
                if len(fieldname) != 0:
                    update.setContents(fldbk, fieldname)
            return False
Beispiel #5
0
def saveDb(fldbk):
    if QtWidgets.QApplication.focusWidget() != None:
        fieldname = QtWidgets.QApplication.focusWidget().objectName()
        if len(fieldname) != 0:
            try:
                update.setContents(fldbk, fieldname)
            except IndexError:
                pass
    if dataIndex.sourceFile != None:
        saveDoc = etree.tostring(dataIndex.root, "unicode")
        #        saveFile = QtCore.QFile(dataIndex.sourceFile)
        #        saveFile.open(QtCore.QIODevice.ReadWrite)
        saveFile = open(dataIndex.homePath + dataIndex.sourceFile,
                        "w",
                        encoding="UTF-8")
        saveFile.write(saveDoc)
        saveFile.close()
    else:
        saveAsDb(fldbk)
    dataIndex.unsavedEdit = 0
    fldbk.settings.setValue('LastFile', dataIndex.sourceFile)
    fldbk.settings.setValue('RecentFile', dataIndex.recentFile)
 def eventFilter(self,  object,  event):
     fldbk = QtCore.QObject.parent(object).parentWidget()
     while QtCore.QObject.objectName(fldbk) != 'Fieldbook':
         fldbk = QtCore.QObject.parent(fldbk)
     if event.type() == QtCore.QEvent.FocusOut:
         if dataIndex.unsavedEdit ==1:
             fieldname = QtCore.QObject.objectName(object)
             if len(fldbk.lBrrw.toPlainText().split(None,1)) == 1:
                 fldbk.brrwBox = QtWidgets.QMessageBox()
                 fldbk.brrwBox.setIcon(QtWidgets.QMessageBox.Warning)
                 fldbk.brrwBox.setStandardButtons(QtWidgets.QMessageBox.Cancel)
                 fldbk.brrwBox.setStandardButtons(QtWidgets.QMessageBox.Ok)
                 fldbk.brrwBox.setDefaultButton(QtWidgets.QMessageBox.Ok)
                 fldbk.brrwBox.setText('Formatting error.')
                 fldbk.brrwBox.setInformativeText('The borrowings field must have both<br />'
                                                 'the abbreviated variant name and the <br />'
                                                 'alternative form, as in:'
                                                 '<blockquote><big>Sp. “nena”</big></blockquote>')
                 fldbk.brrwBox.exec_()
                 return False
             update.setContents(fldbk, fieldname)
     return False