コード例 #1
0
 def copy(self):
     dataList = self.prepareCopy()
     mimeData = QMimeData()
     for dataFormat, data in dataList.iteritems():
         v = toVariant(data)
         mimeData.setData(dataFormat, v.toByteArray())
     QtGui.qApp.clipboard().setMimeData(mimeData)
コード例 #2
0
ファイル: Col.py プロジェクト: soltanoff/pyqt_libs
    def getEditorData(self, editor):
        """
        Получить значение из редактора.

        :param editor: редактор, значение из которого необходимо получить.
        :type editor: QVariant
        :return:
        """
        text = trim(editor.text())
        if text:
            if self._completer:
                variantText = QtCore.QVariant(text)
                completionColumn = self._completer.completionColumn()
                startIndex = self._completerModel.index(0, completionColumn)
                if not self._completerModel.match(
                        startIndex, QtCore.Qt.DisplayRole, variantText):
                    db = QtGui.qApp.db
                    completerTable = db.table('rbTextDataCompleter')
                    newRecord = completerTable.newRecord()
                    if newRecord.contains(
                            u'code') and self._completerCode is not None:
                        newRecord.setValue(
                            u'code', QtCore.QVariant(self._completerCode))
                    newRecord.setValue(self._completer.completionColumn(),
                                       variantText)
                    db.insertRecord(completerTable, newRecord)
            return toVariant(text)
        else:
            return QVariant()
コード例 #3
0
 def toString(self, val, record):
     for cache in self._caches:
         itemId = forceRef(val)
         record = cache.get(itemId)
         if not record:
             return toVariant('')
         else:
             val = record.value(0)
             # На случай, когда нет ссылки на id в следующей таблицы цепочки
             # Но для текущей таблицы указаны резервные поля (нужно для полей вида freeInput)
             if val.isNull() and record.count() > 1:
                 for fieldIdx in xrange(1, record.count()):
                     val = record.value(fieldIdx)
                     if not val.isNull():
                         return toVariant(val)
     return val
コード例 #4
0
    def setEditorData(self, editor, value, record):
        subTable = self._caches[0].table
        cond = self._editorValueFilter
        if isinstance(cond, tuple) and len(cond) == 2:
            masterFieldName, slaveFieldName = self._editorValueFilter
            masterValue = record.value(masterFieldName)
            cond = subTable[slaveFieldName].eq(masterValue)

        if not self._mapMasterIdToItemIdList.has_key(cond):
            self._mapMasterIdToItemIdList[cond] = QtGui.qApp.db.getIdList(table=subTable,
                                                                          where=cond)
        editor.clear()
        if self._addNone:
            editor.addItem(u'Не выбрано', userData=toVariant(None))

        for itemId in self._mapMasterIdToItemIdList[cond]:
            itemText = forceString(self.toString(itemId, record))
            editor.addItem(itemText, userData=toVariant(itemId))
コード例 #5
0
ファイル: Col.py プロジェクト: soltanoff/pyqt_libs
 def __init__(self, title, fieldName, width, **params):
     self._title = toVariant(title)
     self._fieldName = fieldName
     self._width = width
     self._toolTip = toVariant(params.get('toolTip', None))
     self._whatsThis = toVariant(params.get('whatThis', None))
     self._external = params.get('external', False)
     self._valueType = params.get('valueType', None)
     self._readOnly = params.get('readOnly', False)
     self._maxLength = params.get('maxLength', None)
     self._inputMask = params.get('inputMask', None)
     self._sortable = params.get('sortable', False)
     self._decsSortToAscById = params.get('decsSortToAscById', False)
     self._useNaturalStringCompare = params.get('naturalStringCompare',
                                                True)
     self._alignmentChar = params.get('alignment', 'l')
     self._isVisible = params.get('isVisible', True)
     self._isRTF = params.get('isRTF', False)
     self._completerModel = None
     self._completer = None
     self._completerCode = None
コード例 #6
0
ファイル: EnumInDocTable.py プロジェクト: soltanoff/pyqt_libs
    def createEditor(self, parent):
        if self.isEnumClass:
            editor = CEnumComboBox(parent)
            editor.setEnum(self.values, addNone=self._addNone)
            return editor

        editor = CComboBox(parent)
        if self._addNone:
            editor.addItem(u'Не задано', toVariant(None))
        for value, title in enumerate(self.values):
            editor.addItem(title, value)
        return editor
コード例 #7
0
ファイル: Col.py プロジェクト: soltanoff/pyqt_libs
 def setToolTip(self, toolTip):
     self._toolTip = toVariant(toolTip)
コード例 #8
0
ファイル: Col.py プロジェクト: soltanoff/pyqt_libs
 def setTitle(self, title):
     self._title = toVariant(title)
コード例 #9
0
ファイル: SumCol.py プロジェクト: soltanoff/pyqt_libs
 def format(self, values):
     sum = forceDouble(values[0])
     return toVariant(self.locale.toString(sum, 'f', 2))
コード例 #10
0
ファイル: DecimalCol.py プロジェクト: soltanoff/pyqt_libs
 def format(self, values):
     return toVariant(forceDecimal(values[0]))
コード例 #11
0
ファイル: IntCol.py プロジェクト: soltanoff/pyqt_libs
 def format(self, values):
     return toVariant(forceInt(values[0]))
コード例 #12
0
ファイル: EnumInDocTable.py プロジェクト: soltanoff/pyqt_libs
 def getEditorData(self, editor):
     return toVariant(editor.currentText())
コード例 #13
0
ファイル: EnumInDocTable.py プロジェクト: soltanoff/pyqt_libs
 def toString(self, val, record):
     str = forceString(val).lower()
     for item in self.values:
         if item.lower() == str:
             return toVariant(item)
     return toVariant(u'{' + forceString(val) + u'}')
コード例 #14
0
ファイル: EnumInDocTable.py プロジェクト: soltanoff/pyqt_libs
    def getEditorData(self, editor):
        if self.isEnumClass:
            return toVariant(editor.value())

        idx = editor.currentIndex()
        return editor.itemData(idx)
コード例 #15
0
ファイル: EnumInDocTable.py プロジェクト: soltanoff/pyqt_libs
 def toString(self, val, record):
     if self._addNone and val.isNull():
         return toVariant(u'Не задано')
     return toVariant(self.values[forceInt(val)])
コード例 #16
0
ファイル: Col.py プロジェクト: soltanoff/pyqt_libs
 def setWhatsThis(self, whatsThis):
     self._whatsThis = toVariant(whatsThis)
コード例 #17
0
ファイル: Col.py プロジェクト: soltanoff/pyqt_libs
 def format(self, values):
     id = forceStringEx(values[0])
     if not self.isKeyInCache(id):
         self.load(id)
     return toVariant(self.getFromCache(id))
コード例 #18
0
 def data(self, column):
     if column == 0:
         return toVariant(self._name)
     else:
         return QtCore.QVariant()