mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
switch dialog can work per project
This commit is contained in:
parent
1776df18e2
commit
5c115ce166
2 changed files with 29 additions and 13 deletions
|
|
@ -46,8 +46,13 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
|
||||
switched = QtCore.Signal()
|
||||
|
||||
def __init__(self, controller, parent=None, items=None):
|
||||
super(SwitchAssetDialog, self).__init__(parent)
|
||||
def __init__(self, controller, project_name, items, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
current_project_name = controller.get_current_project_name()
|
||||
folder_id = None
|
||||
if current_project_name == project_name:
|
||||
folder_id = controller.get_current_folder_id()
|
||||
|
||||
self.setWindowTitle("Switch selected items ...")
|
||||
|
||||
|
|
@ -147,11 +152,10 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
self._init_repre_name = None
|
||||
|
||||
self._fill_check = False
|
||||
self._project_name = project_name
|
||||
self._folder_id = folder_id
|
||||
|
||||
self._project_name = controller.get_current_project_name()
|
||||
self._folder_id = controller.get_current_folder_id()
|
||||
|
||||
self._current_folder_btn.setEnabled(self._folder_id is not None)
|
||||
self._current_folder_btn.setEnabled(folder_id is not None)
|
||||
|
||||
self._controller = controller
|
||||
|
||||
|
|
@ -159,7 +163,7 @@ class SwitchAssetDialog(QtWidgets.QDialog):
|
|||
self._prepare_content_data()
|
||||
|
||||
def showEvent(self, event):
|
||||
super(SwitchAssetDialog, self).showEvent(event)
|
||||
super().showEvent(event)
|
||||
self._show_timer.start()
|
||||
|
||||
def refresh(self, init_refresh=False):
|
||||
|
|
|
|||
|
|
@ -912,14 +912,26 @@ class SceneInventoryView(QtWidgets.QTreeView):
|
|||
|
||||
def _show_switch_dialog(self, item_ids):
|
||||
"""Display Switch dialog"""
|
||||
containers_by_id = self._controller.get_containers_by_item_ids(
|
||||
container_items_by_id = self._controller.get_container_items_by_id(
|
||||
item_ids
|
||||
)
|
||||
dialog = SwitchAssetDialog(
|
||||
self._controller, self, list(containers_by_id.values())
|
||||
)
|
||||
dialog.switched.connect(self.data_changed.emit)
|
||||
dialog.show()
|
||||
container_ids_by_project_name = collections.defaultdict(set)
|
||||
for container_id, container_item in container_items_by_id.values():
|
||||
project_name = container_item.project_name
|
||||
container_ids_by_project_name[project_name].add(container_id)
|
||||
|
||||
for project_name, container_ids in container_ids_by_project_name.items():
|
||||
containers_by_id = self._controller.get_containers_by_item_ids(
|
||||
container_ids
|
||||
)
|
||||
dialog = SwitchAssetDialog(
|
||||
self._controller,
|
||||
project_name,
|
||||
list(containers_by_id.values()),
|
||||
self
|
||||
)
|
||||
dialog.switched.connect(self.data_changed.emit)
|
||||
dialog.show()
|
||||
|
||||
def _show_remove_warning_dialog(self, item_ids):
|
||||
"""Prompt a dialog to inform the user the action will remove items"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue