def _loadDir(self, base_path, tree): for element in os.listdir(base_path): path = os.path.join(base_path, element) if (not os.path.isdir(path)) and (not path.endswith(".csv")): continue if os.path.isdir(path): parent_itm = QTreeWidgetItem(tree, [element]) self._loadDir(path, parent_itm) if parent_itm.childCount() == 0: parent = parent_itm.parent() root = parent_itm.treeWidget().invisibleRootItem() (parent or root).removeChild(parent_itm) else: parent_itm.setIcon( 0, QIcon( "/usr/share/icons/ubuntu-mono-light/places/16/folder-home.svg" )) # parent_itm.setExpanded(True) else: if Graph.getGraphDesc(path) is None: continue # item = GraphFileTreeWidgetItem(tree, element) item = QTreeWidgetItem(tree, [element]) item.setData(0, Qt.UserRole, path) item.setCheckState(0, Qt.Unchecked)
def populate(self): """Puts the deleted/changed snippets in the tree.""" self.deletedItem.takeChildren() self.deletedItem.setExpanded(True) self.deletedItem.setCheckState(0, Qt.Unchecked) self.changedItem.takeChildren() self.changedItem.setExpanded(True) self.changedItem.setCheckState(0, Qt.Unchecked) builtins = list(builtin.builtin_snippets) builtins.sort(key=snippets.title) names = frozenset(snippets.names()) for name in builtins: if name in names: if snippets.isoriginal(name): continue parent = self.changedItem else: parent = self.deletedItem item = QTreeWidgetItem(parent) item.name = name item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, Qt.Unchecked) item.setText(0, snippets.title(name)) self.deletedItem.setDisabled(self.deletedItem.childCount() == 0) self.changedItem.setDisabled(self.changedItem.childCount() == 0) self.checkOkButton()
def addParent(self, parent, column, title, data, status): item = QTreeWidgetItem(parent, [title]) item.setData(column, Qt.UserRole, data) item.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) item.setCheckState (column, self.getCheckStatus(status)) item.setExpanded (False) return item
def populate(self): self.tree.connect(self.tree, SIGNAL("itemClicked(QTreeWidgetItem *, int)"), self.clicked) self.tree.connect(self.tree, SIGNAL("itemPressed(QTreeWidgetItem *, int)"), self.clicked) for mimetype, mimecontent in self.mm.mimetypes.iteritems(): mimetypeItem = QTreeWidgetItem(self.tree, [mimetype]) mimetypeItem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) mimetypeItem.setCheckState(0, Qt.Unchecked) rCheckBox = RootCheckBox() rCheckBox.setEnabled(False) self.tree.setItemWidget(mimetypeItem, 1, rCheckBox) self.typeItems.append(mimetypeItem) for value in mimecontent: filetypeItem = QTreeWidgetItem(mimetypeItem, [value]) filetypeItem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) filetypeItem.setCheckState(0, Qt.Unchecked) checkBox = QCheckBox() checkBox.setEnabled(False) rCheckBox.addChild(checkBox) rCheckBox.connect(checkBox, SIGNAL("stateChanged(int)"), rCheckBox.update) self.tree.setItemWidget(filetypeItem, 1, checkBox) self.tree.resizeColumnToContents(0)
def fillTreeWidget(self): """ Заполняем tree widget записями, на основе разбиения на категории""" self._loadingData = True self._ui.twEntries.clear() for key in self._categories: self._categories[key] = sorted(self._categories[key], key=attrgetter('title')) item = DateTreeWidgetItem(self._ui.twEntries) font = item.font(0) font.setPointSize(11) font.setBold(True) item.setFont(0, font) if settings.showEntryCountInCategory(): item.setText(0, "{} ({})".format(key, len(self._categories[key]))) else: item.setText(0, key) item.setData(0, Qt.UserRole, self._keyForCategory[key]) for e in self._categories[key]: entryItem = QTreeWidgetItem(item) font = entryItem.font(0) font.setPointSize(12) entryItem.setCheckState(0, Qt.Checked if e.interesting else Qt.Unchecked) entryItem.setText(0, e.title) entryItem.setFont(0, font) entryItem.setData(0, Qt.UserRole, e.id) self._setToolTipForItem(e, entryItem) self._ui.twEntries.sortItems(0, Qt.AscendingOrder) self._ui.twEntries.expandAll() self._loadingData = False
def setAnnotations(self, gds): self._annotationsUpdating = True self.annotationsTree.clear() annotations = defaultdict(set) subsetscount = {} for desc in gds["subsets"]: annotations[desc["type"]].add(desc["description"]) subsetscount[desc["description"]] = str(len(desc["sample_id"])) for type, subsets in annotations.items(): key = (gds["dataset_id"], type) subsetItem = QTreeWidgetItem(self.annotationsTree, [type]) subsetItem.setFlags(subsetItem.flags() | Qt.ItemIsUserCheckable | Qt.ItemIsTristate) subsetItem.setCheckState( 0, self.gdsSelectionStates.get(key, Qt.Checked) ) subsetItem.key = key for subset in subsets: key = (gds["dataset_id"], type, subset) item = QTreeWidgetItem( subsetItem, [subset, subsetscount.get(subset, "")] ) item.setFlags(item.flags() | Qt.ItemIsUserCheckable) item.setCheckState( 0, self.gdsSelectionStates.get(key, Qt.Checked) ) item.key = key self._annotationsUpdating = False self.annotationsTree.expandAll() for i in range(self.annotationsTree.columnCount()): self.annotationsTree.resizeColumnToContents(i)
def populateTable(self): """Populates table with data from ItemTracker.""" self.selectedWidget.clear() self.selectedWidget.setSortingEnabled(False) numRows = len(self.tableResults) self.mkInfo("Selected items in ItemTracker: {0}".format(numRows)) self.selectedWidget.setAlternatingRowColors(True) header = ["ItemID", "StrainID", "ItemType", "ItemName", "BacteriaItemID"] self.selectedWidget.setColumnCount(len(header)) self.selectedWidget.setHeaderLabels(header) # use result and populate table for result in self.tableResults: properties = [unicode(i) for i in result] item = QTreeWidgetItem(self.selectedWidget, properties) item.setCheckState(0, Qt.Unchecked) self.selectedWidget.setSortingEnabled(True) for i in range(len(header)): self.selectedWidget.resizeColumnToContents(i) self.stackedWidget.setCurrentIndex(1) # switch view to table self.statusbar.clearMessage() self.populatedTable = True self.updateUi()
def populate(self): """Puts the deleted/changed snippets in the tree.""" self.deletedItem.takeChildren() self.deletedItem.setExpanded(True) self.deletedItem.setCheckState(0, Qt.Unchecked) self.changedItem.takeChildren() self.changedItem.setExpanded(True) self.changedItem.setCheckState(0, Qt.Unchecked) builtins = list(builtin.builtin_snippets) builtins.sort(key = snippets.title) names = frozenset(snippets.names()) for name in builtins: if name in names: if snippets.isoriginal(name): continue parent = self.changedItem else: parent = self.deletedItem item = QTreeWidgetItem(parent) item.name = name item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, Qt.Unchecked) item.setText(0, snippets.title(name)) self.deletedItem.setDisabled(self.deletedItem.childCount() == 0) self.changedItem.setDisabled(self.changedItem.childCount() == 0) self.checkOkButton()
def on_import_case(self): query_result = QMessageBox.warning(self, u'警告', u'执行导入操作时,测试标识相同的用例将被覆盖,确认执行导入操作!?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if query_result == QMessageBox.No: return case_files = QFileDialog.getOpenFileNames(self, u'选择用例文件', '.', '') total_import_count = len(case_files) if not total_import_count: return self.process_progressbar.setMaximum(total_import_count) self.process_progressbar.setMinimum(0) fail = 0 import_count = 0 try: for file in case_files: test_case = TestCase() test_case.load_from_file(str(file)) ret = self.testcase_tree.findItems(test_case.case_mark, Qt.MatchCaseSensitive | Qt.MatchExactly, 0) if ret: ret[0].setText(1, unicode(test_case.case_name)) else: item = QTreeWidgetItem() item.setText(0, unicode(test_case.case_mark)) item.setText(1, unicode(test_case.case_name)) item.setText(2, test_case.case_id) item.setCheckState(0, Qt.Checked) self.testcase_tree.addTopLevelItem(item) self.test_cases[test_case.case_mark] = test_case import_count += 1 self.process_progressbar.setValue(import_count) except Exception as e: fail += 1 QMessageBox.information(self, u'提示', u'导入用例文件异常{0}'.format(str(e)), QMessageBox.Yes, QMessageBox.Yes) QMessageBox.information(self, u'提示', u'导入成功{0}个, 失败{1}个'.format(import_count, fail), QMessageBox.Yes, QMessageBox.Yes)
def on_add_testcase(self): """ 添加用例 :return: """ test_case_identification = str(self.test_caseidentify_edit.text()) test_case_name = str(self.test_item_edit.text()) if test_case_identification and test_case_name: if test_case_identification not in self.test_cases: # 在树形列表中增加一项 test_case = self.__generate_test_case(test_case_identification) item = QTreeWidgetItem() item.setText(0, test_case.case_mark) item.setText(1, test_case.case_name) item.setText(2, test_case.case_id) item.setCheckState(0, Qt.Checked) self.testcase_tree.addTopLevelItem(item) else: test_case = self.__generate_test_case(test_case_identification) # 更新树形列表中的用例名称 for i in range(0, self.testcase_tree.topLevelItemCount()): if self.testcase_tree.topLevelItem(i).text(0) == test_case.case_mark: self.testcase_tree.topLevelItem(i).setText(1, test_case.case_name) QMessageBox.information(self, u'提示', u'用例[{0}({1})]已更新'.format(test_case_name, test_case.case_mark), QMessageBox.Yes, QMessageBox.Yes) else: QMessageBox.information(self, u'提示', u'用例标识和用例名称必填', QMessageBox.Yes, QMessageBox.Yes) return
def setAnnotations(self, gds): self._annotationsUpdating = True self.annotationsTree.clear() annotations = defaultdict(set) subsetscount = {} for desc in gds["subsets"]: annotations[desc["type"]].add(desc["description"]) subsetscount[desc["description"]] = str(len(desc["sample_id"])) for type, subsets in annotations.items(): key = (gds["dataset_id"], type) subsetItem = QTreeWidgetItem(self.annotationsTree, [type]) subsetItem.setFlags(subsetItem.flags() | Qt.ItemIsUserCheckable | Qt.ItemIsTristate) subsetItem.setCheckState( 0, self.gdsSelectionStates.get(key, Qt.Checked)) subsetItem.key = key for subset in subsets: key = (gds["dataset_id"], type, subset) item = QTreeWidgetItem( subsetItem, [subset, subsetscount.get(subset, "")]) item.setFlags(item.flags() | Qt.ItemIsUserCheckable) item.setCheckState( 0, self.gdsSelectionStates.get(key, Qt.Checked)) item.key = key self._annotationsUpdating = False self.annotationsTree.expandAll() for i in range(self.annotationsTree.columnCount()): self.annotationsTree.resizeColumnToContents(i)
def __init__(self, featureDict, selectedFeatures=None, parent=None): QDialog.__init__(self, parent) self.featureDict = featureDict if selectedFeatures is None or len(selectedFeatures) == 0: selectedFeatures = defaultdict(list) self.selectedFeatures = selectedFeatures self.setWindowTitle("Object Features") ui_class, widget_class = uic.loadUiType(os.path.split(__file__)[0] + "/featureSelection.ui") self.ui = ui_class() self.ui.setupUi(self) self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) self.ui.allButton.pressed.connect(self.handleAll) self.ui.noneButton.pressed.connect(self.handleNone) self.ui.treeWidget.setColumnCount(1) for pluginName, features in featureDict.iteritems(): parent = QTreeWidgetItem(self.ui.treeWidget) parent.setText(0, pluginName) parent.setExpanded(True) for name in sorted(features): item = QTreeWidgetItem(parent) item.setText(0, name) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) if pluginName in self.selectedFeatures: if name in self.selectedFeatures[pluginName]: item.setCheckState(0, Qt.Checked) else: item.setCheckState(0, Qt.Unchecked)
def loadPagesList(self, checkable=False): self.clear() for section in self.user_settings['pagesindex'].sections: root = QTreeWidgetItem([section.title]) root.setData(0, Qt.UserRole, QVariant(QString(section.name))) root.setData(0, Qt.DecorationRole, QVariant(QIcon(section.icon))) self.addTopLevelItem(root) for page_id, page in section.pages: if not page: page = self.getPage(page_id) if page.title: page_title = page.title else: page_title = tr('(No name)') item = QTreeWidgetItem([page_title]) item.setData(0, Qt.UserRole ,QVariant(QString(page_id))) if checkable: item.setFlags(item.flags() | Qt.ItemIsUserCheckable) item.setCheckState(0, Qt.Unchecked) root.addChild(item) if page == self.window.current_page: f = QFont() f.setWeight(QFont.Bold) item.setData(0, Qt.FontRole, QVariant(f)) self.setCurrentItem(item) self.expandAll()
def addNode(self, parent, text="", data=""): node = QTreeWidgetItem(parent) node.setText(0, text) node.setCheckState(0, Qt.Unchecked) node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) node.setData(0, Qt.UserRole, data) return node
def _addRequirements(self): for requirement, component, reason, optional in self._requirements: item = QTreeWidgetItem() item.setCheckState(0, Qt.Checked) if not optional: item.setFlags(Qt.ItemFlags(int(item.flags()) & ~Qt.ItemIsEnabled)) item.setText(0, requirement) item.setText(1, reason) item.setText(2, component) item.setData(0, self._REQUIREMENT_ROLE, QVariant(requirement)) self._reqTable.addTopLevelItem(item)
def build_tree_widget_item(parent, name, is_checkable=True): child = QTreeWidgetItem(parent) if is_checkable: child.setFlags(child.flags() | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsTristate) child.setCheckState(0, QtCore.Qt.Unchecked) else: child.setFlags(QtCore.Qt.ItemIsEnabled) child.setText(0, name) return child
class TaskItem(Base): __tablename__ = 'tasks' id = Column(Integer, primary_key=True) task = Column(String) priority = Column(Integer) description = Column(String) complete = Column(Integer) date = Column(Date) def __init__(self, task, priority, description, complete, date): self.task = task self.priority = priority self.description = description self.complete = complete self.date = date #self.id = id def makeWidget(self): self.treeWidget = QTreeWidgetItem() timeleft = int((self.date - datetime.date.today()).days) weekday = self.date.strftime("%A") if self.complete: sofont = QtGui.QFont() font = QtGui.QFont() sofont.setStrikeOut(1) self.treeWidget.setFont(0, sofont) self.treeWidget.setData(0, 0, self.task) self.treeWidget.setData(1, 0, self.priority) self.treeWidget.setData(3, 0, self.id) if timeleft <2: pass elif timeleft >1 and timeleft <=7: self.treeWidget.setData(2, 0, str(weekday)) else: self.treeWidget.setData(2, 0, str(self.date)) self.treeWidget.setCheckState(0, self.complete) return self.treeWidget def timeLeft(self): return (self.date - datetime.date.today()).days def getCompleted(self): return self.complete def getWidget(self): return self.treeWidget def __repr__(self): return self.task
def populate(self, items, selected): for item in items: treeItem = QTreeWidgetItem(self.treeWidget) treeItem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) if item in selected: treeItem.setCheckState(0, Qt.Checked) else: treeItem.setCheckState(0, Qt.Unchecked) treeItem.setText(0, item) self.items.append(treeItem) self.treeWidget.resizeColumnToContents(0)
def add_children(child_nodes, parent): children = [] for node in child_nodes: twitem = QTreeWidgetItem((node['label'], )) twitem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) twitem.setCheckState(0, Qt.Unchecked) twitem.setData(0, Qt.UserRole, node) if 'children' in node: add_children(node['children'], twitem) children.append(twitem) parent.addChildren(children)
def add_children(child_nodes, parent): children = [] for node in child_nodes: twitem = QTreeWidgetItem((node['label'], )) twitem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) twitem.setCheckState(0, Qt.Unchecked) twitem.setData(0, Qt.UserRole, node) if 'children' in node: add_children(node['children'], twitem) children.append(twitem) parent.addChildren(children)
def fill_tree(self, path_to_refinement_folder): ''' Reads all runs in path_to_refinement_folder and add them as child to the corresponding root element in the tree :param path_to_refinement_folder: Path to refinement folder :return: none ''' root = self.root_items_path_dictionary[str(path_to_refinement_folder)] root.setCheckState(0,QtCore.Qt.Unchecked) main_dicts = DriverFileReader.read_refinement_folders(path_to_refinement_folder) for dictionary in main_dicts: next_item = QTreeWidgetItem([dictionary]) next_item.setCheckState(0, QtCore.Qt.Unchecked) root.addChild(next_item)
def add_layer(self, layer): """ Add a new object to the layer tree. If it is not already, the layer will be added to the layer tree's affiliated data collection object :param layer: new data or subset object. """ tree = self.layerTree self._ensure_in_collection(layer) self._ensure_parent_present(layer) if layer in self: return if isinstance(layer, core.subset.Subset): data = layer.data assert data in self._data_collection parent = self[data] label = layer.style.label if label is None: ct = parent.childCount() datanum = tree.indexOfTopLevelItem(parent) label = "Subset %i.%i" % (datanum, ct) layer.style.label = label elif isinstance(layer, core.data.Data): assert layer in self._data_collection parent = tree label = layer.style.label if label is None: num = tree.topLevelItemCount() label = "Data %i" % num layer.style.label = label else: raise TypeError("Input not a data or subset: %s" % type(layer)) branch = QTreeWidgetItem(parent, [label, '', '', '']) if self.is_checkable(): branch.setCheckState(0, Qt.Checked) assert layer not in self self[layer] = branch self[branch] = layer tree.expandItem(branch) if isinstance(layer, core.data.Data): for subset in layer.subsets: self.add_layer(subset) self.sync_layer(layer)
def loadBackendsList(self): self.ui.backendsList.clear() for backend_name, module_name, params in self.weboob.backends_config.iter_backends(): info = self.weboob.repositories.get_module_info(module_name) if not info or (self.caps and not info.has_caps(self.caps)): continue item = QTreeWidgetItem(None, [backend_name, module_name]) item.setCheckState(0, Qt.Checked if params.get('_enabled', '1').lower() in ('1', 'y', 'true', 'on', 'yes') else Qt.Unchecked) self.set_icon(item, info) self.ui.backendsList.addTopLevelItem(item)
def loadBackendsList(self): self.ui.backendsList.clear() for instance_name, name, params in self.weboob.backends_config.iter_backends(): info = self.weboob.repositories.get_module_info(name) if not info or (self.caps and not info.has_caps(self.caps)): continue item = QTreeWidgetItem(None, [instance_name, name]) item.setCheckState(0, Qt.Checked if params.get('_enabled', '1').lower() in ('1', 'y', 'true') else Qt.Unchecked) self.set_icon(item, info) self.ui.backendsList.addTopLevelItem(item)
def __init__(self, parent=None): super(OfflineDialog, self).__init__(parent) self.pagetitle = 'Offline Back Up' stylesheet = Valid().background() + Valid().font() self.hold_data = {} self.tree = QTreeWidget() self.tree.setHeaderLabel("Choose Sessions to Back-up") self.tree.headerItem().setText(0, 'Name') #self.tree.setStyleSheet(treeStyleSheet) arr = Db().selectn('session','', 5) if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(self.tree) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(val['name']).upper()) self.hold_data[val['id']] = child child.setCheckState(0, Qt.Checked) self.pb = QPushButton() self.pb.setObjectName("Add") self.pb.setText("Save") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Close") hbo = QHBoxLayout() hbo.addWidget(self.pb1) hbo.addStretch() hbo.addWidget(self.pb) groupBox2 = QGroupBox('') groupBox2.setLayout(hbo) grid = QGridLayout() grid.addWidget(self.tree, 0, 0) grid.addWidget(groupBox2, 1, 0) self.setLayout(grid) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_close(self)) self.setStyleSheet(stylesheet) #self.setWindowIcon(QIcon(self.titleIcon)) self.setWindowTitle(self.pagetitle)
def __init__(self, plugin, pathsToCommit, pathsToIgnore, parent=None): QDialog.__init__(self, parent) self.__plugin = plugin self.__createLayout(pathsToCommit, pathsToIgnore) self.setWindowTitle("SVN commit") # Fill the lists for item in pathsToCommit: newItem = QTreeWidgetItem(["", item[0], STATUS[item[1]]]) newItem.setCheckState(CHECK_COL, Qt.Checked) newItem.setToolTip(PATH_COL, item[0]) newItem.setToolTip(STATUS_COL, STATUS[item[1]]) self.__pathToCommitView.addTopLevelItem(newItem) diffButton = self.__createDiffButton() diffButton.path = item[0] diffButton.status = item[1] fileType = detectFileType(item[0]) if os.path.isdir( item[ 0 ] ) or item[ 1 ] in [ IND_REPLACED ] \ or not isFileTypeSearchable( fileType ): diffButton.setEnabled(False) diffButton.setToolTip("Diff is not available") else: diffButton.setEnabled(True) diffButton.setToolTip("Click to see diff") self.__pathToCommitView.setItemWidget(newItem, DIFF_COL, diffButton) self.__resizeCommitPaths() self.__sortCommitPaths() for item in pathsToIgnore: newItem = QTreeWidgetItem([item[0], STATUS[item[1]]]) newItem.setToolTip(0, item[0]) newItem.setToolTip(1, STATUS[item[1]]) self.__pathToIgnoreView.addTopLevelItem(newItem) self.__pathToIgnoreView.header().resizeSections( QHeaderView.ResizeToContents) self.__updateSelectAllStatus() self.__updateOKStatus() self.__message.setFocus() return
def __init__( self, plugin, pathsToCommit, pathsToIgnore, parent = None ): QDialog.__init__( self, parent ) self.__plugin = plugin self.__createLayout( pathsToCommit, pathsToIgnore ) self.setWindowTitle( "SVN commit" ) # Fill the lists for item in pathsToCommit: newItem = QTreeWidgetItem( [ "", item[ 0 ], STATUS[ item[ 1 ] ] ] ) newItem.setCheckState( CHECK_COL, Qt.Checked ) newItem.setToolTip( PATH_COL, item[ 0 ] ) newItem.setToolTip( STATUS_COL, STATUS[ item[ 1 ] ] ) self.__pathToCommitView.addTopLevelItem( newItem ) diffButton = self.__createDiffButton() diffButton.path = item[ 0 ] diffButton.status = item[ 1 ] fileType = detectFileType( item[ 0 ] ) if os.path.isdir( item[ 0 ] ) or item[ 1 ] in [ IND_REPLACED ] \ or not isFileTypeSearchable( fileType ): diffButton.setEnabled( False ) diffButton.setToolTip( "Diff is not available" ) else: diffButton.setEnabled( True ) diffButton.setToolTip( "Click to see diff" ) self.__pathToCommitView.setItemWidget( newItem, DIFF_COL, diffButton ) self.__resizeCommitPaths() self.__sortCommitPaths() for item in pathsToIgnore: newItem = QTreeWidgetItem( [ item[ 0 ], STATUS[ item[ 1 ] ] ] ) newItem.setToolTip( 0, item[ 0 ] ) newItem.setToolTip( 1, STATUS[ item[ 1 ] ] ) self.__pathToIgnoreView.addTopLevelItem( newItem ) self.__pathToIgnoreView.header().resizeSections( QHeaderView.ResizeToContents ) self.__updateSelectAllStatus() self.__updateOKStatus() self.__message.setFocus() return
def loadConfiguredBackendsList(self): self.ui.configuredBackendsList.clear() for instance_name, name, params in self.weboob.backends_config.iter_backends(): try: backend = self.weboob.modules_loader.get_or_load_module(name) except ModuleLoadError: backend = None if not backend or self.caps and not backend.has_caps(*self.caps): continue item = QTreeWidgetItem(None, [instance_name, name]) item.setCheckState(0, Qt.Checked if params.get('_enabled', '1').lower() in ('1', 'y', 'true') else Qt.Unchecked) if backend.icon_path: img = QImage(backend.icon_path) item.setIcon(0, QIcon(QPixmap.fromImage(img))) self.ui.configuredBackendsList.addTopLevelItem(item)
def __setupModelData(self): dsList = DataSourcesList().data_sources.values() groupInfoList = GroupsList().groups groupsItems = [] groups = [] for ds in dsList: if ds.group in groups: group_item = groupsItems[groups.index(ds.group)] else: group_item = QTreeWidgetItem() group_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.group) group_item.setData(self.COLUMN_VISIBILITY, Qt.DisplayRole, "") group_item.setData(self.COLUMN_SOURCE, Qt.DisplayRole, ds.category) group_item.setCheckState(self.COLUMN_VISIBILITY, Qt.Unchecked) groupInfo = groupInfoList.get(ds.group) if groupInfo is not None: group_item.setIcon(self.COLUMN_GROUP_DS, QIcon(groupInfo.icon)) else: group_item.setData( self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.group + " (%s!)" % self.tr("group not found")) group_item.setData(self.COLUMN_GROUP_DS, Qt.UserRole, groupInfo) groups.append(ds.group) groupsItems.append(group_item) self.rootItem.addChild(group_item) ds_item = QTreeWidgetItem() ds_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.alias) ds_item.setIcon(self.COLUMN_GROUP_DS, QIcon(ds.icon_path)) ds_item.setData(self.COLUMN_GROUP_DS, Qt.UserRole, ds) ds_item.setData(self.COLUMN_VISIBILITY, Qt.DisplayRole, "") ds_item.setData(self.COLUMN_SOURCE, Qt.DisplayRole, ds.category) ds_check_state = Qt.Checked if ds.id in PluginSettings.get_hide_ds_id_list(): ds_check_state = Qt.Unchecked ds_item.setCheckState(self.COLUMN_VISIBILITY, ds_check_state) if group_item.childCount() != 0 and group_item.checkState( 1) != ds_check_state: group_item.setCheckState(self.COLUMN_VISIBILITY, Qt.PartiallyChecked) else: group_item.setCheckState(self.COLUMN_VISIBILITY, ds_check_state) group_item.addChild(ds_item)
def refresh(self): tree = self.uiFilterTREE tree.blockSignals(True) tree.setUpdatesEnabled(False) tree.clear() # create the code color codeClr = tree.palette().color(tree.palette().Base).darker(140) # sort the data hash filters = self._filterOptions.items() filters.sort(lambda x, y: cmp(x[1].get('order', 100000), y[1].get( 'order', 100000))) for key, option in filters: # create the data for this item data = {'code': key} data.update(option) # create the data item item = QTreeWidgetItem( [data.get('name', ''), data.get('code', '')]) item.setIcon(0, resources.icon(data.get('icon', '') % data)) item.setSizeHint(0, QSize(0, 18)) # check the item if its enabled if (self.isCheckable()): enabled = data.get('enabled', False) item.setCheckState(0, Qt.Checked if enabled else Qt.Unchecked) # set some ui data for the code name to hide it a bit item.setTextAlignment(1, Qt.AlignRight | Qt.AlignCenter) item.setForeground(1, codeClr) # add to the tree tree.addTopLevelItem(item) tree.setUpdatesEnabled(True) tree.blockSignals(False)
def __init__( self, pathsToAdd, parent = None ): QDialog.__init__( self, parent ) self.addPaths = [] self.__createLayout( pathsToAdd ) self.setWindowTitle( "SVN add" ) # Fill the lists for item in pathsToAdd: newItem = QTreeWidgetItem( [ "", item ] ) newItem.setCheckState( CHECK_COL, Qt.Checked ) newItem.setToolTip( PATH_COL, item[ 0 ] ) self.__pathToAddView.addTopLevelItem( newItem ) self.__resizeAddPaths() self.__sortAddPaths() self.__updateOKStatus() return
def __init__(self, pathsToAdd, parent=None): QDialog.__init__(self, parent) self.addPaths = [] self.__createLayout(pathsToAdd) self.setWindowTitle("SVN add") # Fill the lists for item in pathsToAdd: newItem = QTreeWidgetItem(["", item]) newItem.setCheckState(CHECK_COL, Qt.Checked) newItem.setToolTip(PATH_COL, item[0]) self.__pathToAddView.addTopLevelItem(newItem) self.__resizeAddPaths() self.__sortAddPaths() self.__updateOKStatus() return
def populate(self): self.tree.connect(self.tree, SIGNAL("itemClicked(QTreeWidgetItem *, int)"), self.clicked) self.tree.connect(self.tree, SIGNAL("itemPressed(QTreeWidgetItem *, int)"), self.clicked) for mimetype, mimecontent in self.mm.mimetypes.iteritems(): mimetypeItem = QTreeWidgetItem(self.tree, [mimetype]) mimetypeItem.setFlags(Qt.ItemIsUserCheckable|Qt.ItemIsEnabled|Qt.ItemIsSelectable) mimetypeItem.setCheckState(0, Qt.Unchecked) rCheckBox = RootCheckBox() rCheckBox.setEnabled(False) self.tree.setItemWidget(mimetypeItem, 1, rCheckBox) self.typeItems.append(mimetypeItem) for value in mimecontent: filetypeItem = QTreeWidgetItem(mimetypeItem, [value]) filetypeItem.setFlags(Qt.ItemIsUserCheckable|Qt.ItemIsEnabled|Qt.ItemIsSelectable) filetypeItem.setCheckState(0, Qt.Unchecked) checkBox = QCheckBox() checkBox.setEnabled(False) rCheckBox.addChild(checkBox) rCheckBox.connect(checkBox, SIGNAL("stateChanged(int)"), rCheckBox.update) self.tree.setItemWidget(filetypeItem, 1, checkBox) self.tree.resizeColumnToContents(0)
def addNode(self, parent, icon_, text="", data="", isParent=False, isRoot=False): node = QTreeWidgetItem(parent) node.setText(0, text) node.setCheckState(0, Qt.Unchecked) node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) if isRoot: node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled) if isParent: node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) node.setData(0, Qt.UserRole, data) node.setIcon(0, icon_) return node
def __add_themen(self): self.ui.TREE_THEMEN.headerItem().setText(0, '') #TODO: resize column to contents #all of these don't work?? self.ui.TREE_THEMEN.header().resizeSection(0, 250) self.ui.TREE_THEMEN.header().setResizeMode(QHeaderView.ResizeToContents); self.ui.TREE_THEMEN.header().setStretchLastSection(True); themen = self.json_settings.themen() for thema_name, thema in themen.iteritems(): tree_thema = QTreeWidgetItem(self.ui.TREE_THEMEN) tree_thema.setText(0, thema_name) tree_thema.setData(0, Qt.UserRole, thema) tree_thema.setFlags(tree_thema.flags() | Qt.ItemIsUserCheckable) if thema_name == 'DKM': tree_thema.setCheckState(0, Qt.Checked) else: tree_thema.setCheckState(0, Qt.Unchecked) if not thema.subthemen is None: for subthema in thema.subthemen: if VRP_DEBUG is True: QgsMessageLog.logMessage(u'Subthema: {0}'.format(subthema.name), DLG_CAPTION) tree_subthema = QTreeWidgetItem() tree_subthema.setText(0, subthema.name) tree_subthema.setData(0, Qt.UserRole, subthema) tree_subthema.setFlags(tree_subthema.flags() | Qt.ItemIsUserCheckable) tree_subthema.setCheckState(0, Qt.Unchecked) tree_thema.addChild(tree_subthema)
def __add_themen(self): self.ui.TREE_THEMEN.headerItem().setText(0, '') #TODO: resize column to contents #all of these don't work?? self.ui.TREE_THEMEN.header().resizeSection(0, 250) self.ui.TREE_THEMEN.header().setResizeMode( QHeaderView.ResizeToContents) self.ui.TREE_THEMEN.header().setStretchLastSection(True) themen = self.json_settings.themen() for thema_name, thema in themen.iteritems(): tree_thema = QTreeWidgetItem(self.ui.TREE_THEMEN) tree_thema.setText(0, thema_name) tree_thema.setData(0, Qt.UserRole, thema) tree_thema.setFlags(tree_thema.flags() | Qt.ItemIsUserCheckable) if thema_name == 'DKM': tree_thema.setCheckState(0, Qt.Checked) else: tree_thema.setCheckState(0, Qt.Unchecked) if not thema.subthemen is None: for subthema in thema.subthemen: if VRP_DEBUG is True: QgsMessageLog.logMessage( u'Subthema: {0}'.format(subthema.name), DLG_CAPTION) tree_subthema = QTreeWidgetItem() tree_subthema.setText(0, subthema.name) tree_subthema.setData(0, Qt.UserRole, subthema) tree_subthema.setFlags(tree_subthema.flags() | Qt.ItemIsUserCheckable) tree_subthema.setCheckState(0, Qt.Unchecked) tree_thema.addChild(tree_subthema)
def refresh( self ): tree = self.uiFilterTREE tree.blockSignals(True) tree.setUpdatesEnabled(False) tree.clear() # create the code color codeClr = tree.palette().color(tree.palette().Base).darker(140) # sort the data hash filters = self._filterOptions.items() filters.sort( lambda x,y: cmp(x[1].get('order',100000),y[1].get('order',100000)) ) for key, option in filters: # create the data for this item data = { 'code': key } data.update(option) # create the data item item = QTreeWidgetItem( [data.get('name',''),data.get('code','')] ) item.setIcon( 0, resources.icon( data.get('icon','') % data ) ) item.setSizeHint( 0, QSize( 0, 18 ) ) # check the item if its enabled if ( self.isCheckable() ): enabled = data.get('enabled',False) item.setCheckState( 0, Qt.Checked if enabled else Qt.Unchecked ) # set some ui data for the code name to hide it a bit item.setTextAlignment( 1, Qt.AlignRight | Qt.AlignCenter ) item.setForeground( 1, codeClr ) # add to the tree tree.addTopLevelItem(item) tree.setUpdatesEnabled(True) tree.blockSignals(False)
def loadSettings(self): """ Load the settings """ conf = config("rumor") if 'oss:1' in self.ilist: idefault = odefault = 'oss:1' else: idefault = 'kbd' odefault = self.olist and self.olist[-1] or "" i = conf.readEntry("midi in", idefault) o = conf.readEntry("midi out", odefault) if i in self.ilist: self.ibut.setCurrentIndex(self.ilist.index(i)) if o in self.olist: self.obut.setCurrentIndex(self.olist.index(o)) setComboBox(self.lang, unautofy(conf.readEntry("language", "auto"))) self.absPitches.setChecked(conf.readEntry("absolute pitches", False)) self.explDur.setChecked(conf.readEntry("explicit durations", False)) self.noBar.setChecked(conf.readEntry("no barlines", False)) self.noDots.setChecked(conf.readEntry("no dots", False)) self.legato.setChecked(conf.readEntry("legato", False)) self.stripRests.setChecked(conf.readEntry("strip rests", False)) # Guile scripts self.scripts.clear() scripts = conf.readEntry("scripts", []) for path in rumorScripts(): name = os.path.basename(path) try: desc = open(path).readline().strip() item = QTreeWidgetItem(self.scripts) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, (name in scripts) and Qt.Checked or Qt.Unchecked) item.setText(0, name) if desc.startswith(';'): item.setText(1, desc.strip(";")) except IOError: pass for col in 0, 1: self.scripts.resizeColumnToContents(col)
def refresh(self): self.uiStatusTREE.blockSignals(True) self.uiStatusTREE.setUpdatesEnabled(False) self.uiStatusTREE.clear() # collect the data from the prefs ordered = self._statusPrefs.values('order').items() # sort the items by their order ordered.sort(lambda x, y: cmp(x[1], y[1])) # add the statuses to the tree from PyQt4.QtCore import Qt from PyQt4.QtGui import QTreeWidgetItem, QPalette, QIcon for status, order in ordered: # grab info from the hash icon, display_name = self._statusHash.get(status, ('', 'Missing')) item = QTreeWidgetItem([display_name, status]) item.setIcon(0, QIcon(icon)) # check the item if it is enabled enabled = self._statusPrefs.value(status, 'enabled') item.setCheckState(0, Qt.Checked if enabled else Qt.Unchecked) # set some ui options for the status name to hide it a bit item.setTextAlignment(1, Qt.AlignRight | Qt.AlignVCenter) item.setForeground( 1, self.uiStatusTREE.palette().color(QPalette.Base).darker(140)) # add to the tree self.uiStatusTREE.addTopLevelItem(item) self.uiStatusTREE.blockSignals(False) self.uiStatusTREE.setUpdatesEnabled(True)
def refresh( self ): self.uiStatusTREE.blockSignals(True) self.uiStatusTREE.setUpdatesEnabled(False) self.uiStatusTREE.clear() # collect the data from the prefs ordered = self._statusPrefs.values('order').items() # sort the items by their order ordered.sort( lambda x,y: cmp( x[1], y[1] ) ) # add the statuses to the tree from PyQt4.QtCore import Qt from PyQt4.QtGui import QTreeWidgetItem, QPalette, QIcon for status, order in ordered: # grab info from the hash icon, display_name = self._statusHash.get(status,('','Missing')) item = QTreeWidgetItem([display_name,status]) item.setIcon( 0, QIcon(icon) ) # check the item if it is enabled enabled = self._statusPrefs.value(status,'enabled') item.setCheckState( 0, Qt.Checked if enabled else Qt.Unchecked ) # set some ui options for the status name to hide it a bit item.setTextAlignment( 1, Qt.AlignRight | Qt.AlignVCenter ) item.setForeground( 1, self.uiStatusTREE.palette().color(QPalette.Base).darker(140) ) # add to the tree self.uiStatusTREE.addTopLevelItem(item) self.uiStatusTREE.blockSignals(False) self.uiStatusTREE.setUpdatesEnabled(True)
def _load_tree(self): data = advtree.load() def add_children(child_nodes, parent): children = [] for node in child_nodes: twitem = QTreeWidgetItem((node['label'], )) twitem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) twitem.setCheckState(0, Qt.Unchecked) twitem.setData(0, Qt.UserRole, node) if 'children' in node: add_children(node['children'], twitem) children.append(twitem) parent.addChildren(children) for topnode in data: twitem = QTreeWidgetItem((topnode['label'], )) twitem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) twitem.setCheckState(0, Qt.Unchecked) twitem.setData(0, Qt.UserRole, topnode) if 'children' in topnode: add_children(topnode['children'], twitem) self._ui.treeWidget.addTopLevelItem(twitem)
def _parseNode(self, node, parentItem=None): # ignore everything that is not a node item = None if node.nodeName == "node": if parentItem is not None: item = QTreeWidgetItem(parentItem) else: item = QTreeWidgetItem(self.ui.treeWidget) if node.hasAttribute("TEXT"): item.setText(0, node.attributes["TEXT"].value) else: # html nodes bodyNodes = node.getElementsByTagName("html") if len(bodyNodes) > 0: text = stripTags(bodyNodes[0].toxml()).strip() item.setText(0, text) if node.hasAttribute("m2t_checked"): checked = int(node.attributes["m2t_checked"].value) item.setCheckState(0, checked) elif parentItem is not None: item.setCheckState(0, 0) # unchecked # expand unchecked nodes only if item.checkState(0) == Qt.Checked: item.setExpanded(False) else: item.setExpanded(True) # save the ID item.setData(0, Qt.UserRole, str(node.attributes["ID"].value)) if node.hasChildNodes(): for n in node.childNodes: self._parseNode(n, item)
def _load_tree(self): data = advtree.load() def add_children(child_nodes, parent): children = [] for node in child_nodes: twitem = QTreeWidgetItem((node['label'], )) twitem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) twitem.setCheckState(0, Qt.Unchecked) twitem.setData(0, Qt.UserRole, node) if 'children' in node: add_children(node['children'], twitem) children.append(twitem) parent.addChildren(children) for topnode in data: twitem = QTreeWidgetItem((topnode['label'], )) twitem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) twitem.setCheckState(0, Qt.Unchecked) twitem.setData(0, Qt.UserRole, topnode) if 'children' in topnode: add_children(topnode['children'], twitem) self._ui.treeWidget.addTopLevelItem(twitem)
def populate(self): self.ui.treeWidget.setColumnCount(1) for pluginName, features in self.featureDict.iteritems(): parent = QTreeWidgetItem(self.ui.treeWidget) parent.setText(0, pluginName) parent.setExpanded(True) for name in sorted(features.keys()): parameters = features[name] item = QTreeWidgetItem(parent) item.setText(0, name) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) # hack to ensure checkboxes visible item.setCheckState(0, Qt.Checked) item.setCheckState(0, Qt.Unchecked) if pluginName in self.selectedFeatures: if name in self.selectedFeatures[pluginName]: item.setCheckState(0, Qt.Checked)
def populate(self): self.ui.treeWidget.setColumnCount(1) for pluginName, features in self.featureDict.iteritems(): if pluginName == "TestFeatures" and not ilastik_config.getboolean( "ilastik", "debug"): continue parent = QTreeWidgetItem(self.ui.treeWidget) if pluginName == "Standard Object Features": parent.setText(0, pluginName) parent.setToolTip( 0, 'http://hci.iwr.uni-heidelberg.de/vigra/doc/vigra/group__FeatureAccumulators.html' ) else: parent.setText(0, pluginName) parent.setExpanded(True) advanced_names = [] simple_names = [] for name in sorted(features.keys()): parameters = features[name] if 'advanced' in parameters: advanced_names.append(name) else: simple_names.append(name) for name in simple_names + advanced_names: parameters = features[name] item = QTreeWidgetItem(parent) item.setText(0, name) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) if 'tooltip' in parameters: item.setToolTip(0, parameters['tooltip']) # hack to ensure checkboxes visible item.setCheckState(0, Qt.Checked) item.setCheckState(0, Qt.Unchecked) if pluginName in self.selectedFeatures: if name in self.selectedFeatures[pluginName]: item.setCheckState(0, Qt.Checked)
def populate(self): self.ui.treeWidget.setColumnCount(1) for pluginName, features in self.featureDict.iteritems(): if pluginName=="TestFeatures" and not ilastik_config.getboolean("ilastik", "debug"): continue parent = QTreeWidgetItem(self.ui.treeWidget) if pluginName == "Standard Object Features": parent.setText(0, pluginName) parent.setToolTip(0, 'http://hci.iwr.uni-heidelberg.de/vigra/doc/vigra/group__FeatureAccumulators.html') else: parent.setText(0, pluginName) parent.setExpanded(True) advanced_names = [] simple_names = [] for name in sorted(features.keys()): parameters = features[name] if 'advanced' in parameters: advanced_names.append(name) else: simple_names.append(name) for name in simple_names+advanced_names: parameters = features[name] item = QTreeWidgetItem(parent) item.setText(0, name) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) if 'tooltip' in parameters: item.setToolTip(0, parameters['tooltip']) # hack to ensure checkboxes visible item.setCheckState(0, Qt.Checked) item.setCheckState(0, Qt.Unchecked) if pluginName in self.selectedFeatures: if name in self.selectedFeatures[pluginName]: item.setCheckState(0, Qt.Checked)
def __loadModules(self): # init variables loadOrder = ["hidden", "setting", "application"] currentDir = os.path.abspath(os.curdir) modulesPath = currentDir + "/" + self.__v_modulePath content = os.listdir(modulesPath) content.sort() modules = [] moduleNames = [] # clear gui list self.__p_selectModule.treeWidgetModules.reset() itemList = {"hidden": [], "setting": [], "application": []} # search for modules in module order index = 0 for moduleClassType in loadOrder: # find modules for name in content: # only direcotries without .* and .. if (not os.path.isdir(modulesPath + name) or re.match("^\.", name)): continue # end if # don't load modules twice if (name in moduleNames): continue # end if m = re.match("^(\d+)(.*)$", name) suffix = "" if (m): suffix = m.group(1) name = m.group(2) # end if # change into module directory moduleDir = modulesPath + suffix + name os.chdir(moduleDir) # import module fullpath_to_py = moduleDir + "/" + name + ".py" if not os.path.isfile(fullpath_to_py): continue # end if modHandle = imp.load_source(name, fullpath_to_py) # switch back to main directory os.chdir(currentDir) # auf klasse pruefen if (moduleClassType + "ModuleClass" in dir(modHandle)): moduleNames.append(suffix+name) # search for dependencies dependencies = "" dependenciyList = list() if ("dependencies" in dir(modHandle)): dependenciyList = modHandle.dependencies for d in modHandle.dependencies: dependencies += d + ", " # end for dependencies = dependencies[0:len(dependencies) - 2] # end if item = QTreeWidgetItem([name, dependencies]) item.setFlags(item.flags() | Qt.ItemIsUserCheckable) path = modulesPath + suffix + name path = re.sub(r'[\\/]+', '/', path) module = {"name" : name, "modHandle" : modHandle, "handle" : False, "suffix" : suffix, "path" : path, "dependencies": dependenciyList} # don't load unused modules if (name not in self.__l_usedModules): item.setCheckState(0, Qt.Unchecked) module["modHandle"] = False delete(modHandle) else: item.setCheckState(0, Qt.Checked) # end fi modules.append(module) itemList[moduleClassType].append(item) continue else: delete(modHandle) # end if # end for # add items to tree widget item = self.__p_selectModule.treeWidgetModules.topLevelItem(index) item.addChildren(itemList[moduleClassType]) index += 1 # end for - search for modules in module order # init modules for module in modules: if (module["modHandle"] == False): continue # end if #module["handle"] = module["modHandle"].module(None, module["name"]) module["handle"] = module["modHandle"].module(self, module["name"]) #self.__p_logger.debug("load module " + module["name"]) # end for - init modules # set static functions abstractModuleClass.d_modules = dict() abstractModuleClass.p_progressBar = self.progressBarGlobal abstractModuleClass.p_progressBarThread = self.__p_progressBarThread # open modules and load GUI firstDockWidget = None for module in modules: moduleName = module['name'] moduleHand = module['handle'] try: # Wichtig: Damit auch bei nicht geladenen Modulen die dependencies ueberprueft werden koennen. abstractModuleClass.d_modules[moduleName] = module # if module not used if (module["modHandle"] == False): continue # end if moduleDir = modulesPath + module["suffix"] + moduleName # find *.py files in the specific modules directory os.chdir(moduleDir) content = os.listdir(moduleDir) includes = dict() for filename in content: if (os.path.isfile(moduleDir + "/" + filename)): if (re.match(".*\.py$", filename) and not (moduleName + ".py") == filename ): name = filename[0:-3] includes[name] = imp.load_source(name, moduleDir + "/" + filename) # end if # end if # end for os.chdir(currentDir) # set module settings moduleHand.setModulePath(self.__v_modulePath + module["suffix"] + moduleName, os.path.abspath(os.curdir)) moduleHand.setIncludes(includes) # check for module type moduleClassType = moduleHand.getClassType() # module type specific init if (moduleClassType != 'hidden'): # load [moduleName].ui self.__p_logger.setLevel(logging.WARN) uic.loadUi(moduleDir + "/" +moduleName + ".ui", moduleHand) self.__p_logger.setLevel(abstractModuleClass.loglevel) # load module settings moduleHand.initPreSettings() moduleHand.handleSettings() moduleHand.loadSettings() # end if # join in specific modules folder for initModule os.chdir(moduleDir) moduleHand.initModule() os.chdir(currentDir) # add module widget to GUI if (moduleClassType != 'hidden'): iconPath = False icon = None # get icon path iconPath = moduleHand.getIconPath() # try to load icon if (iconPath != False): icon = QIcon(iconPath) # end if displayName = moduleHand.getDisplayName() # init menu button button = moduleHand.getMenuButton() button.setText(displayName) # dock widget for current module # ... create dockWidget = mainWindowDockWidget(displayName, self) # ... set object name and title dockWidget.setObjectName(displayName) dockWidget.setWindowTitle(displayName) # ... add module as widget dockWidget.setWidget(moduleHand) # ... add dock widget to main window self.addDockWidget(Qt.LeftDockWidgetArea, dockWidget) # ... hide dock widget dockWidget.setVisible(False) # tabify all dock widgets if (firstDockWidget == None): firstDockWidget = dockWidget else: self.tabifyDockWidget(firstDockWidget, dockWidget) # end if # ... Set window icon. dockWidget.setWindowIcon(moduleHand.getMenuButton().icon()) # ... Connect signal for checking and unchecking menu button on visibility change. # If module is tabbed then set active module as current module. dockWidget.visibilityChanged[bool].connect(partial(self.__onModuleVisibilityChanged, dockWidget)) # add button for application module and action for setting module if (moduleClassType == 'application'): # get menu button button = moduleHand.getMenuButton() # set icon for menu button if (icon != None): button.setIcon(icon) # end if # add menu button to tool bar self.toolBar.addWidget(button) # connect signal from application menu button button.clicked[QObject].connect(self.__onModuleButtonClicked) else: # get action action = dockWidget.toggleViewAction() # set icon if (icon != None): action.setIcon(icon) # end if # add action to settings menu self.menuModuleSettings.addAction(action) # end if else: moduleHand.setParent(None) # end if except Exception as e: msg = "Error in module " + moduleName self.__p_logger.critical(msg) print(msg) raise e # end try # end for # init gui for module in modules: if (module["modHandle"] == False): continue # end if self.__v_moduleCounter += 1 moduleDir = modulesPath + module["suffix"] + module["name"] moduleClassType = module["handle"].getClassType() if (moduleClassType != "hidden"): os.chdir(moduleDir) try: module["handle"].initGUI() except Exception as e: msg = "Fehler in Module " + module["name"] self.__p_logger.critical(msg) print(msg) raise e # end try os.chdir(currentDir) # end if # end for usedModules = self.__l_usedModules.copy() # remove not known used modules for moduleName in usedModules: if (moduleName not in abstractModuleClass.d_modules): self.__l_usedModules.remove(moduleName) continue
class RestoreDialog(widgets.dialog.Dialog): def __init__(self, parent=None): super(RestoreDialog, self).__init__(parent) self.messageLabel().setWordWrap(True) userguide.addButton(self.buttonBox(), "snippets") self.tree = QTreeWidget(headerHidden=True, rootIsDecorated=False) self.setMainWidget(self.tree) self.deletedItem = QTreeWidgetItem(self.tree) self.deletedItem.setFlags(Qt.ItemIsUserCheckable) self.changedItem = QTreeWidgetItem(self.tree) self.changedItem.setFlags(Qt.ItemIsUserCheckable) self.tree.itemChanged.connect(self.slotItemChanged) app.translateUI(self) app.languageChanged.connect(self.populate) self.accepted.connect(self.updateSnippets) qutil.saveDialogSize(self, "snippettool/restoredialog/size") def translateUI(self): self.setWindowTitle( app.caption(_("dialog title", "Restore Built-in Snippets"))) self.setMessage( _("This dialog allows you to recover built-in snippets that have " "been changed or deleted. Check the snippets you want to recover " "and click the button \"Restore Checked Snippets.\"")) self.button("ok").setText(_("Restore Checked Snippets")) self.deletedItem.setText(0, _("Deleted Snippets")) self.changedItem.setText(0, _("Changed Snippets")) def populate(self): """Puts the deleted/changed snippets in the tree.""" self.deletedItem.takeChildren() self.deletedItem.setExpanded(True) self.deletedItem.setCheckState(0, Qt.Unchecked) self.changedItem.takeChildren() self.changedItem.setExpanded(True) self.changedItem.setCheckState(0, Qt.Unchecked) builtins = list(builtin.builtin_snippets) builtins.sort(key=snippets.title) names = frozenset(snippets.names()) for name in builtins: if name in names: if snippets.isoriginal(name): continue parent = self.changedItem else: parent = self.deletedItem item = QTreeWidgetItem(parent) item.name = name item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, Qt.Unchecked) item.setText(0, snippets.title(name)) self.deletedItem.setDisabled(self.deletedItem.childCount() == 0) self.changedItem.setDisabled(self.changedItem.childCount() == 0) self.checkOkButton() def slotItemChanged(self, item): if item in (self.deletedItem, self.changedItem): for i in range(item.childCount()): item.child(i).setCheckState(0, item.checkState(0)) self.checkOkButton() def checkedSnippets(self): """Yields the names of the checked snippets.""" for parent in (self.deletedItem, self.changedItem): for i in range(parent.childCount()): child = parent.child(i) if child.checkState(0) == Qt.Checked: yield child.name def updateSnippets(self): """Restores the checked snippets.""" collection = self.parent().parent().snippetActions for name in self.checkedSnippets(): collection.restoreDefaultShortcuts(name) model.model().saveSnippet(name, None, None) def checkOkButton(self): """Enables the OK button if there are selected snippets.""" self.button("ok").setEnabled(any(self.checkedSnippets()))
class RestoreDialog(widgets.dialog.Dialog): def __init__(self, parent=None): super(RestoreDialog, self).__init__(parent) self.messageLabel().setWordWrap(True) userguide.addButton(self.buttonBox(), "snippets") self.tree = QTreeWidget(headerHidden=True, rootIsDecorated=False) self.setMainWidget(self.tree) self.deletedItem = QTreeWidgetItem(self.tree) self.deletedItem.setFlags(Qt.ItemIsUserCheckable) self.changedItem = QTreeWidgetItem(self.tree) self.changedItem.setFlags(Qt.ItemIsUserCheckable) self.tree.itemChanged.connect(self.slotItemChanged) app.translateUI(self) app.languageChanged.connect(self.populate) self.accepted.connect(self.updateSnippets) qutil.saveDialogSize(self, "snippettool/restoredialog/size") def translateUI(self): self.setWindowTitle( app.caption(_("dialog title", "Restore Built-in Snippets"))) self.setMessage(_( "This dialog allows you to recover built-in snippets that have " "been changed or deleted. Check the snippets you want to recover " "and click the button \"Restore Checked Snippets.\"")) self.button("ok").setText(_("Restore Checked Snippets")) self.deletedItem.setText(0, _("Deleted Snippets")) self.changedItem.setText(0, _("Changed Snippets")) def populate(self): """Puts the deleted/changed snippets in the tree.""" self.deletedItem.takeChildren() self.deletedItem.setExpanded(True) self.deletedItem.setCheckState(0, Qt.Unchecked) self.changedItem.takeChildren() self.changedItem.setExpanded(True) self.changedItem.setCheckState(0, Qt.Unchecked) builtins = list(builtin.builtin_snippets) builtins.sort(key = snippets.title) names = frozenset(snippets.names()) for name in builtins: if name in names: if snippets.isoriginal(name): continue parent = self.changedItem else: parent = self.deletedItem item = QTreeWidgetItem(parent) item.name = name item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, Qt.Unchecked) item.setText(0, snippets.title(name)) self.deletedItem.setDisabled(self.deletedItem.childCount() == 0) self.changedItem.setDisabled(self.changedItem.childCount() == 0) self.checkOkButton() def slotItemChanged(self, item): if item in (self.deletedItem, self.changedItem): for i in range(item.childCount()): item.child(i).setCheckState(0, item.checkState(0)) self.checkOkButton() def checkedSnippets(self): """Yields the names of the checked snippets.""" for parent in (self.deletedItem, self.changedItem): for i in range(parent.childCount()): child = parent.child(i) if child.checkState(0) == Qt.Checked: yield child.name def updateSnippets(self): """Restores the checked snippets.""" collection = self.parent().parent().snippetActions for name in self.checkedSnippets(): collection.restoreDefaultShortcuts(name) model.model().saveSnippet(name, None, None) def checkOkButton(self): """Enables the OK button if there are selected snippets.""" self.button("ok").setEnabled(any(self.checkedSnippets()))
def populateTree(self): """Populates tree view with information from ItemTracker.""" if len(self.errorIds): self.mkError("{0} entries do not have valid " "ItemTracker IDs in Bionumerics.".format(len(self.errorIds))) for key, msg in self.errorIds.iteritems(): self.mkError("KEY: {0} {1}".format(key, msg)) if not len(self.selectedIds): self.statusbar.showMessage("No items to process", 5000) return parents = {} headers = ["Items", "Selected", "SelectedBy", "Viability", "Volume", "DNA concentration", "UserName", "TubePresent", "InputDate", "AlternID", "Status"] self.treeWidget.setItemsExpandable(True) self.treeWidget.setAlternatingRowColors(True) self.treeWidget.setColumnCount(len(headers)) self.treeWidget.setHeaderLabels(headers) msg = "Getting information from ItemTracker. Please wait..." self.statusbar.showMessage(msg) self.progressBar.setMinimum(0) self.progressBar.setMaximum(0) self.progressBar.show() (treeData, self.itemProperties, message) = lims.GetDictionary((self.selectedIds.keys())) if len(message): for msg in message: self.mkError("ItemTracker error: {0}".format(msg)) if not len(treeData): self.mkError("Could not get data from ItemTracker for" "selected entries") self.statusBar().clearMessage() self.progressBar.hide() self.updateUi() return # bugfix: If ItemType property does not exist for the first item # self.database is not set and tree view is not updated. db = None if not self.database: for item in self.itemProperties.values(): try: db = item["ItemType"] except KeyError: pass if db == "Salmonella": self.database = db break elif db == "Listeria": self.database = db break self.progressBar.setMaximum(len(treeData)) count = 0 for key, value in treeData.iteritems(): count += 1 self.progressBar.setValue(count) if not(value and isinstance(value, dict)): self.mkWarn("No data returned for key {0}".format(key)) continue items = {} items[key] = value for results in self.getData(items, key): parent = parents.get(results[0]) if not parent: parent_id = self.selectedIds[results[0]] self.strainInfo[parent_id] = {self.database:[], "Frozen Stock":[], "DNA":[]} parent = QTreeWidgetItem(self.treeWidget, [unicode(parent_id)]) brush = QBrush() brush.setColor(Qt.blue) parent.setForeground(0, brush) parent.setIcon(0, QIcon(":/branch-closed.png")) parent.setData(0, Qt.CheckStateRole, QVariant()) parents[results[0]] = parent for children in results[1]: itemName = self.itemProperties[children]["ItemName"] if not self.itemIds.get(itemName): self.itemIds[itemName] = children childprops = [] childprops.append(unicode(itemName)) for header in headers[1:]: try: childprop = self.itemProperties[children][header] if childprop is None or childprop == "": childprops.append(unicode("")) else: childprops.append(unicode(childprop)) except KeyError: childprops.append(unicode("")) continue childs = parents.get(children) if not childs: childs = QTreeWidgetItem(parent, childprops) if self.itemProperties[children]["TubePresent"] == "-": childs.setBackgroundColor(0, QColor(232, 87, 82)) childs.setForeground(0, QColor(255, 255, 255)) if self.itemProperties[children]["Selected"] == "yes": childs.setBackgroundColor(0, QColor(119, 183, 83)) childs.setForeground(0, QColor(255, 255, 255)) itype = self.itemProperties[children]["ItemType"] if itype: self.strainInfo[parent_id][itype].append(itemName) parents[children] = childs childs.setCheckState(0, Qt.Unchecked) self.treeWidget.expandAll() for i in range(len(headers)): self.treeWidget.resizeColumnToContents(i) if not self.treeWidget.isEnabled(): self.treeWidget.setEnabled(True) self.mkInfo("Processed <b>{0}</b> entries".format(len(treeData))) self.progressBar.setValue(len(treeData)) self.progressBar.hide() self.populatedTree = True self.updateUi() self.statusbar.showMessage("Ready", 5000)
def addChild(self, parent, column, title, data, status): item = QTreeWidgetItem(parent, [title]) item.setData(column, Qt.UserRole, data) item.setCheckState (column, self.getCheckStatus(status)) return item
def __init__(self, term, parent=None): super(TermFeeDialog, self).__init__(parent) self.term = term terms = self.pullOnes('terms', self.term) session = self.pullOnes('session', terms['sessionID']) self.termname = str( session['name']) + ' ' + terms['name'] + ' Term Report' self.pagetitle = self.termname #pull all CA ko = 0 feesText = QLabel('Select Fee') feesAmountText = QLabel('Amount') self.feesPop = QLabel('Total:') self.feesAmount = QLineEdit() self.feesAmount.setObjectName("schno") self.feesAmount.setPlaceholderText("000.00") self.feesCombo = QComboBox() self.arr = self.pullFees() self.hol = {} ko = 0 if self.arr and len(self.arr) > 0: for val in self.arr: self.feesCombo.addItem(val['name'].upper()) self.hol[ko] = val['id'] ko += 1 self.tree1 = QTreeWidget() self.tree1.setHeaderLabel("Choose Class") self.cla_arr = {} parent1 = QTreeWidgetItem(self.tree1) parent1.setText(0, "Select Class") parent1.setFlags(parent1.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr1 = self.pullClass() if arr1 and len(arr1) > 0: for val in arr1: child = QTreeWidgetItem(parent1) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(val['name']).upper()) self.cla_arr[val['id']] = child if (val['active'] == 0): child.setCheckState(0, Qt.Unchecked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.tree1.itemClicked.connect(lambda x=7: self.getClass(x)) self.hw = QFormLayout() self.hw.addRow(feesText, self.feesCombo) self.hw1 = QFormLayout() self.hw1.addRow(feesAmountText, self.feesAmount) layout1 = QGridLayout() layout1.addLayout(self.hw, 0, 0) layout1.addWidget(self.tree1, 1, 0) layout1.addLayout(self.hw1, 2, 0) layout2 = QGridLayout() layout2.addWidget(self.feesPop, 0, 0) groupBox1 = QGroupBox('Fees Settings') groupBox1.setLayout(layout1) self.pb = QPushButton() self.pb.setObjectName("Add") self.pb.setText("Add Fees") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() hbo.addWidget(self.pb1) hbo.addStretch() hbo.addWidget(self.pb) groupBox2 = QGroupBox('') groupBox2.setLayout(hbo) groupBox3 = QGroupBox('') groupBox3.setLayout(layout2) grid = QGridLayout() grid.addWidget(groupBox1, 0, 0) grid.addWidget(groupBox3, 1, 0) grid.addWidget(groupBox2, 2, 0) self.setLayout(grid) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_close(self)) self.setWindowTitle(self.pagetitle)
def __init__(self, parent = None): super(OfflinerDialog, self).__init__(parent) self.pagetitle = 'Offline Restore' stylesheet = Valid().background() + Valid().font() fileName = QFileDialog.getOpenFileName(self, 'Save File as', '', '*.zip') achi_zip = zipfile.ZipFile(fileName) achi_zip.extractall('_temp') achi_zip.close() re = open('_temp/data.txt', 'r') arr_string = {} contents = re.readlines() for con in contents: r = con.split('=') arr_string[r[0].strip()] = r[1] #print(arr_string) list_dt = arr_string['SAVED_DATE'] damt = datetime.utcfromtimestamp(float(list_dt)).strftime('%d-%m-%Y, %H:%M:%S') #dt = self.sessions = ast.literal_eval(arr_string['SAVED_IDS']) self.list_data = ast.literal_eval(arr_string['SAVED_TABLES']) self.hold_data = {} self.tree = QTreeWidget() self.tree.setHeaderLabel("Choose Sessions to restore") self.tree.headerItem().setText(0, 'Choose Sessions') #self.tree.setStyleSheet(treeStyleSheet) for t in self.sessions: arr = Db().selectn('session', '', 1, {'id':t}) if arr and arr['id'] > 0: child = QTreeWidgetItem(self.tree) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(arr['name']).upper()) self.hold_data[arr['id']] = child child.setCheckState(0, Qt.Checked) self.pb = QPushButton() self.pb.setObjectName("Add") self.pb.setText("Restore") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Close") hbo = QHBoxLayout() hbo.addWidget(self.pb1) hbo.addStretch() hbo.addWidget(self.pb) groupBox2 = QGroupBox('') groupBox2.setLayout(hbo) self.lbl = QLabel('Saved on the '+damt) grid = QGridLayout() grid.addWidget(self.lbl, 0, 0) grid.addWidget(self.tree, 1, 0) grid.addWidget(groupBox2, 2, 0) self.setLayout(grid) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_close(self)) self.setStyleSheet(stylesheet) #self.setWindowIcon(QIcon(self.titleIcon)) self.setWindowTitle(self.pagetitle)
def populate(self): self.ui.treeWidget.setColumnCount(1) for pluginName, features in self.featureDict.iteritems(): if pluginName=="TestFeatures" and not ilastik_config.getboolean("ilastik", "debug"): continue parent = QTreeWidgetItem(self.ui.treeWidget) parent.setText(0, pluginName) parent.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) # hack to ensure checkboxes visible parent.setCheckState(0, Qt.Checked) parent.setCheckState(0, Qt.Unchecked) parent.setExpanded(False) self.countChecked[pluginName]=0 self.countAll[pluginName]=len(self.featureDict[pluginName]) advanced_names = [] simple_names = [] for name in sorted(features.keys()): parameters = features[name] if 'advanced' in parameters: advanced_names.append(name) else: simple_names.append(name) for name in simple_names+advanced_names: parameters = features[name] item = QTreeWidgetItem(parent) item.setText(0, name) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) if 'tooltip' in parameters: item.setToolTip(0, parameters['tooltip']) # hack to ensure checkboxes visible item.setCheckState(0, Qt.Checked) item.setCheckState(0, Qt.Unchecked) if pluginName in self.selectedFeatures: if name in self.selectedFeatures[pluginName]: item.setCheckState(0, Qt.Checked) self.countChecked[pluginName]+=1 if self.countChecked[pluginName] == 0: parent.setCheckState(0, Qt.Unchecked) elif self.countChecked[pluginName] == self.countAll[pluginName]: parent.setCheckState(0, Qt.Checked) else: parent.setCheckState(0, Qt.PartiallyChecked) self.updateToolTip(parent) # facilitates switching of the CheckBox when clicking on the Text of a QTreeWidgetItem self.ui.treeWidget.setCurrentItem(None)
def __init__(self, session, students, parent=None): super(SubjectClassDialog, self).__init__(parent) ko = 0 self.students = self.pullStudents(students) self.session = session[2] self.frame1 = QGroupBox('Set Student Subjects') hc1_box = QVBoxLayout() ses_name = str(session[1]) + ' ' + str(session[3] + ' Term') ses = QLabel(ses_name) tree = QTreeWidget() tree.setHeaderLabel("Students?") self.std_arr = {} parent = QTreeWidgetItem(tree) parent.setText(0, "Selected Students") parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) for student in self.students: child = QTreeWidgetItem(parent) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText( 0, str(student['surname'] + ' ' + student['firstname'] + ' ' + student['othername']).title()) self.std_arr[student['id']] = child child.setCheckState(0, Qt.Checked) ko += 1 tree1 = QTreeWidget() tree1.setHeaderLabel("Subjects?") self.sub_arr = {} parent1 = QTreeWidgetItem(tree1) parent1.setText(0, "Selected Subjects") parent1.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr = self.pullSubject() for v in arr: child = QTreeWidgetItem(parent1) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(v['name']).upper()) self.sub_arr[v['id']] = child child.setCheckState(0, Qt.Unchecked) ko += 1 hc1_box.addWidget(ses) hc1_box.addWidget(tree) hc1_box.addWidget(tree1) self.frame1.setLayout(hc1_box) self.pb = QPushButton() self.pb.setObjectName("setsub") self.pb.setText("Set Subject") self.pb1 = QPushButton() self.pb1.setObjectName("remsub") self.pb1.setText("Remove Subject") self.pb2 = QPushButton() self.pb2.setObjectName("Cancel") self.pb2.setText("Cancel") but_box = QHBoxLayout() but_box.addWidget(self.pb2) but_box.addWidget(self.pb1) but_box.addWidget(self.pb) main_box = QVBoxLayout() main_box.addWidget(self.frame1) main_box.addLayout(but_box) self.setLayout(main_box) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_remove()) self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_close()) self.setWindowTitle(self.pagetitle)
def __init__(self, term, parent=None): super(SubjectCaDialog, self).__init__(parent) self.setMinimumHeight(280) ko = 0 self.subjects = self.pullSubjects() self.term = term self.cas = self.pullCas(self.term) g = Db() hc1_box = QVBoxLayout() self.subject_hold = {} self.ca_hold = {} self.tree1 = QTreeWidget() self.tree1.setMinimumHeight(280) self.tree1.setHeaderLabel("Select Subject and CA to Display") self.hold_checkbox = [] parent1 = QTreeWidgetItem(self.tree1) parent1.setText(0, "Select") parent1.setFlags(parent1.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) for subject in self.subjects: num = subject['id'] child = QTreeWidgetItem(parent1) child.setFlags(child.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) child.setText(0, str(subject['name']).upper()) child.setCheckState(0, Qt.Checked) for ca in self.cas: dt = g.selectn('datas', '', 1, {'id': ca['name']}) child2 = QTreeWidgetItem(child) child2.setFlags(child2.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) child2.setText(0, str(dt['name']).upper()) child2.setCheckState(0, Qt.Checked) self.hold_checkbox.append(child2) self.subject_hold[child2] = num self.ca_hold[child2] = ca['id'] ko += 1 hc1_box.addWidget(self.tree1) ko += 1 self.pb = QPushButton() self.pb.setObjectName("MakeEntries") self.pb.setText("Edit View") self.pb1 = QPushButton() self.pb1.setObjectName("View Report") self.pb1.setText("Report View") self.pb2 = QPushButton() self.pb2.setObjectName("Cancel") self.pb2.setText("Cancel") but_box = QHBoxLayout() but_box.addWidget(self.pb2) but_box.addWidget(self.pb1) but_box.addWidget(self.pb) main_box = QVBoxLayout() main_box.addLayout(hc1_box) main_box.addLayout(but_box) self.setLayout(main_box) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click(0)) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_click(1)) self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_close()) self.setWindowTitle(self.pagetitle)
def __init__(self, term, parent=None): super(FeeDialog, self).__init__(parent) self.term = term self.sid = term terms = self.pullOnes('terms', self.term) session = self.pullOnes('session', terms['sessionID']) self.termname = str(session['name'])+' '+terms['name']+' Term Report' self.pagetitle = self.termname ko = 0 Form1 = QFormLayout() Form2 = QFormLayout() #title self.title = QLabel("Set Fees") self.titleData = QComboBox() self.titleData.setObjectName("name") #self.titleData.setPlaceHolderText("e.g. 2019 FIRST TERM RESULT") tree = QTreeWidget() tree.setItemDelegate(Delegate()) tree.setHeaderLabel("Which grading system will you be using?") tree1 = QTreeWidget() tree1.setHeaderLabel("Choose Assessments and Classes") tree2 = QTreeWidget() tree2.setHeaderLabel("Report Card Settings") self.ass_arr = {} parent = QTreeWidgetItem(tree1) parent.setText(0, "Select Assessments") parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr = self.pullCas() if arr and len(arr) > 0: for val in arr: dt = self.pullOne(val['name']) child = QTreeWidgetItem(parent) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(dt['name']).upper()) self.ass_arr[val['name']] = child if (val['active'] == 0): child.setCheckState(0, Qt.Unchecked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.cla_arr ={} parent1 = QTreeWidgetItem(tree1) parent1.setText(0, "Select Class") parent1.setFlags(parent1.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr = self.pullClass() if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(parent1) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(val['name']).upper()) self.cla_arr[val['id']] = child if (val['active'] == 0): child.setCheckState(0, Qt.Unchecked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.gra_arr = {} parent2 = QTreeWidgetItem(tree) parent2.setText(0, "Select Grade") arr = self.pullGrade() if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(parent2) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(val['name']).upper()) self.gra_arr[val['id']] = child if (val['active'] == 0): child.setCheckState(0, Qt.Unchecked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.set_arr= {} parent3 = QTreeWidgetItem(tree2) parent3.setText(0, "Include ...") parent3.setFlags(parent3.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr ={ 1:'School Number', 2:'Class Position', 3:'Class Unit Position', 4:'Total (100%)', 5:'Total', 6:'Grading', 7:'Subject Average', 8:'Ranking', 9:'Ranking and Student Population', 10:'Student Passport', 11:'School Logo', 12:'School Address', 13:'Students Address', 14:'Attendance', 15:'Fees Owed', 16:'Test/Assesments' } if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(parent3) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(arr[val]).upper()) self.set_arr[val] = child child.setCheckState(0, Qt.Unchecked) child1 = QTreeWidgetItem(parent3) child1.setFlags(child1.flags() | Qt.ItemIsUserCheckable) child1.setText(0, 'AFFECTIVE DOMAIN REPORT') self.set_arr['aff'] = child1 child1.setCheckState(0, Qt.Unchecked) child2 = QTreeWidgetItem(child1) child2.setFlags(child2.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) child2.setText(0, 'TABLE') self.set_arr['afftable'] = child2 child2.setCheckState(0, Qt.Unchecked) child3 = QTreeWidgetItem(child1) child3.setFlags(child3.flags() | Qt.ItemIsUserCheckable) child3.setText(0, 'GRAPH') self.set_arr['affgraph'] = child3 child3.setCheckState(0, Qt.Unchecked) child4 = QTreeWidgetItem(parent3) child4.setFlags(child4.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) child4.setText(0, 'PYSCHOMOTOR DOMAIN REPORT') self.set_arr['psy'] = child4 child4.setCheckState(0, Qt.Unchecked) child5 = QTreeWidgetItem(child4) child5.setFlags(child5.flags() | Qt.ItemIsUserCheckable) child5.setText(0, 'TABLE') self.set_arr['psytable'] = child5 child5.setCheckState(0, Qt.Unchecked) child6 = QTreeWidgetItem(child4) child6.setFlags(child6.flags() | Qt.ItemIsUserCheckable) child6.setText(0, 'GRAPH') self.set_arr['psygraph'] = child6 child6.setCheckState(0, Qt.Unchecked) tree.expandAll() tree1.expandAll() tree2.expandAll() #tree.show() self.l5 = QLabel("Theme Color") self.pbc = QPushButton() self.pbc.setObjectName("Pickcolor") self.pbc.setText("Click to change") self.le5 = QLineEdit() self.le5.setObjectName("Showcolor") self.le5.setText("#000000") self.pbc.setStyleSheet("background-color: black; color: white") self.connect(self.pbc, SIGNAL("clicked()"), lambda: self.color_picker()) self.l6 = QLabel("Pick Theme Font") self.pbf = QPushButton() self.pbf.setObjectName("Pickfont") self.pbf.setText("Click to Change") self.le6 = QLineEdit() self.le6.setObjectName("Showcolor") self.le6.setText("#000000") self.pbf.setStyleSheet("background-color: black; color: white") self.connect(self.pbf, SIGNAL("clicked()"), lambda: self.font_picker()) self.lv_box = QHBoxLayout() self.lv_box.addWidget(self.pbc) self.lv_box.addWidget(self.le5) self.lv_box1 = QHBoxLayout() self.lv_box1.addWidget(self.pbf) self.lv_box1.addWidget(self.le6) Form1.addRow(self.title, self.titleData) Form2.addRow(self.l5, self.lv_box) Form2.addRow(self.l6, self.lv_box1) Gbo = QGridLayout() Gbo.addLayout(Form1, 0, 0, 1, 2) Gbo.addWidget(tree, 1, 0) Gbo.addWidget(tree1, 1, 1) Gbo.addWidget(tree2, 2, 0) Gbo.addLayout(Form2, 2, 1) groupBox1 = QGroupBox('Academic Report Setup') groupBox1.setLayout(Gbo) self.pb = QPushButton() self.pb.setObjectName("Add") self.pb.setText("Save") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") self.pb2 = QPushButton() self.pb2.setObjectName("Save") self.pb2.setText("Save and Keep Template") self.lTemplate = QLineEdit() self.lTemplate.setPlaceholderText('Template Name') self.rTemplate = QLabel() self.rTemplate.setText('') hbo = QHBoxLayout() hbo.addWidget(self.pb1) hbo.addStretch() hbo.addWidget(self.lTemplate) hbo.addWidget(self.pb2) hbo.addWidget(self.rTemplate) hbo.addStretch() hbo.addWidget(self.pb) groupBox2 = QGroupBox('') groupBox2.setLayout(hbo) grid = QGridLayout() grid.addWidget(groupBox1, 0, 0) grid.addWidget(groupBox2, 1, 0) self.setLayout(grid) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click(self)) self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_template(self)) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_close(self)) self.setWindowTitle(self.pagetitle)
def __init__(self, term, row, parent=None): super(EditReportDialog, self).__init__(parent) self.term = term self.sid = term self.row = row terms = self.pullOnes('terms', self.term) datas = self.pullOnes('datas', self.row) session = self.pullOnes('session', terms['sessionID']) self.termname = str( session['name']) + ' ' + terms['name'] + ' Term Report' self.pagetitle = self.termname ko = 0 #prepare data d = datas['description'] d = d.split(':::') _title = d[0] _theme = d[1] _font = d[2] _ass = d[3] _gra = d[4] _set = d[5] _ass_list = _ass.split('::') _gra_list = _gra.split('::') _set_list = _set.split('::') _cla_list = _set.split('::') layout1 = QGridLayout() Form1 = QFormLayout() Form2 = QFormLayout() #title self.title = QLabel("Report Title") self.titleData = QLineEdit() self.titleData.setObjectName("name") self.titleData.setText(_title) tree = QTreeWidget() tree.setItemDelegate(Delegate()) tree.setHeaderLabel("Which grading system will you be using?") tree1 = QTreeWidget() tree1.setHeaderLabel("Choose Assessments and classes") tree2 = QTreeWidget() tree2.setHeaderLabel("Report Card Settings") self.ass_arr = {} parent = QTreeWidgetItem(tree1) parent.setText(0, "Select Assessments") parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr = self.pullCas() if arr and len(arr) > 0: for val in arr: dt = self.pullOne(val['name']) child = QTreeWidgetItem(parent) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(dt['name']).upper()) self.ass_arr[val['id']] = child if str(val['id']) in _ass_list: child.setCheckState(0, Qt.Checked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.cla_arr = {} parent1 = QTreeWidgetItem(tree1) parent1.setText(0, "Select Class") parent1.setFlags(parent1.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr = self.pullClass() if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(parent1) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(val['name']).upper()) self.cla_arr[val['id']] = child va = str(val['id']) if (va in _cla_list): child.setCheckState(0, Qt.Checked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.gra_arr = {} parent2 = QTreeWidgetItem(tree) parent2.setText(0, "Select Grade") arr = self.pullGrade() if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(parent2) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(val['name']).upper()) self.gra_arr[val['id']] = child if str(val['id']) in _gra_list: child.setCheckState(0, Qt.Checked) else: child.setCheckState(0, Qt.Unchecked) ko += 1 self.set_arr = {} parent3 = QTreeWidgetItem(tree2) parent3.setText(0, "Include ...") parent3.setFlags(parent3.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) arr = { 1: 'School Number', 2: 'Class Position', 3: 'Class Unit Position', 4: 'Total (100%)', 5: 'Total', 6: 'Grading', 7: 'Subject Average', 8: 'Ranking', 9: 'Ranking and Student Population', 10: 'Student Passport', 11: 'School Logo', 12: 'School Address', 13: 'Students Address', 14: 'Attendance', 15: 'Fees Owed', 16: 'Test/Assesments' } if arr and len(arr) > 0: for val in arr: child = QTreeWidgetItem(parent3) child.setFlags(child.flags() | Qt.ItemIsUserCheckable) child.setText(0, str(arr[val]).upper()) self.set_arr[val] = child if str(val) in _set_list: child.setCheckState(0, Qt.Checked) else: child.setCheckState(0, Qt.Unchecked) child1 = QTreeWidgetItem(parent3) child1.setFlags(child1.flags() | Qt.ItemIsUserCheckable) child1.setText(0, 'AFFECTIVE DOMAIN REPORT') self.set_arr['aff'] = child1 if 'aff' in _set_list: child1.setCheckState(0, Qt.Checked) else: child1.setCheckState(0, Qt.Unchecked) child2 = QTreeWidgetItem(child1) child2.setFlags(child2.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) child2.setText(0, 'TABLE') self.set_arr['afftable'] = child2 if 'afftable' in _set_list: child2.setCheckState(0, Qt.Checked) else: child2.setCheckState(0, Qt.Unchecked) child3 = QTreeWidgetItem(child1) child3.setFlags(child3.flags() | Qt.ItemIsUserCheckable) child3.setText(0, 'GRAPH') self.set_arr['affgraph'] = child3 if 'affgraph' in _set_list: child3.setCheckState(0, Qt.Checked) else: child3.setCheckState(0, Qt.Unchecked) child4 = QTreeWidgetItem(parent3) child4.setFlags(child4.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) child4.setText(0, 'PYSCHOMOTOR DOMAIN REPORT') self.set_arr['psy'] = child4 if 'psy' in _set_list: child4.setCheckState(0, Qt.Checked) else: child4.setCheckState(0, Qt.Unchecked) child5 = QTreeWidgetItem(child4) child5.setFlags(child5.flags() | Qt.ItemIsUserCheckable) child5.setText(0, 'TABLE') self.set_arr['psytable'] = child5 if 'psytable' in _set_list: child5.setCheckState(0, Qt.Checked) else: child5.setCheckState(0, Qt.Unchecked) child6 = QTreeWidgetItem(child4) child6.setFlags(child6.flags() | Qt.ItemIsUserCheckable) child6.setText(0, 'GRAPH') self.set_arr['psygraph'] = child6 if 'psygraph' in _set_list: child6.setCheckState(0, Qt.Checked) else: child6.setCheckState(0, Qt.Unchecked) tree.expandAll() tree1.expandAll() tree2.expandAll() #tree.show() self.l5 = QLabel("Theme Color") self.pbc = QPushButton() self.pbc.setObjectName("Pickcolor") self.pbc.setText("Click to change") self.le5 = QLineEdit() self.le5.setObjectName("Showcolor") self.le5.setText(_theme) self.pbc.setStyleSheet("background-color: " + _theme + "; color: white") self.connect(self.pbc, SIGNAL("clicked()"), lambda: self.color_picker()) self.l6 = QLabel("Pick Theme Font") self.pbf = QPushButton() self.pbf.setObjectName("Pickfont") self.pbf.setText(_font) self.le6 = QLineEdit() self.le6.setObjectName("Showcolor") self.le6.setText("#000000") self.pbf.setStyleSheet("color: black") self.connect(self.pbf, SIGNAL("clicked()"), lambda: self.font_picker()) self.lv_box = QHBoxLayout() self.lv_box.addWidget(self.pbc) self.lv_box.addWidget(self.le5) self.lv_box1 = QHBoxLayout() self.lv_box1.addWidget(self.pbf) self.lv_box1.addWidget(self.le6) Form1.addRow(self.title, self.titleData) Form2.addRow(self.l5, self.lv_box) Form2.addRow(self.l6, self.lv_box1) Gbo = QGridLayout() Gbo.addLayout(Form1, 0, 0, 1, 2) Gbo.addWidget(tree, 1, 0) Gbo.addWidget(tree1, 1, 1) Gbo.addWidget(tree2, 2, 0) Gbo.addLayout(Form2, 2, 1) groupBox1 = QGroupBox('Academic Report Setup') groupBox1.setLayout(Gbo) self.pb = QPushButton() self.pb.setObjectName("Add") self.pb.setText("Add Assessment") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() hbo.addWidget(self.pb1) hbo.addStretch() hbo.addWidget(self.pb) groupBox2 = QGroupBox('') groupBox2.setLayout(hbo) grid = QGridLayout() grid.addWidget(groupBox1, 0, 0) grid.addWidget(groupBox2, 1, 0) self.setLayout(grid) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click(self)) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_close(self)) self.setWindowTitle(self.pagetitle)
def load(filename, widget): """Loads snippets from a file, displaying them in a list. The user can then choose: - overwrite builtin snippets or not - overwrite own snippets with same title or not - select and view snippets contents. """ try: d = ET.parse(filename) elements = list(d.findall('snippet')) if not elements: raise ValueError(_("No snippets found.")) except Exception as e: QMessageBox.critical(widget, app.caption(_("Error")), _("Can't read from source:\n\n{url}\n\n{error}").format( url=filename, error=e)) return dlg = widgets.dialog.Dialog(widget) dlg.setWindowModality(Qt.WindowModal) dlg.setWindowTitle(app.caption(_("dialog title", "Import Snippets"))) tree = QTreeWidget(headerHidden=True, rootIsDecorated=False) dlg.setMainWidget(tree) userguide.addButton(dlg.buttonBox(), "snippet_import_export") allnames = frozenset(snippets.names()) builtins = frozenset(builtin.builtin_snippets) titles = dict((snippets.title(n), n) for n in allnames if n not in builtins) new = QTreeWidgetItem(tree, [_("New Snippets")]) updated = QTreeWidgetItem(tree, [_("Updated Snippets")]) unchanged = QTreeWidgetItem(tree, [_("Unchanged Snippets")]) new.setFlags(Qt.ItemIsEnabled) updated.setFlags(Qt.ItemIsEnabled) unchanged.setFlags(Qt.ItemIsEnabled) new.setExpanded(True) updated.setExpanded(True) items = [] for snip in elements: item = QTreeWidgetItem() item.body = snip.find('body').text item.title = snip.find('title').text item.shortcuts = list(e.text for e in snip.findall('shortcuts/shortcut')) title = item.title or snippets.maketitle(snippets.parse(item.body).text) item.setText(0, title) name = snip.get('id') name = name if name in builtins else None # determine if new, updated or unchanged if not name: name = titles.get(title) item.name = name if not name or name not in allnames: new.addChild(item) items.append(item) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) item.setCheckState(0, Qt.Checked) elif name: if (item.body != snippets.text(name) or title != snippets.title(name) or (item.shortcuts and item.shortcuts != [s.toString() for s in model.shortcuts(name) or ()])): updated.addChild(item) items.append(item) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) item.setCheckState(0, Qt.Checked) else: unchanged.addChild(item) item.setFlags(Qt.ItemIsEnabled) # count: for i in new, updated, unchanged: i.setText(0, i.text(0) + " ({0})".format(i.childCount())) for i in new, updated: if i.childCount(): i.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) i.setCheckState(0, Qt.Checked) def changed(item): if item in (new, updated): for i in range(item.childCount()): c = item.child(i) c.setCheckState(0, item.checkState(0)) tree.itemChanged.connect(changed) importShortcuts = QTreeWidgetItem([_("Import Keyboard Shortcuts")]) if items: tree.addTopLevelItem(importShortcuts) importShortcuts.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) importShortcuts.setCheckState(0, Qt.Checked) dlg.setMessage(_("Choose which snippets you want to import:")) else: dlg.setMessage(_("There are no new or updated snippets in the file.")) unchanged.setExpanded(True) tree.setWhatsThis(_( "<p>Here the snippets from {filename} are displayed.</p>\n" "<p>If there are new or updated snippets, you can select or deselect " "them one by one, or all at once, using the checkbox of the group. " "Then click OK to import all the selected snippets.</p>\n" "<p>Existing, unchanged snippets can't be imported.</p>\n" ).format(filename=os.path.basename(filename))) qutil.saveDialogSize(dlg, "snippettool/import/size", QSize(400, 300)) if not dlg.exec_() or not items: return ac = model.collection() m = model.model() with qutil.busyCursor(): for i in items: if i.checkState(0) == Qt.Checked: index = m.saveSnippet(i.name, i.body, i.title) if i.shortcuts and importShortcuts.checkState(0): shortcuts = list(map(QKeySequence.fromString, i.shortcuts)) ac.setShortcuts(m.name(index), shortcuts) widget.updateColumnSizes()