Fix - added disabled icon to Site Queue

This commit is contained in:
Petr Kalis 2022-06-03 13:23:51 +02:00
parent 96115fac6e
commit d86c71c15b
5 changed files with 48 additions and 19 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -926,9 +926,22 @@ class SyncServerModule(OpenPypeModule, ITrayModule):
return enabled_projects
def is_project_enabled(self, project_name):
def is_project_enabled(self, project_name, single=False):
"""Checks if 'project_name' is enabled for syncing.
'get_sync_project_setting' is potentially expensive operation (pulls
settings for all projects if cached version is not available), using
project_settings for specific project should be faster.
Args:
project_name (str)
single (bool): use 'get_project_settings' method
"""
if self.enabled:
project_settings = self.get_sync_project_setting(project_name)
if single:
project_settings = get_project_settings(project_name)
project_settings = \
self._parse_sync_settings_from_settings(project_settings)
else:
project_settings = self.get_sync_project_setting(project_name)
if project_settings and project_settings.get("enabled"):
return True
return False

View file

@ -122,11 +122,13 @@ class SyncProjectListWidget(QtWidgets.QWidget):
self._model_reset = False
selected_item = None
for project_name in self.sync_server.sync_project_settings.\
keys():
sync_settings = self.sync_server.sync_project_settings
for project_name in sync_settings.keys():
if self.sync_server.is_paused() or \
self.sync_server.is_project_paused(project_name):
icon = self._get_icon("paused")
elif not sync_settings["enabled"]:
icon = self._get_icon("disabled")
else:
icon = self._get_icon("synced")
@ -578,10 +580,11 @@ class SyncRepresentationSummaryWidget(_SyncRepresentationWidget):
)
def __init__(self, sync_server, project=None, parent=None):
import time
log.info("SyncRepresentationSummaryWidget start")
super(SyncRepresentationSummaryWidget, self).__init__(parent)
self.sync_server = sync_server
self._selected_ids = set() # keep last selected _id
txt_filter = QtWidgets.QLineEdit()
@ -600,8 +603,11 @@ class SyncRepresentationSummaryWidget(_SyncRepresentationWidget):
table_view = QtWidgets.QTableView()
headers = [item[0] for item in self.default_widths]
start_time = time.time()
model = SyncRepresentationSummaryModel(sync_server, headers, project,
parent=self)
log.info("SyncRepresentationSummaryModel:: {}".format(time.time() - start_time))
start_time = time.time()
table_view.setModel(model)
table_view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
table_view.setSelectionMode(
@ -625,7 +631,8 @@ class SyncRepresentationSummaryWidget(_SyncRepresentationWidget):
column = table_view.model().get_header_index("priority")
priority_delegate = delegates.PriorityDelegate(self)
table_view.setItemDelegateForColumn(column, priority_delegate)
log.info("SyncRepresentationSummaryWidget.2:: {}".format(time.time() - start_time))
start_time = time.time()
layout = QtWidgets.QVBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0)
layout.addLayout(top_bar_layout)
@ -633,27 +640,35 @@ class SyncRepresentationSummaryWidget(_SyncRepresentationWidget):
self.table_view = table_view
self.model = model
log.info("SyncRepresentationSummaryWidget.3:: {}".format(time.time() - start_time))
start_time = time.time()
horizontal_header = HorizontalHeader(self)
log.info("SyncRepresentationSummaryWidget.4:: {}".format(time.time() - start_time))
start_time = time.time()
table_view.setHorizontalHeader(horizontal_header)
log.info("SyncRepresentationSummaryWidget.4.1:: {}".format(time.time() - start_time))
start_time = time.time()
table_view.setSortingEnabled(True)
log.info("SyncRepresentationSummaryWidget.5:: {}".format(time.time() - start_time))
start_time = time.time()
for column_name, width in self.default_widths:
idx = model.get_header_index(column_name)
table_view.setColumnWidth(idx, width)
log.info("SyncRepresentationSummaryWidget.6:: {}".format(time.time() - start_time))
start_time = time.time()
table_view.doubleClicked.connect(self._double_clicked)
self.txt_filter.textChanged.connect(lambda: model.set_word_filter(
self.txt_filter.text()))
table_view.customContextMenuRequested.connect(self._on_context_menu)
log.info("SyncRepresentationSummaryWidget.7:: {}".format(time.time() - start_time))
start_time = time.time()
model.refresh_started.connect(self._save_scrollbar)
model.refresh_finished.connect(self._set_scrollbar)
model.modelReset.connect(self._set_selection)
self.selection_model = self.table_view.selectionModel()
self.selection_model.selectionChanged.connect(self._selection_changed)
log.info("SyncRepresentationSummaryWidget.end:: {}".format(time.time() - start_time))
def _prepare_menu(self, local_progress, remote_progress,
is_multi, can_edit, status=None):
@ -963,7 +978,6 @@ class HorizontalHeader(QtWidgets.QHeaderView):
super(HorizontalHeader, self).__init__(QtCore.Qt.Horizontal, parent)
self._parent = parent
self.checked_values = {}
self.setModel(self._parent.model)
self.setSectionsClickable(True)

View file

@ -89,7 +89,7 @@ class BaseRepresentationModel(object):
self._last_manager_cache = now_time
sync_server = self._modules_manager.modules_by_name["sync_server"]
if sync_server.is_project_enabled(project_name):
if sync_server.is_project_enabled(project_name, single=True):
active_site = sync_server.get_active_site(project_name)
active_provider = sync_server.get_provider_for_site(
project_name, active_site)

View file

@ -356,9 +356,10 @@ class SubsetWidget(QtWidgets.QWidget):
enabled = False
if project_name:
self.model.reset_sync_server(project_name)
if self.model.sync_server:
enabled_proj = self.model.sync_server.get_enabled_projects()
enabled = project_name in enabled_proj
sync_server = self.model.sync_server
if sync_server:
enabled = sync_server.is_project_enabled(project_name,
single=True)
lib.change_visibility(self.model, self.view, "repre_info", enabled)
@ -1228,9 +1229,10 @@ class RepresentationWidget(QtWidgets.QWidget):
enabled = False
if project_name:
self.model.reset_sync_server(project_name)
if self.model.sync_server:
enabled_proj = self.model.sync_server.get_enabled_projects()
enabled = project_name in enabled_proj
sync_server = self.model.sync_server
if sync_server:
enabled = sync_server.is_project_enabled(project_name,
single=True)
self.sync_server_enabled = enabled
lib.change_visibility(self.model, self.tree_view,