def addItemForExpense(self, topLevelItem, ex): ex_str = "%-5d %s\n(%s -> %s)" % (ex.value, ex.desc, self.__envMgr.envNameForId(ex.fromId), self.__envMgr.envNameForId(ex.toId)) ex_item = QTreeWidgetItem([ex_str]) ex_item.setText(0, ex_str) ex_item.setData(0, Qt.UserRole, ex) topLevelItem.insertChild(0, ex_item)
def add_children(self, node, item): for child in node.children: childItem = QTreeWidgetItem() childItem.setText(0, child.label) childItem.setData(1,Qt.ItemDataRole.EditRole, child) item.addChild(childItem) self.add_children(child, childItem)
def set_favorites(self, favoritesRoot): self.tree.clear() item = QTreeWidgetItem() item.setText(0, favoritesRoot.label) item.setData(1,Qt.ItemDataRole.EditRole, favoritesRoot) self.tree.addTopLevelItem(item) self.add_children(favoritesRoot, item)
def add_child(self): item = self.tree.currentItem() print item.data(1, Qt.ItemDataRole.EditRole).getFullPath() newItem = add_child(item.data(1, Qt.ItemDataRole.EditRole)) newChildNode = QTreeWidgetItem() newChildNode.setText(0, newItem.label) newChildNode.setData(1, Qt.ItemDataRole.EditRole, newItem) item.addChild(newChildNode)
def updateList(self): self.ui.categoryWidget.itemChanged.connect(self.updatePluginSettings) defaultCollection = None for pluginCollection in self.private.manager.pluginCollections().values(): if not pluginCollection.name: defaultCollection = pluginCollection continue collectionItem = QTreeWidgetItem([pluginCollection.name(), "", "", "", ""]) self.items.append(collectionItem) state, groupState = self.parsePluginSpecs(collectionItem, pluginCollection.plugins()) collectionItem.setIcon(0, self.iconForState(state)) collectionItem.setData(C_LOAD, Qt.CheckStateRole, groupState) collectionItem.setToolTip(C_LOAD, "Load on Startup") collectionItem.setData(0, Qt.UserRole, pluginCollection) # add all non-categorized plugins into utilities. could also be added as root items # but that makes the tree ugly defaultCollectionItem = QTreeWidgetItem(["Utilities", "", "", "", ""]) self.items.append(defaultCollectionItem) state, groupState = self.parsePluginSpecs(defaultCollectionItem, defaultCollection.plugins) defaultCollectionItem.setIcon(0, self.iconForState(state)) defaultCollectionItem.setData(C_LOAD, Qt.CheckStateRole, groupState) defaultCollectionItem.setToolTip(C_LOAD, "Load on Startup") defaultCollectionItem.setData(0, Qt.UserRole, defaultCollection) self.updatePluginDependencies() self.ui.categoryWidget.clear() if self.items: self.ui.categoryWidget.addTopLevelItems(self.items) self.ui.categoryWidget.expandAll() self.ui.categoryWidget.sortItems(0, Qt.AscendingOrder) if self.ui.categoryWidget.topLevelItemCount(): self.ui.categoryWidget.setCurrentItem(self.ui.categoryWidget.topLevelItem(0))
def getTopLevelItemForDate(self, tw, date): """ @type tw: QListWidget """ for i in range(tw.topLevelItemCount()): item = tw.topLevelItem(i) if item is None: continue item_date = item.data(0, Qt.UserRole) if date == item_date: return item item = QTreeWidgetItem([str(date)]) item.setData(0, Qt.UserRole, date) item.setText(0, date.strftime("%A, ") + str(date)) # FIXME: do we always need to insert at zero idx? tw.insertTopLevelItem(0, item) return item
def _populateTree(self): self.pushupsListWidget.clear() self.pushupsListWidget.setColumnCount(4) self.pushupsListWidget.setHeaderLabels([ "Date", "TotalPushups", "Series", "Repetitions", "Average Heart Rate" ]) self.pushupsListWidget.setSortingEnabled(True) self.pushupsListWidget.setColumnWidth(0, 180) self.pushupsListWidget.setColumnWidth(4, 150) pushupDict = self._getPushupDictionary() for it, dayOfExercise in enumerate(sorted(pushupDict.keys())): dateItem = QTreeWidgetItem() dayLabel = dayOfExercise.strftime("%Y/%m/%d") dateItem.setText(0, "\n" + dayLabel + "\nDay : " + str(it)) self.pushupsListWidget.addTopLevelItem(dateItem) totalPushups = 0 for pushup in pushupDict[dayOfExercise]: pushupItem = QTreeWidgetItem() pushupItem.setText(2, "#" + str(pushup._series)) pushupItem.setText(3, str(pushup._repetitions)) pushupItem.setText(4, str(pushup._averageHeartRate)) pushupItem.setData(0, Qt.UserRole, pushup) totalPushups = totalPushups + pushup._repetitions dateItem.addChild(pushupItem) dateItem.setText(1, str(totalPushups))
def _populateTree(self): self.pushupsListWidget.clear() self.pushupsListWidget.setColumnCount(4) self.pushupsListWidget.setHeaderLabels(["Date", "TotalPushups", "Series", "Repetitions", "Average Heart Rate"]) self.pushupsListWidget.setSortingEnabled(True) self.pushupsListWidget.setColumnWidth(0, 180) self.pushupsListWidget.setColumnWidth(4, 150) pushupDict = self._getPushupDictionary() for it, dayOfExercise in enumerate(sorted(pushupDict.keys())): dateItem = QTreeWidgetItem() dayLabel = dayOfExercise.strftime("%Y/%m/%d") dateItem.setText(0, "\n" + dayLabel + "\nDay : " + str(it)) self.pushupsListWidget.addTopLevelItem(dateItem) totalPushups = 0 for pushup in pushupDict[dayOfExercise]: pushupItem = QTreeWidgetItem() pushupItem.setText(2, "#" + str(pushup._series)) pushupItem.setText(3, str(pushup._repetitions)) pushupItem.setText(4, str(pushup._averageHeartRate)) pushupItem.setData(0, Qt.UserRole, pushup) totalPushups = totalPushups + pushup._repetitions dateItem.addChild(pushupItem) dateItem.setText(1, str(totalPushups))
def parsePluginSpecs(self, parentItem, plugins): ret = 0 loadCount = 0 for i in range(len(plugins)): spec = plugins[i] if spec.hasError(): ret |= ParsedState.ParsedWithErrors pluginItem = QTreeWidgetItem([spec.name(), "", "{0} ({1})".format(spec.version(), spec.compatVersion()), spec.vendor()]) pluginItem.setToolTip(0, QDir.toNativeSeparators(spec.filePath())) ok = not spec.hasError() icon = self.okIcon if ok else self.errorIcon if ok and spec.state() is not PluginState.Running: icon = self.notLoadedIcon pluginItem.setIcon(0, icon) pluginItem.setData(0, Qt.UserRole, spec) state = Qt.Unchecked if spec.isEnabled(): state = Qt.Checked loadCount += 1 if spec.name() not in self.whitelist: pluginItem.setData(C_LOAD, Qt.CheckStateRole, state) else: pluginItem.setData(C_LOAD, Qt.CheckStateRole, Qt.Checked) pluginItem.setFlags(Qt.ItemIsSelectable) pluginItem.setToolTip(C_LOAD, "Load on Startup") self.specToItem[spec] = pluginItem if parentItem: parentItem.addChild(pluginItem) else: self.items.append(pluginItem) if loadCount == len(plugins): groupState = Qt.Checked ret |= ParsedState.ParsedAll elif loadCount == 0: groupState = Qt.Unchecked ret |= ParsedState.ParsedNone else: groupState = Qt.PartiallyChecked ret |= ParsedState.ParsedPartial return ret, groupState