コード例 #1
0
ファイル: wrapper.py プロジェクト: fu2re/jsondb
    def __init__(self, project_name, table_name, table, root):
        self.project_name = project_name
        self.table_name = table_name
        self.table = table
        self.root = root
        QtGui.QSplitter.__init__(self)

        self.grid = QtGui.QGridLayout()

        self.filter = QFilter(root, self)
        self.doctable = QTable(root, self)        
        self.grid.addWidget(self.filter, 0, 0)
        self.grid.addWidget(self.doctable, 1, 0)
        self.setLayout(self.grid)

        self.splitterMoved.connect(self._saveState)
        self.restoreState(
            self.root.window.settings.value("table/state").toByteArray()
        )
コード例 #2
0
ファイル: wrapper.py プロジェクト: fu2re/jsondb
class QBox(QtGui.QSplitter):
    def __init__(self, project_name, table_name, table, root):
        self.project_name = project_name
        self.table_name = table_name
        self.table = table
        self.root = root
        QtGui.QSplitter.__init__(self)

        self.grid = QtGui.QGridLayout()

        self.filter = QFilter(root, self)
        self.doctable = QTable(root, self)        
        self.grid.addWidget(self.filter, 0, 0)
        self.grid.addWidget(self.doctable, 1, 0)
        self.setLayout(self.grid)

        self.splitterMoved.connect(self._saveState)
        self.restoreState(
            self.root.window.settings.value("table/state").toByteArray()
        )

    def _saveState(self):
        """
        Сохраняем геометрию
        """
        self.root.window.settings.setValue(
            "table/state", self.saveState()
        )

    def _update(self, *args):
        """
        Обновляем таблицу если был изменен хотя бы один документ в ней
        """
        if self.root._dy_unchanged(self.table) or \
        not hasattr(self, 'firstshow'):
            self.filter._search()
            self.firstshow = True

    def _memSave(self, item):
        """
        Сохраняем изменения в память
        """
        if not hasattr(item, '_activated'):
            return

        self.root._changed(item._doc)
        self.root._dy_changed(item._doc.t)
        try:
            if not isinstance(item, QRemoteImage):
                item._val = '%s' % item.text()

            if item._val == '' and self.doctable._structure[item._addr].blank:
                item._doc.remove(item._addr)

            else:
                item._doc.set(
                    item._addr,
                    projectManager.converter[self.doctable._structure[item._addr].kind](item._val),
                    False
                )
                item._before = item._val

        except (UnicodeEncodeError, ValueError):
            self.root._message(
                u'Ошибка типа значения, пожалуйста укажите значение соответствующего типа'
            )
            item.setText(unicode(item._before))

        except:
            self.root._log()
            item.setText(unicode(item._before))