- updated the UI in Geometry Editor

This commit is contained in:
Marius Stanciu
2020-03-01 20:40:07 +02:00
committed by Marius
parent 5b10e9faf0
commit bac37865e9
3 changed files with 48 additions and 19 deletions

View File

@@ -153,6 +153,7 @@ class RadioSet(QtWidgets.QWidget):
class FCTree(QtWidgets.QTreeWidget):
resize_sig = QtCore.pyqtSignal()
def __init__(self, parent=None, columns=2, header_hidden=True, extended_sel=False, protected_column=None):
super(FCTree, self).__init__(parent)
@@ -167,6 +168,8 @@ class FCTree(QtWidgets.QTreeWidget):
self.protected_column = protected_column
self.itemDoubleClicked.connect(self.on_double_click)
self.header().sectionDoubleClicked.connect(self.on_header_double_click)
self.resize_sig.connect(self.on_resize)
def on_double_click(self, item, column):
# from here: https://stackoverflow.com/questions/2801959/making-only-one-column-of-a-qtreewidgetitem-editable
@@ -176,6 +179,13 @@ class FCTree(QtWidgets.QTreeWidget):
elif tmp_flags & QtCore.Qt.ItemIsEditable:
item.setFlags(tmp_flags ^ QtCore.Qt.ItemIsEditable)
def on_header_double_click(self, column):
header = self.header()
header.setSectionResizeMode(column, QtWidgets.QHeaderView.ResizeToContents)
width = header.sectionSize(column)
header.setSectionResizeMode(column, QtWidgets.QHeaderView.Interactive)
header.resizeSection(column, width)
def is_editable(self, tested_col):
return False if tested_col in self.protected_column else True
@@ -228,6 +238,20 @@ class FCTree(QtWidgets.QTreeWidget):
except TypeError:
item.setFont(font_items, font)
def resizeEvent(self, event):
""" Resize all sections to content and user interactive """
super(FCTree, self).resizeEvent(event)
self.on_resize()
def on_resize(self):
header = self.header()
for column in range(header.count()):
header.setSectionResizeMode(column, QtWidgets.QHeaderView.ResizeToContents)
width = header.sectionSize(column)
header.setSectionResizeMode(column, QtWidgets.QHeaderView.Interactive)
header.resizeSection(column, width)
class LengthEntry(QtWidgets.QLineEdit):
def __init__(self, output_units='IN', decimals=None, parent=None):