Skip to content

Commit

Permalink
chore: cleanup setting delegates
Browse files Browse the repository at this point in the history
  • Loading branch information
phil65 committed May 25, 2023
1 parent 099366d commit c4d055d
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 22 deletions.
3 changes: 1 addition & 2 deletions prettyqt/custom_delegates/variantdelegate.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,7 @@ def displayText(self, value, locale: QtCore.QLocale) -> str:
table_widget[i, 0] = item_1
table_widget[i, 1] = item_2

delegate = VariantDelegate(parent=table_widget)
table_widget.set_delegate(delegate, column=1)
table_widget.set_delegate("variant", column=1)

table_widget.resizeColumnsToContents()
table_widget.resize(500, 300)
Expand Down
3 changes: 1 addition & 2 deletions prettyqt/custom_delegates/widgetdelegate.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,7 @@ def flags(self, index):
| constants.IS_SELECTABLE
)

delegate = WidgetDelegate(parent=table_widget)
table_widget.set_delegate(delegate)
table_widget.set_delegate("widget")
model = Model()
table_widget.set_model(model)
table_widget.set_edit_triggers("all")
Expand Down
5 changes: 2 additions & 3 deletions prettyqt/custom_models/fuzzyfiltermodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ def splitPath(self, path):


if __name__ == "__main__":
from prettyqt import custom_delegates, widgets
from prettyqt import widgets
from prettyqt.custom_models import JsonModel

app = widgets.app()
Expand Down Expand Up @@ -186,9 +186,8 @@ def splitPath(self, path):
widget.set_layout("vertical")
lineedit = widgets.LineEdit()
lineedit.value_changed.connect(model.set_search_term)
delegate = custom_delegates.HtmlItemDelegate()
table = widgets.TreeView()
table.setItemDelegateForColumn(1, delegate)
table.set_delegate("html", column=1)
table.setRootIsDecorated(True)
# table.setSortingEnabled(True)
table.set_model(model)
Expand Down
4 changes: 1 addition & 3 deletions prettyqt/custom_models/widgethierarchymodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,6 @@ def hasChildren(self, parent: core.ModelIndex | None = None):

if __name__ == "__main__":
from prettyqt import widgets
from prettyqt.custom_delegates import variantdelegate

app = widgets.app()
view = widgets.TreeView()
Expand All @@ -187,10 +186,9 @@ def hasChildren(self, parent: core.ModelIndex | None = None):

button.clicked.connect(lambda: widget.layout().addWidget(widgets.Label("test")))
model = LayoutHierarchyModel(widget, show_root=True, parent=view)
delegate = variantdelegate.VariantDelegate(parent=view)
view.set_model(model)
view.setEditTriggers(view.EditTrigger.AllEditTriggers)
view.set_delegate(delegate)
view.set_delegate("variant")
view.resize(1000, 1000)
view.show()
widget.show()
Expand Down
4 changes: 1 addition & 3 deletions prettyqt/custom_models/widgetpropertiesmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,18 +98,16 @@ def flags(self, index):

if __name__ == "__main__":
from prettyqt import widgets
from prettyqt.custom_delegates import variantdelegate

app = widgets.app()
view = widgets.TableView()
view.set_icon("mdi.folder")
model = WidgetPropertiesModel(view)
model.dataChanged.connect(view.repaint)
delegate = variantdelegate.VariantDelegate(parent=view)
view.set_model(model)
view.set_selection_behavior("rows")
view.setEditTriggers(view.EditTrigger.AllEditTriggers)
view.set_delegate(delegate, column=1)
view.set_delegate("variant", column=1)
view.show()
view.resize(500, 300)
with app.debug_mode():
Expand Down
4 changes: 1 addition & 3 deletions prettyqt/custom_models/widgetsdetailsmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,15 @@ def flags(self, index):

if __name__ == "__main__":
from prettyqt import widgets
from prettyqt.custom_delegates import variantdelegate

app = widgets.app()
view = widgets.TableView()
view.set_icon("mdi.folder")
items = [widgets.TableWidget(), widgets.TableWidget()]
model = WidgetsDetailsModel(items, parent=view).transpose()
delegate = variantdelegate.VariantDelegate(parent=view)
view.set_model(model)
view.setEditTriggers(view.EditTrigger.AllEditTriggers)
view.set_delegate(delegate)
view.set_delegate("variant")
view.resize(1000, 1000)
with app.debug_mode():
view.show()
Expand Down
4 changes: 2 additions & 2 deletions prettyqt/custom_widgets/commandpalette.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from collections.abc import Sequence
import logging

from prettyqt import constants, core, custom_delegates, custom_models, gui, widgets
from prettyqt import constants, core, custom_models, gui, widgets
from prettyqt.custom_models import actionsmodel
from prettyqt.qt import QtCore, QtGui, QtWidgets
from prettyqt.utils import colors, datatypes
Expand Down Expand Up @@ -51,7 +51,7 @@ def __init__(self, parent: widgets.Widget | None = None) -> None:
self.setModel(self._proxy)
self.h_header.set_resize_mode("stretch")
self.pressed.connect(self._on_clicked)
self.set_delegate(custom_delegates.HtmlItemDelegate(), column=0)
self.set_delegate("html", column=0)
self._match_color = QtGui.QColor("#468cc6")
self.setShowGrid(False)

Expand Down
4 changes: 1 addition & 3 deletions prettyqt/custom_widgets/lineeditfiltercontainer.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,16 +73,14 @@ def set_filter_case_sensitivity(self, sensitivity):

if __name__ == "__main__":
from prettyqt.custom_models import widgetpropertiesmodel
from prettyqt.custom_delegates import variantdelegate

app = widgets.app()
view = widgets.TableView()

model = widgetpropertiesmodel.WidgetPropertiesModel(view.h_header, parent=view)
delegate = variantdelegate.VariantDelegate(parent=view)
view.set_selection_behavior("rows")
view.setEditTriggers(view.EditTrigger.AllEditTriggers)
view.set_delegate(delegate, column=1)
view.set_delegate("variant", column=1)

view.setModel(model)
view.resize(640, 480)
Expand Down
17 changes: 16 additions & 1 deletion prettyqt/widgets/abstractitemview.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,12 +255,26 @@ def move_row_selection(self, dx: int) -> None:

def set_delegate(
self,
delegate: QtWidgets.QAbstractItemDelegate,
delegate: QtWidgets.QAbstractItemDelegate | Literal["widget", "variant", "html"],
*,
column: int | None = None,
row: int | None = None,
persistent: bool = False,
**kwargs,
):
from prettyqt import custom_delegates

match delegate:
case QtWidgets.QAbstractItemDelegate():
pass
case "variant":
delegate = custom_delegates.VariantDelegate(parent=self, **kwargs)
case "widget":
delegate = custom_delegates.WidgetDelegate(parent=self, **kwargs)
case "html":
delegate = custom_delegates.HtmlItemDelegate(parent=self, **kwargs)
case _:
raise ValueError(delegate)
match column, row:
case int(), int():
raise ValueError("Only set column or row, not both.")
Expand All @@ -284,6 +298,7 @@ def set_delegate(
for i in range(model.rowCount()):
for j in range(model.columnCount()):
self.openPersistentEditor(model.index(i, j))
return delegate

def toggle_select_all(self):
"""Select all items from list (deselect when all selected)."""
Expand Down

0 comments on commit c4d055d

Please sign in to comment.