def __init__(self, sourceInterface=None, additionalInterfaces=[], parent=None): super(JinxDataSource, self).__init__(parent) self._model = None self._needToRefresh = True self._sortableTypes = [ common.TYPE_STRING_SINGLELINE, common.TYPE_DATE, common.TYPE_DATE_TIME, common.TYPE_FLOAT, common.TYPE_INTEGER, common.TYPE_UNSIGNED_INTEGER ] self._allInterfaces = [] self._totalCount = -1 self._filter = mongorm.getFilter() self._interface = sourceInterface self._additionalInterfaces = additionalInterfaces self._allInterfaces.extend(self._additionalInterfaces) self._allInterfaces.append(self._interface) self._columnHeaderMap = self._generateHeaderMap() self._columnList = filter(self._columnHeaderMap.get, self.COLUMN_HEADER_ORDER) for columnCode in sorted(self._columnHeaderMap.keys()): if columnCode not in self.COLUMN_HEADER_ORDER: self._columnList.append(columnCode) if not self._columnList: self._columnList = self._columnHeaderMap.keys() self._headerItem = self._createHeaderItem(self._columnList)
def parent(self): super(Leaf, self).parent() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['stalk'], uuid=self.stalk_uuid) stalk = db['stalk'].one(filt) return stalk
def parent(self): super(Stalk, self).parent() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['twig'], uuid=self.twig_uuid) stem = db['twig'].one(filt) return stem
def parent(self): super(Twig, self).parent() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['stem'], uuid=self.stem_uuid) stem = db['stem'].one(filt) return stem
def parent(self, interfaceType): super(Stem, self).parent() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db[interfaceType], uuid=self.parent_uuid) job = db[interfaceType].one(filt) return job
def children(self, interfaceType): super(Job, self).children() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db["stem"], job=self.job) stems = db["stem"].all(filt) if stems.hasObjects(): return stems else: return None
def children(self, interfaceType): super(Stem, self).children() db = mongorm.getHandler() filt = mongorm.getFilter() filt.setInterface(db[interfaceType]) filt.overrideFilterStrings({"stem_uuid": self.uuid} if interfaceType == "twig" else {"parent_uuid": self.uuid}) twigs = db[interfaceType].all(filt) if twigs.hasObjects(): return twigs else: return None
def siblings(self, includeSelf=False): db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['job']) siblings = db['job'].all(filt) if not siblings.size() < 2: if includeSelf: return siblings else: siblings.remove_object(self) return siblings else: return None
def siblings(self, includeSelf=True): db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['leaf'], stalk_uuid=self.stalk_uuid) siblings = db['leaf'].all(filt) if not siblings.size() < 2: if includeSelf: return siblings else: siblings.remove_object(self) return siblings else: return None
def children(self): """ Returns all leaf objects associated with this (self) stalk. """ super(Stalk, self).children() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['leaf'], stalk_uuid=self.uuid) leafs = db['leaf'].all(filt) if leafs.hasObjects(): return leafs else: return None
def children(self): """ Returns all stalk versions associated with this (self) twig. """ super(Twig, self).children() db = mongorm.getHandler() filt = mongorm.getFilter() filt.search(db['stalk'], twig_uuid=self.uuid) stalks = db['stalk'].all(filt) if stalks.hasObjects(): return stalks else: return None
self, None) gridColor = QtGui.QColor.fromRgb(gridHint & 0xffffffff) painter.setPen(QtGui.QPen(gridColor, 0, QtCore.Qt.SolidLine)) painter.drawLine(rect.left(), rect.bottom(), rect.right(), rect.bottom()) painter.restore() if __name__ == '__main__': import sys import qdarkstyle from jinxqt.modelview.datasource.interfaces.twig import TwigDataSource import mongorm db = mongorm.getHandler() app = QtWidgets.QApplication(sys.argv) app.setStyleSheet(qdarkstyle.load_stylesheet_pyside2()) win = TreeView() model = Model() handler = mongorm.getHandler() filter = mongorm.getFilter() datasource = TwigDataSource(handler) datasource._filter.search(datasource._interface) model.setDataSource(datasource) win.setModel(model) win.header().moveSection(0, 1) win.header().setFirstSectionMovable(True) win._resizeAllColumnsToContents() win.show() sys.exit(app.exec_())