mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge pull request #3937 from pypeclub/bugfix/file_attr_def_multivalue
AttributeDefs: Fix crashing multivalue of files widget
This commit is contained in:
commit
e693ecaf01
1 changed files with 14 additions and 2 deletions
|
|
@ -283,6 +283,15 @@ class FilesModel(QtGui.QStandardItemModel):
|
|||
if not items:
|
||||
return
|
||||
|
||||
if self._multivalue:
|
||||
_items = []
|
||||
for item in items:
|
||||
if isinstance(item, (tuple, list, set)):
|
||||
_items.extend(item)
|
||||
else:
|
||||
_items.append(item)
|
||||
items = _items
|
||||
|
||||
file_items = FileDefItem.from_value(items, self._allow_sequences)
|
||||
if not file_items:
|
||||
return
|
||||
|
|
@ -615,6 +624,7 @@ class FilesView(QtWidgets.QListView):
|
|||
self.customContextMenuRequested.connect(self._on_context_menu_request)
|
||||
|
||||
self._remove_btn = remove_btn
|
||||
self._multivalue = False
|
||||
|
||||
def setSelectionModel(self, *args, **kwargs):
|
||||
"""Catch selection model set to register signal callback.
|
||||
|
|
@ -629,12 +639,13 @@ class FilesView(QtWidgets.QListView):
|
|||
def set_multivalue(self, multivalue):
|
||||
"""Disable remove button on multivalue."""
|
||||
|
||||
self._multivalue = multivalue
|
||||
self._remove_btn.setVisible(not multivalue)
|
||||
|
||||
def update_remove_btn_visibility(self):
|
||||
model = self.model()
|
||||
visible = False
|
||||
if model:
|
||||
if not self._multivalue and model:
|
||||
visible = model.rowCount() > 0
|
||||
self._remove_btn.setVisible(visible)
|
||||
|
||||
|
|
@ -749,12 +760,13 @@ class FilesWidget(QtWidgets.QFrame):
|
|||
self._layout = layout
|
||||
|
||||
def _set_multivalue(self, multivalue):
|
||||
if self._multivalue == multivalue:
|
||||
if self._multivalue is multivalue:
|
||||
return
|
||||
self._multivalue = multivalue
|
||||
self._files_view.set_multivalue(multivalue)
|
||||
self._files_model.set_multivalue(multivalue)
|
||||
self._files_proxy_model.set_multivalue(multivalue)
|
||||
self.setEnabled(not multivalue)
|
||||
|
||||
def set_value(self, value, multivalue):
|
||||
self._in_set_value = True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue