From 7416f54aaf8248aefd14be7ecdd63bde989ec6ec Mon Sep 17 00:00:00 2001 From: David Lai Date: Tue, 11 Jun 2019 18:38:09 +0800 Subject: [PATCH 1/3] Enable to opt out '+' silo tab for Loader GUI --- avalon/tools/cbloader/app.py | 2 +- avalon/tools/projectmanager/widget.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/avalon/tools/cbloader/app.py b/avalon/tools/cbloader/app.py index e46456236..d6eadf779 100644 --- a/avalon/tools/cbloader/app.py +++ b/avalon/tools/cbloader/app.py @@ -37,7 +37,7 @@ def __init__(self, parent=None): container = QtWidgets.QWidget() - assets = AssetWidget() + assets = AssetWidget(silo_creatable=False) families = FamilyListWidget() subsets = SubsetWidget() version = VersionWidget() diff --git a/avalon/tools/projectmanager/widget.py b/avalon/tools/projectmanager/widget.py index 81fab548a..805af3538 100644 --- a/avalon/tools/projectmanager/widget.py +++ b/avalon/tools/projectmanager/widget.py @@ -358,7 +358,7 @@ def clear(self): for i in range(self.count()): self.removeTab(0) - def set_silos(self, silos): + def set_silos(self, silos, creatable=True): current_silo = self.get_current_silo() @@ -372,8 +372,9 @@ def set_silos(self, silos): for silo in sorted(silos): self.addTab(silo) - # Add the "+" tab - self.addTab("+") + if creatable: + # Add the "+" tab + self.addTab("+") self.set_current_silo(current_silo) self.blockSignals(False) @@ -460,7 +461,7 @@ class AssetWidget(QtWidgets.QWidget): selection_changed = QtCore.Signal() # on view selection change current_changed = QtCore.Signal() # on view current index change - def __init__(self, parent=None): + def __init__(self, silo_creatable=True, parent=None): super(AssetWidget, self).__init__(parent=parent) self.setContentsMargins(0, 0, 0, 0) @@ -505,6 +506,7 @@ def __init__(self, parent=None): silo.silo_changed.connect(self._on_silo_changed) refresh.clicked.connect(self.refresh) + self.silo_creatable = silo_creatable self.refreshButton = refresh self.silo = silo self.model = model @@ -535,7 +537,7 @@ def _refresh_model(self): def refresh(self): silos = _list_project_silos() - self.silo.set_silos(silos) + self.silo.set_silos(silos, self.silo_creatable) self._refresh_model() From 05e8c5a214c49c38618a12a841604677cec44a5e Mon Sep 17 00:00:00 2001 From: David Lai Date: Tue, 11 Jun 2019 19:16:54 +0800 Subject: [PATCH 2/3] Disable silo create dialog when it's not creatable --- avalon/tools/projectmanager/widget.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/avalon/tools/projectmanager/widget.py b/avalon/tools/projectmanager/widget.py index 805af3538..cb4b01d98 100644 --- a/avalon/tools/projectmanager/widget.py +++ b/avalon/tools/projectmanager/widget.py @@ -318,8 +318,9 @@ class SiloTabWidget(QtWidgets.QTabBar): silo_changed = QtCore.Signal(str) silo_added = QtCore.Signal(str) - def __init__(self, parent=None): + def __init__(self, silo_creatable=True, parent=None): super(SiloTabWidget, self).__init__(parent=parent) + self.silo_creatable = silo_creatable self._previous_tab_index = -1 self.set_silos([]) @@ -338,7 +339,7 @@ def on_tab_changed(self, index): # If it's the last tab num = self.count() - if index == num - 1: + if self.silo_creatable and index == num - 1: self.on_add_silo() self.setCurrentIndex(self._previous_tab_index) return @@ -358,7 +359,7 @@ def clear(self): for i in range(self.count()): self.removeTab(0) - def set_silos(self, silos, creatable=True): + def set_silos(self, silos): current_silo = self.get_current_silo() @@ -372,7 +373,7 @@ def set_silos(self, silos, creatable=True): for silo in sorted(silos): self.addTab(silo) - if creatable: + if self.silo_creatable: # Add the "+" tab self.addTab("+") @@ -472,7 +473,7 @@ def __init__(self, silo_creatable=True, parent=None): # Header header = QtWidgets.QHBoxLayout() - silo = SiloTabWidget() + silo = SiloTabWidget(silo_creatable=silo_creatable) icon = awesome.icon("fa.refresh", color=style.colors.light) refresh = QtWidgets.QPushButton(icon, "") @@ -506,7 +507,6 @@ def __init__(self, silo_creatable=True, parent=None): silo.silo_changed.connect(self._on_silo_changed) refresh.clicked.connect(self.refresh) - self.silo_creatable = silo_creatable self.refreshButton = refresh self.silo = silo self.model = model @@ -537,7 +537,7 @@ def _refresh_model(self): def refresh(self): silos = _list_project_silos() - self.silo.set_silos(silos, self.silo_creatable) + self.silo.set_silos(silos) self._refresh_model() From 56b00bf33e44ead85938423f2ad023c99c68fe67 Mon Sep 17 00:00:00 2001 From: David Lai Date: Tue, 11 Jun 2019 19:52:40 +0800 Subject: [PATCH 3/3] Opt out '+' silo tab for Context Manager GUI --- avalon/tools/contextmanager/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avalon/tools/contextmanager/app.py b/avalon/tools/contextmanager/app.py index ee6b7c4dd..141713b0c 100644 --- a/avalon/tools/contextmanager/app.py +++ b/avalon/tools/contextmanager/app.py @@ -33,7 +33,7 @@ def __init__(self, parent=None): accept_btn = QtWidgets.QPushButton("Accept") # Asset picker - assets = AssetWidget() + assets = AssetWidget(silo_creatable=False) # Task picker tasks_widgets = QtWidgets.QWidget()