mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge pull request #2063 from pypeclub/feature/project-archive-state
Fix Sync Queue when project disabled
This commit is contained in:
commit
630f804c95
3 changed files with 22 additions and 3 deletions
|
|
@ -84,19 +84,29 @@ class SyncServerWindow(QtWidgets.QDialog):
|
|||
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)
|
||||
|
||||
|
|
|
|||
|
|
@ -301,6 +301,10 @@ class _SyncRepresentationModel(QtCore.QAbstractTableModel):
|
|||
"""
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -65,6 +66,7 @@ class SyncProjectListWidget(QtWidgets.QWidget):
|
|||
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):
|
||||
|
|
@ -99,6 +101,11 @@ class SyncProjectListWidget(QtWidgets.QWidget):
|
|||
|
||||
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):
|
||||
|
|
@ -122,9 +129,7 @@ class SyncProjectListWidget(QtWidgets.QWidget):
|
|||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue