mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 08:54:53 +01:00
added callback on family change and cache selected creator
This commit is contained in:
parent
38251d7021
commit
2427add562
1 changed files with 34 additions and 0 deletions
|
|
@ -109,6 +109,7 @@ class CreateDialog(QtWidgets.QDialog):
|
|||
self._last_pos = None
|
||||
self._asset_doc = None
|
||||
self._subset_names = None
|
||||
self._selected_creator = None
|
||||
|
||||
self._prereq_available = False
|
||||
family_view = QtWidgets.QListView(self)
|
||||
|
|
@ -165,6 +166,9 @@ class CreateDialog(QtWidgets.QDialog):
|
|||
layout.addWidget(create_btn, 0)
|
||||
|
||||
create_btn.clicked.connect(self._on_create)
|
||||
family_view.selectionModel().currentChanged.connect(
|
||||
self._on_family_change
|
||||
)
|
||||
variant_hints_menu.triggered.connect(self._on_variant_action)
|
||||
|
||||
controller.add_reset_callback(self._on_control_reset)
|
||||
|
|
@ -274,6 +278,36 @@ class CreateDialog(QtWidgets.QDialog):
|
|||
def _on_control_reset(self):
|
||||
self.refresh()
|
||||
|
||||
def _on_family_change(self, new_index, old_index):
|
||||
family = None
|
||||
if new_index.isValid():
|
||||
family = new_index.data(QtCore.Qt.DisplayRole)
|
||||
|
||||
creator = self.controller.creators.get(family)
|
||||
self._selected_creator = creator
|
||||
if not creator:
|
||||
return
|
||||
|
||||
default_variants = creator.get_default_variants()
|
||||
if not default_variants:
|
||||
default_variants = ["Main"]
|
||||
|
||||
default_variant = creator.get_default_variant()
|
||||
if not default_variant:
|
||||
default_variant = default_variants[0]
|
||||
|
||||
for action in tuple(self.variant_hints_menu.actions()):
|
||||
self.variant_hints_menu.removeAction(action)
|
||||
action.deleteLater()
|
||||
|
||||
for variant in default_variants:
|
||||
if variant in SEPARATORS:
|
||||
self.variant_hints_menu.addSeparator()
|
||||
elif variant:
|
||||
self.variant_hints_menu.addAction(variant)
|
||||
|
||||
self.variant_input.setText(default_variant or "Main")
|
||||
|
||||
def _on_variant_action(self, action):
|
||||
value = action.text()
|
||||
if self.variant_input.text() != value:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue