예제 #1
0
    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)
예제 #2
0
    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()
예제 #3
0
파일: RUIAN2DB.py 프로젝트: otonvm/ABTag2
 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
예제 #4
0
 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)
예제 #5
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
예제 #6
0
    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)
예제 #7
0
	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()
예제 #8
0
 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()
예제 #9
0
 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)
예제 #10
0
 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
예제 #11
0
    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)
예제 #12
0
    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)
예제 #13
0
    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
예제 #15
0
 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)
예제 #16
0
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
예제 #17
0
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
예제 #18
0
 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)
예제 #19
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)
예제 #20
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)
예제 #21
0
 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)
예제 #22
0
    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)
예제 #23
0
    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)
예제 #24
0
파일: backendcfg.py 프로젝트: kyrre/weboob
    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)
예제 #25
0
    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)
예제 #26
0
    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
예제 #27
0
    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
예제 #28
0
    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)
예제 #29
0
    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)
예제 #30
0
    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)
예제 #31
0
    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
예제 #32
0
    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
예제 #33
0
 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)
예제 #34
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)
예제 #37
0
 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)
예제 #38
0
 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)
예제 #39
0
    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)
예제 #40
0
 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)
예제 #41
0
    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)
예제 #42
0
파일: m2todo.py 프로젝트: toyg/m2todo
    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)
예제 #43
0
    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)
예제 #44
0
    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)
예제 #45
0
    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)
예제 #46
0
 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)
예제 #47
0
파일: mainWindow.py 프로젝트: pgollor/pyGUI
	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
예제 #48
0
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()))
예제 #49
0
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()))
예제 #50
0
	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)
예제 #51
0
파일: RUIAN2DB.py 프로젝트: otonvm/ABTag2
 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
예제 #52
0
    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)
예제 #53
0
 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)
예제 #54
0
 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)
예제 #55
0
    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)
예제 #56
0
    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)
예제 #57
0
    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)
예제 #58
0
    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)
예제 #59
0
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()