Example #1
0
    def reset_gr_tree(self):
        """
        Clear the leaves of the tree only leaving the main node 'workspaces'
        Returns
        -------

        """
        # clear all
        if self.model() is not None:
            self.model().clear()

        # reset workspace data structures
        self._workspaceNameList = list()
        self._myHeaderList = list()
        self._leafDict.clear()

        # re-initialize the model
        self._myNumCols = 1
        model = QStandardItemModel()
        model.setColumnCount(self._myNumCols)
        self.setModel(model)

        self.init_setup(['G(R) Workspaces'])
        self.add_main_item('workspaces', append=True, as_current_index=False)
        self.add_main_item('SofQ', append=False, as_current_index=False)

        return
Example #2
0
    def getItemModel(self):
        """Return a QModel made from the current workspace. This should be set
        onto a QTableView
        """
        def create_table_item(column, itemname, callable, *args):
            item = QStandardItem()
            item.setEditable(False)
            try:
                item.setText(callable(*args))
            except Exception as exc:
                logger.warning("Error setting column {} for log {}: {}".format(
                    column, itemname, str(exc)))

            return item

        model = QStandardItemModel()
        model.setHorizontalHeaderLabels(["Name", "Type", "Value", "Units"])
        model.setColumnCount(4)
        for key in self.get_log_names():
            log = self.run.getLogData(key)
            name = create_table_item("Name", key, lambda: log.name)
            log_type = create_table_item("Type", key, get_type, log)
            value = create_table_item("Value", key,
                                      lambda log: str(get_value(log)), log)
            unit = create_table_item("Units", key, lambda: log.units)
            model.appendRow((name, log_type, value, unit))

        model.sort(0)
        return model
Example #3
0
    def reset_gr_tree(self):
        """
        Clear the leaves of the tree only leaving the main node 'workspaces'
        Returns
        -------

        """
        # clear all
        if self.model() is not None:
            self.model().clear()

        # reset workspace data structures
        self._workspaceNameList = list()
        self._myHeaderList = list()
        self._leafDict.clear()

        # re-initialize the model
        self._myNumCols = 1
        model = QStandardItemModel()
        model.setColumnCount(self._myNumCols)
        self.setModel(model)

        self.init_setup(['G(R) Workspaces'])
        self.add_main_item('workspaces', append=True, as_current_index=False)
        self.add_main_item('SofQ', append=False, as_current_index=False)

        return
Example #4
0
    def getItemModel(self, searched_key=''):
        """Return a QModel made from the current workspace. This should be set
        onto a QTableView. The searched_key allows for filtering log entries.
        """
        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

        model = QStandardItemModel()
        model.setHorizontalHeaderLabels(["Name", "Type", "Value", "Units"])
        model.setColumnCount(4)
        logs_to_highlight = self.get_logs_with_invalid_data()
        logs_to_hide = self.get_hidden_logs()
        for key in self.get_log_names():
            if key in logs_to_hide:
                continue
            if searched_key.casefold() not in key.casefold():
                continue
            invalid_value_count = 0
            if key in logs_to_highlight.keys():
                invalid_value_count = logs_to_highlight[key]
            log = self.run.getLogData(key)
            size = log.size() if hasattr(log, 'size') else 0
            name = create_table_item("Name", key, invalid_value_count, size,
                                     lambda: log.name)
            log_type = create_table_item("Type", key, invalid_value_count,
                                         size, get_type, log)
            value = create_table_item("Value", key, invalid_value_count, size,
                                      lambda log: get_value(log), log)
            unit = create_table_item("Units", key, invalid_value_count, size,
                                     lambda: log.units)
            model.appendRow((name, log_type, value, unit))

        model.sort(0)
        return model
Example #5
0
class ProcessSelectModel(QObject):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.source_model = QStandardItemModel(parent)
        self.source_model.setColumnCount(3)

        self.source_model.setHeaderData(0, Qt.Horizontal, self.tr("Directory"),
                                        Qt.DisplayRole)
        self.source_model.setHeaderData(1, Qt.Horizontal, self.tr("Name"),
                                        Qt.DisplayRole)
        self.source_model.setHeaderData(2, Qt.Horizontal, self.tr("Location"),
                                        Qt.DisplayRole)
Example #6
0
def custom_tree_view(qtbot):
    # Setup item model

    model = QStandardItemModel()
    model.setColumnCount(len(nodes))

    # Setup CustomTreeView to test against
    main_window = MainWindow()
    custom_tree_view = CustomizedTreeView(main_window)
    custom_tree_view._myNumCols = len(nodes)
    custom_tree_view.setModel(model)

    return custom_tree_view
Example #7
0
 def getItemModel(self):
     """Return a QModel made from the current workspace. This should be set
     onto a QTableView
     """
     model = QStandardItemModel()
     model.setHorizontalHeaderLabels(["Name", "Type", "Value", "Units"])
     model.setColumnCount(4)
     for key in self.get_log_names():
         log = self.run.getLogData(key)
         name = QStandardItem()
         name.setText(log.name)
         name.setEditable(False)
         log_type = QStandardItem()
         log_type.setText(get_type(log))
         log_type.setEditable(False)
         value = QStandardItem()
         value.setText(str(get_value(log)))
         value.setEditable(False)
         unit = QStandardItem()
         unit.setText(log.units)
         unit.setEditable(False)
         model.appendRow((name, log_type, value, unit))
     model.sort(0)
     return model
Example #8
0
 def getItemModel(self):
     """Return a QModel made from the current workspace. This should be set
     onto a QTableView
     """
     model = QStandardItemModel()
     model.setHorizontalHeaderLabels(["Name", "Type", "Value", "Units"])
     model.setColumnCount(4)
     for key in self.get_log_names():
         log = self.run.getLogData(key)
         name = QStandardItem()
         name.setText(log.name)
         name.setEditable(False)
         log_type = QStandardItem()
         log_type.setText(get_type(log))
         log_type.setEditable(False)
         value = QStandardItem()
         value.setText(str(get_value(log)))
         value.setEditable(False)
         unit = QStandardItem()
         unit.setText(log.units)
         unit.setEditable(False)
         model.appendRow((name, log_type, value, unit))
     model.sort(0)
     return model
Example #9
0
            if self.cutSelectedCellsAction is not None:
                self.cutSelectedCellsAction.setVisible(True)
                self.cutSelectedCellsAction.setEnabled(True)
            if self.copySingleCellAction is not None:
                self.copySingleCellAction.setVisible(False)
                self.copySingleCellAction.setEnabled(False)
        super(TableView, self).setSelectionMode(mode)


if __name__ == "__main__":
    from qtpy.QtGui import QStandardItemModel
    app = QApplication([])

    #    tablewidget = TableWidget()
    #    tablewidget.setWindowTitle("TableWidget")
    #    tablewidget.setColumnCount(10)
    #    tablewidget.setRowCount(7)
    #    tablewidget.enableCut()
    #    tablewidget.enablePaste()
    #    tablewidget.show()

    tableview = TableView(cut=True, paste=True)
    tableview.setWindowTitle("TableView")
    model = QStandardItemModel()
    model.setColumnCount(10)
    model.setRowCount(7)
    tableview.setModel(model)
    tableview.show()

    app.exec_()