示例#1
0
 def resetItems(self):
     from qtpy.QtGui import QStandardItem
     from qtpy.QtCore import Qt
     # Empty the model before reset
     self.readingListModel.clear()
     # Reset
     index = 0
     todayIndex = None
     filterEntry = self.filterEntry.text()
     for key, value in self.plan.items():
         checked, passages = value
         if not (self.hideCheckedItems and checked) and (
                 filterEntry == "" or
             (filterEntry != ""
              and filterEntry.lower() in passages.lower())):
             item = QStandardItem("{0}. {1}".format(key, passages))
             item.setToolTip("{0}{1}{2}".format(self.translation[8], key,
                                                self.translation[9]))
             if key == self.todayNo:
                 todayIndex = index
             item.setCheckable(True)
             item.setCheckState(Qt.CheckState.Checked if checked else Qt.
                                CheckState.Unchecked)
             self.readingListModel.appendRow(item)
             index += 1
     if todayIndex is not None:
         self.readingList.setCurrentIndex(
             self.readingListModel.index(todayIndex, 0))
示例#2
0
        def create_table_item(column, itemname, invalid_value_count, log_size,
                              callable, *args):
            item = QStandardItem()
            item.setEditable(False)
            #format if there is invalid data entries
            if invalid_value_count == -1:
                item.setData(DEEP_RED, Qt.BackgroundRole)
                item.setToolTip(
                    "All of the values in the log are marked invalid, none of them are filtered."
                )
            elif invalid_value_count > 0:
                saturation = 10 + (170 * (invalid_value_count /
                                          (log_size + invalid_value_count)))
                item.setData(QColor.fromHsv(0, saturation, 255),
                             Qt.BackgroundRole)
                aux_verb = "is" if invalid_value_count == 1 else "are"
                item.setToolTip(
                    f"{invalid_value_count}/{log_size+invalid_value_count} of the values in the log"
                    f" {aux_verb} marked invalid, and {aux_verb} filtered.")
            try:
                item.setText(callable(*args))
            except Exception as exc:
                logger.warning("Error setting column {} for log {}: {}".format(
                    column, itemname, str(exc)))

            return item
示例#3
0
 def commentaryListView(self):
     # https://doc.qt.io/archives/qtforpython-5.12/PySide2/QtCore/QStringListModel.html
     # https://gist.github.com/minoue/9f384cd36339429eb0bf
     # https://www.pythoncentral.io/pyside-pyqt-tutorial-qlistview-and-qstandarditemmodel/
     list = QListView()
     list.setEditTriggers(QAbstractItemView.NoEditTriggers)
     model = QStandardItemModel(list)
     for index, commentary in enumerate(self.parent.commentaryFullNameList):
         item = QStandardItem(commentary)
         item.setToolTip(self.parent.commentaryList[index])
         #item.setCheckable(True)
         #item.setCheckState(Qt.CheckState.Checked)
         #item.setCheckState(Qt.CheckState.Unchecked)
         #print(item.checkState() is Qt.CheckState.Checked)
         model.appendRow(item)
     #model = QStringListModel(self.parent.commentaryList)
     #model = QStringListModel(self.parent.commentaryFullNameList)
     list.setModel(model)
     if config.commentaryText in self.parent.commentaryList:
         list.setCurrentIndex(
             model.index(
                 self.parent.commentaryList.index(config.commentaryText),
                 0))
     list.selectionModel().selectionChanged.connect(self.commentarySelected)
     return list
示例#4
0
 def addItem(self, text, data=None, toolTip=None):
     item = QStandardItem()
     item.setText(text)
     if data is None:
         item.setData(text)
     else:
         item.setData(data)
     if toolTip is not None:
         item.setToolTip(toolTip)
     item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable)
     item.setData(Qt.Checked if text in self.checkItems else Qt.Unchecked, Qt.CheckStateRole)
     self.model().appendRow(item)
示例#5
0
 def reloadFilters(self):
     self.filters = self.db.getAll()
     self.dataViewModel.clear()
     rowCount = 0
     for bible, description in self.filters:
         item = QStandardItem(bible)
         item.setToolTip(bible)
         item.setCheckable(True)
         self.dataViewModel.setItem(rowCount, 0, item)
         item = QStandardItem(description)
         self.dataViewModel.setItem(rowCount, 1, item)
         rowCount += 1
     self.dataViewModel.setHorizontalHeaderLabels([
         config.thisTranslation["filter2"],
         config.thisTranslation["pattern"]
     ])
     self.filtersTable.resizeColumnsToContents()
示例#6
0
    def populatePortList(self, model, tv, ports):
        tv.setModel(model)
        root = model.invisibleRootItem()

        portsdict = {}
        for port in ports:
            if port.client not in portsdict:
                portsdict[port.client] = []
            portsdict[port.client].append(port)

        for client in humansorted(portsdict):
            clientitem = QStandardItem(client)

            for port in humansorted(portsdict[client],
                                    key=attrgetter("group", "order", "name")):
                portspec = (port.client, port.name)
                if port.pretty_name:
                    label = "%s (%s)" % (port.pretty_name, port.name)
                else:
                    label = port.name

                portitem = QStandardItem(label)
                portitem.setData(portspec)
                portitem.setCheckable(True)
                portitem.setUserTristate(False)
                # Check box toggling is done in the treeview clicked handler "on_port_clicked"
                portitem.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)

                portitem.setToolTip(self.makePortTooltip(port))

                if portspec in self.rec_sources:
                    portitem.setCheckState(2)

                clientitem.appendRow(portitem)

            root.appendRow(clientitem)

        tv.expandAll()
示例#7
0
 def resetItems(self):
     self.isUpdating = True
     # Empty the model before reset
     self.dataViewModel.clear()
     # Reset
     self.data = self.getOptions()
     filterEntry = self.filterEntry.text().lower()
     rowCount = 0
     for flag, value in self.data.items():
         configValue, default, tooltip, *_ = value
         if filterEntry == "" or (filterEntry != "" and
                                  (filterEntry in flag.lower()
                                   or filterEntry in tooltip.lower())):
             # 1st column
             item = QStandardItem(flag)
             item.setToolTip(tooltip)
             item.setCheckable(True)
             item.setCheckState(Qt.CheckState.Checked
                                if configValue else Qt.CheckState.Unchecked)
             self.dataViewModel.setItem(rowCount, 0, item)
             # 2nd column
             item = QStandardItem(str(default))
             self.dataViewModel.setItem(rowCount, 1, item)
             # 3rd column
             tooltip = tooltip.replace("\n", " ")
             item = QStandardItem(tooltip)
             item.setToolTip(tooltip)
             self.dataViewModel.setItem(rowCount, 2, item)
             # add row count
             rowCount += 1
     self.dataViewModel.setHorizontalHeaderLabels([
         config.thisTranslation["flag"], config.thisTranslation["default"],
         config.thisTranslation["description"]
     ])
     self.dataView.resizeColumnsToContents()
     self.isUpdating = False
示例#8
0
 def loadBibleSelection(self):
     self.settingBibles = True
     self.dataViewModel.clear()
     biblesInCollection = []
     if self.selectedCollection is not None:
         biblesInCollection = config.bibleCollections[
             self.selectedCollection]
     rowCount = 0
     for bible, description in self.bibles:
         item = QStandardItem(bible)
         item.setToolTip(bible)
         item.setCheckable(True)
         if bible in biblesInCollection:
             item.setCheckState(Qt.Checked)
         self.dataViewModel.setItem(rowCount, 0, item)
         item = QStandardItem(description)
         self.dataViewModel.setItem(rowCount, 1, item)
         rowCount += 1
     self.dataViewModel.setHorizontalHeaderLabels([
         config.thisTranslation["bible"],
         config.thisTranslation["description"]
     ])
     self.biblesTable.resizeColumnsToContents()
     self.settingBibles = False
    def setupUI(self):
        mainLayout = QVBoxLayout()

        mainLayout.addWidget(QLabel(self.translation[0]))

        subLayout = QHBoxLayout()

        layout = QVBoxLayout()
        layout.addWidget(QLabel(self.translation[1]))
        dataView1 = QListView()
        dataView1.setEditTriggers(QAbstractItemView.NoEditTriggers)
        dataViewModel1 = QStandardItemModel(dataView1)
        dataView1.setModel(dataViewModel1)
        for plugin in FileUtil.fileNamesWithoutExtension(
                os.path.join("plugins", "startup"), "py"):
            item = QStandardItem(plugin)
            item.setToolTip(plugin)
            item.setCheckable(True)
            item.setCheckState(
                Qt.CheckState.Unchecked if plugin in
                config.excludeStartupPlugins else Qt.CheckState.Checked)
            dataViewModel1.appendRow(item)
        dataViewModel1.itemChanged.connect(self.itemChanged1)
        layout.addWidget(dataView1)
        subLayout.addLayout(layout)

        layout = QVBoxLayout()
        layout.addWidget(QLabel(self.translation[2]))
        dataView2 = QListView()
        dataView2.setEditTriggers(QAbstractItemView.NoEditTriggers)
        dataViewModel2 = QStandardItemModel(dataView2)
        dataView2.setModel(dataViewModel2)
        for plugin in FileUtil.fileNamesWithoutExtension(
                os.path.join("plugins", "menu"), "py"):
            item = QStandardItem(plugin)
            item.setToolTip(plugin)
            item.setCheckable(True)
            item.setCheckState(Qt.CheckState.Unchecked if plugin in config.
                               excludeMenuPlugins else Qt.CheckState.Checked)
            dataViewModel2.appendRow(item)
        dataViewModel2.itemChanged.connect(self.itemChanged2)
        layout.addWidget(dataView2)
        subLayout.addLayout(layout)

        layout = QVBoxLayout()
        layout.addWidget(QLabel(self.translation[3]))
        dataView3 = QListView()
        dataView3.setEditTriggers(QAbstractItemView.NoEditTriggers)
        dataViewModel3 = QStandardItemModel(dataView3)
        dataView3.setModel(dataViewModel3)
        for plugin in FileUtil.fileNamesWithoutExtension(
                os.path.join("plugins", "context"), "py"):
            item = QStandardItem(plugin)
            item.setToolTip(plugin)
            item.setCheckable(True)
            item.setCheckState(
                Qt.CheckState.Unchecked if plugin in
                config.excludeContextPlugins else Qt.CheckState.Checked)
            dataViewModel3.appendRow(item)
        dataViewModel3.itemChanged.connect(self.itemChanged3)
        layout.addWidget(dataView3)
        subLayout.addLayout(layout)

        layout = QVBoxLayout()
        layout.addWidget(QLabel(self.translation[4]))
        dataView4 = QListView()
        dataView4.setEditTriggers(QAbstractItemView.NoEditTriggers)
        dataViewModel4 = QStandardItemModel(dataView4)
        dataView4.setModel(dataViewModel4)
        for plugin in FileUtil.fileNamesWithoutExtension(
                os.path.join("plugins", "shutdown"), "py"):
            item = QStandardItem(plugin)
            item.setToolTip(plugin)
            item.setCheckable(True)
            item.setCheckState(
                Qt.CheckState.Unchecked if plugin in
                config.excludeShutdownPlugins else Qt.CheckState.Checked)
            dataViewModel4.appendRow(item)
        dataViewModel4.itemChanged.connect(self.itemChanged4)
        layout.addWidget(dataView4)
        subLayout.addLayout(layout)

        mainLayout.addLayout(subLayout)

        self.setLayout(mainLayout)