- wip on the new tools database

This commit is contained in:
Marius Stanciu 2020-03-01 01:55:35 +02:00 committed by Marius
parent 70d3895799
commit 77e01825c2
2 changed files with 34 additions and 8 deletions

View File

@ -1422,9 +1422,16 @@ class ToolsDB2(QtWidgets.QWidget):
tree_layout = QtWidgets.QVBoxLayout()
grid_layout.addLayout(tree_layout, 0, 0)
self.tree_widget = FCTree(columns=2, header_hidden=False)
self.tree_widget = FCTree(columns=2, header_hidden=False, protected_column=[0])
self.tree_widget.setHeaderLabels(["ID", "Tool Name"])
self.tree_widget.setIndentation(0)
# set alternating colors
# self.tree_widget.setAlternatingRowColors(True)
# p = QtGui.QPalette()
# p.setColor(QtGui.QPalette.AlternateBase, QtGui.QColor(226, 237, 253) )
# self.tree_widget.setPalette(p)
self.tree_widget.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
tree_layout.addWidget(self.tree_widget)
@ -1516,16 +1523,21 @@ class ToolsDB2(QtWidgets.QWidget):
self.add_tool_from_db.clicked.connect(self.on_tool_requested_from_app)
self.cancel_tool_from_db.clicked.connect(self.on_cancel_tool)
self.tree_widget.selectionModel().selectionChanged.connect(self.on_list_selection_change)
# self.tree_widget.selectionModel().selectionChanged.connect(self.on_list_selection_change)
self.tree_widget.currentItemChanged.connect(self.on_list_selection_change)
self.tree_widget.itemChanged.connect(self.on_list_item_edited)
self.setup_db_ui()
def on_list_selection_change(self, current):
return
for idx in current.indexes():
print(idx.data())
def on_list_selection_change(self, current, previous):
# for idx in current.indexes():
# print(idx.data())
print(current.text(0))
self.table_widget.selectRow(int(current.text(0))-1)
def on_list_item_edited(self, item, idx):
def on_list_item_edited(self, item, column):
if column == 0:
return
row = int(item.text(0)) - 1
self.table_widget.item(row, 1).setText(item.text(1))

View File

@ -154,7 +154,7 @@ class RadioSet(QtWidgets.QWidget):
class FCTree(QtWidgets.QTreeWidget):
def __init__(self, parent=None, columns=2, header_hidden=True, extended_sel=False):
def __init__(self, parent=None, columns=2, header_hidden=True, extended_sel=False, protected_column=None):
super(FCTree, self).__init__(parent)
self.setColumnCount(columns)
@ -165,6 +165,20 @@ class FCTree(QtWidgets.QTreeWidget):
if extended_sel:
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.protected_column = protected_column
self.itemDoubleClicked.connect(self.on_double_click)
def on_double_click(self, item, column):
# from here: https://stackoverflow.com/questions/2801959/making-only-one-column-of-a-qtreewidgetitem-editable
tmp_flags = item.flags()
if self.is_editable(column):
item.setFlags(tmp_flags | QtCore.Qt.ItemIsEditable)
elif tmp_flags & QtCore.Qt.ItemIsEditable:
item.setFlags(tmp_flags ^ QtCore.Qt.ItemIsEditable)
def is_editable(self, tested_col):
return False if tested_col in self.protected_column else True
def addParent(self, parent, title, expanded=False, color=None, font=None):
item = QtWidgets.QTreeWidgetItem(parent, [title])
item.setChildIndicatorPolicy(QtWidgets.QTreeWidgetItem.ShowIndicator)