mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
tree components replaced by components list
This commit is contained in:
parent
1d5a74465f
commit
1570800b7b
2 changed files with 90 additions and 14 deletions
|
|
@ -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)
|
||||
|
|
@ -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))
|
||||
Loading…
Add table
Add a link
Reference in a new issue