tree components replaced by components list

This commit is contained in:
Jakub Trllo 2019-04-17 14:20:42 +02:00
parent 1d5a74465f
commit 1570800b7b
2 changed files with 90 additions and 14 deletions

View file

@ -0,0 +1,90 @@
from . import QtCore, QtGui, QtWidgets
class ComponentsList(QtWidgets.QTableWidget):
def __init__(self, parent=None):
super().__init__(parent=parent)
self._main_column = 0
self.setColumnCount(1)
self.setSelectionBehavior(
QtWidgets.QAbstractItemView.SelectRows
)
self.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection
)
self.setVerticalScrollMode(
QtWidgets.QAbstractItemView.ScrollPerPixel
)
self.verticalHeader().hide()
try:
self.verticalHeader().setResizeMode(
QtWidgets.QHeaderView.ResizeToContents
)
except Exception:
self.verticalHeader().setSectionResizeMode(
QtWidgets.QHeaderView.ResizeToContents
)
self.horizontalHeader().setStretchLastSection(True)
self.horizontalHeader().hide()
def count(self):
return self.rowCount()
def add_widget(self, widget, row=None):
if row is None:
row = self.count()
self.insertRow(row)
self.setCellWidget(row, self._main_column, widget)
self.resizeRowToContents(row)
return row
def remove_widget(self, row):
self.removeCellWidget(row, self._main_column)
self.removeRow(row)
def move_widget(self, widget, newRow):
oldRow = self.indexOfWidget(widget)
if oldRow:
self.insertRow(newRow)
# Collect the oldRow after insert to make sure we move the correct
# widget.
oldRow = self.indexOfWidget(widget)
self.setCellWidget(newRow, self._main_column, widget)
self.resizeRowToContents(oldRow)
# Remove the old row
self.removeRow(oldRow)
def clear_widgets(self):
'''Remove all widgets.'''
self.clear()
self.setRowCount(0)
def widget_index(self, widget):
index = None
for row in range(self.count()):
candidateWidget = self.widget_at(row)
if candidateWidget == widget:
index = row
break
return index
def widgets(self):
widgets = []
for row in range(self.count()):
widget = self.widget_at(row)
widgets.append(widget)
return widgets
def widget_at(self, row):
return self.cellWidget(row, self._main_column)

View file

@ -1,14 +0,0 @@
from . import QtCore, QtGui, QtWidgets
class TreeComponents(QtWidgets.QTreeWidget):
def __init__(self, parent):
super().__init__(parent)
self.invisibleRootItem().setFlags(QtCore.Qt.ItemIsEnabled)
self.setIndentation(28)
self.headerItem().setText(0, 'Components')
self.setRootIsDecorated(False)
self.itemDoubleClicked.connect(lambda i, c: i.double_clicked(c))