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

Commit

Permalink
Merge pull request #2063 from pypeclub/feature/project-archive-state
Browse files Browse the repository at this point in the history
Fix Sync Queue when project disabled
  • Loading branch information
kalisp authored Sep 24, 2021
2 parents 2921bc6 + 85ae0b4 commit 630f804
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 3 deletions.
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

0 comments on commit 630f804

Please sign in to comment.