Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Fix Sync Queue when project disabled #2063

Merged
merged 3 commits into from
Sep 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions openpype/modules/default_modules/sync_server/tray/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,19 +84,29 @@ def __init__(self, sync_server, parent=None):
self.pause_btn.setAutoDefault(False)
self.pause_btn.setDefault(False)
repres.message_generated.connect(self._update_message)
self.projects.message_generated.connect(self._update_message)

self.representationWidget = repres

def _on_project_change(self):
if self.projects.current_project is None:
return

self.representationWidget.table_view.model().set_project(
self.projects.current_project
)

project_name = self.projects.current_project
if not self.sync_server.get_sync_project_setting(project_name):
self.projects.message_generated.emit(
"Project {} not active anymore".format(project_name))
self.projects.refresh()
return

def showEvent(self, event):
self.representationWidget.model.set_project(
self.projects.current_project)
self.projects.refresh()
self._set_running(True)
super().showEvent(event)

Expand Down
4 changes: 4 additions & 0 deletions openpype/modules/default_modules/sync_server/tray/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,10 @@ def set_project(self, project):
"""
self._project = project
self.sync_server.set_sync_project_settings()
# project might have been deactivated in the meantime
if not self.sync_server.get_sync_project_setting(project):
return

self.active_site = self.sync_server.get_active_site(self.project)
self.remote_site = self.sync_server.get_remote_site(self.project)
self.refresh()
Expand Down
11 changes: 8 additions & 3 deletions openpype/modules/default_modules/sync_server/tray/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class SyncProjectListWidget(QtWidgets.QWidget):
Lists all projects that are synchronized to choose from
"""
project_changed = QtCore.Signal()
message_generated = QtCore.Signal(str)

def __init__(self, sync_server, parent):
super(SyncProjectListWidget, self).__init__(parent)
Expand Down Expand Up @@ -65,6 +66,7 @@ def __init__(self, sync_server, parent):
self.current_project = None
self.project_name = None
self.local_site = None
self.remote_site = None
self.icons = {}

def _on_index_change(self, new_idx, _old_idx):
Expand Down Expand Up @@ -99,6 +101,11 @@ def refresh(self):

if project_name:
self.local_site = self.sync_server.get_active_site(project_name)
self.remote_site = self.sync_server.get_remote_site(project_name)

def _can_edit(self):
"""Returns true if some site is user local site, eg. could edit"""
return get_local_site_id() in (self.local_site, self.remote_site)

def _get_icon(self, status):
if not self.icons.get(status):
Expand All @@ -122,9 +129,7 @@ def _on_context_menu(self, point):
menu = QtWidgets.QMenu(self)
actions_mapping = {}

can_edit = self.model.can_edit

if can_edit:
if self._can_edit():
if self.sync_server.is_project_paused(self.project_name):
action = QtWidgets.QAction("Unpause")
actions_mapping[action] = self._unpause
Expand Down