mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
SyncServer - fix icon showing
Fixed better reaction on changes in Local Settings
This commit is contained in:
parent
bf9151103b
commit
8b1a32b2e2
4 changed files with 39 additions and 14 deletions
|
|
@ -1,6 +1,5 @@
|
|||
import os
|
||||
from Qt import QtCore, QtWidgets, QtGui
|
||||
from avalon.vendor import qtawesome
|
||||
|
||||
from openpype.lib import PypeLogger
|
||||
from openpype.modules.sync_server.tray import lib
|
||||
|
|
@ -15,7 +14,10 @@ class PriorityDelegate(QtWidgets.QStyledItemDelegate):
|
|||
|
||||
if option.widget.selectionModel().isSelected(index) or \
|
||||
option.state & QtWidgets.QStyle.State_MouseOver:
|
||||
edit_icon = qtawesome.icon("fa.edit", color="white")
|
||||
edit_icon = index.data(lib.EditIconRole)
|
||||
if not edit_icon:
|
||||
return
|
||||
|
||||
state = QtGui.QIcon.On
|
||||
mode = QtGui.QIcon.Selected
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ DateRole = QtCore.Qt.UserRole + 6
|
|||
FailedRole = QtCore.Qt.UserRole + 8
|
||||
HeaderNameRole = QtCore.Qt.UserRole + 10
|
||||
FullItemRole = QtCore.Qt.UserRole + 12
|
||||
EditIconRole = QtCore.Qt.UserRole + 14
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
|
|
|
|||
|
|
@ -65,6 +65,14 @@ class _SyncRepresentationModel(QtCore.QAbstractTableModel):
|
|||
def column_filtering(self):
|
||||
return self._column_filtering
|
||||
|
||||
@property
|
||||
def is_running(self):
|
||||
return self._is_running
|
||||
|
||||
@is_running.setter
|
||||
def is_running(self, state):
|
||||
self._is_running = state
|
||||
|
||||
def rowCount(self, _index):
|
||||
return len(self._data)
|
||||
|
||||
|
|
@ -126,7 +134,7 @@ class _SyncRepresentationModel(QtCore.QAbstractTableModel):
|
|||
actually queried (scrolled a couple of times to list more
|
||||
than single page of records)
|
||||
"""
|
||||
if self.is_editing:
|
||||
if self.is_editing or not self.is_running:
|
||||
return
|
||||
self.refresh_started.emit()
|
||||
self.beginResetModel()
|
||||
|
|
@ -422,8 +430,8 @@ class SyncRepresentationSummaryModel(_SyncRepresentationModel):
|
|||
status = attr.ib(default=None)
|
||||
path = attr.ib(default=None)
|
||||
|
||||
def __init__(self, sync_server, header, project=None):
|
||||
super(SyncRepresentationSummaryModel, self).__init__()
|
||||
def __init__(self, sync_server, header, project=None, parent=None):
|
||||
super(SyncRepresentationSummaryModel, self).__init__(parent=parent)
|
||||
self._header = header
|
||||
self._data = []
|
||||
self._project = project
|
||||
|
|
@ -431,13 +439,13 @@ class SyncRepresentationSummaryModel(_SyncRepresentationModel):
|
|||
self._total_records = 0 # how many documents query actually found
|
||||
self._word_filter = None
|
||||
self._column_filtering = {}
|
||||
self._is_running = False
|
||||
|
||||
self.edit_icon = qtawesome.icon("fa.edit", color="white")
|
||||
self.is_editing = False
|
||||
|
||||
self._word_filter = None
|
||||
|
||||
self._initialized = False
|
||||
if not self._project or self._project == lib.DUMMY_PROJECT:
|
||||
return
|
||||
|
||||
|
|
@ -500,6 +508,11 @@ class SyncRepresentationSummaryModel(_SyncRepresentationModel):
|
|||
return ""
|
||||
|
||||
return attr.asdict(item)[self._header[index.column()]]
|
||||
|
||||
if role == lib.EditIconRole:
|
||||
if self.can_edit and header_value in self.EDITABLE_COLUMNS:
|
||||
return self.edit_icon
|
||||
|
||||
if role == Qt.UserRole:
|
||||
return item._id
|
||||
|
||||
|
|
@ -960,10 +973,11 @@ class SyncRepresentationDetailModel(_SyncRepresentationModel):
|
|||
self._total_records = 0 # how many documents query actually found
|
||||
self._word_filter = None
|
||||
self._id = _id
|
||||
self._initialized = False
|
||||
self._column_filtering = {}
|
||||
self._is_running = False
|
||||
|
||||
self.is_editing = False
|
||||
self.edit_icon = qtawesome.icon("fa.edit", color="white")
|
||||
|
||||
self.sync_server = sync_server
|
||||
# TODO think about admin mode
|
||||
|
|
@ -1016,11 +1030,17 @@ class SyncRepresentationDetailModel(_SyncRepresentationModel):
|
|||
return item.status == lib.STATUS[2] and \
|
||||
item.remote_progress < 1
|
||||
|
||||
if role == Qt.DisplayRole:
|
||||
if role in (Qt.DisplayRole, Qt.EditRole):
|
||||
# because of ImageDelegate
|
||||
if header_value in ['remote_site', 'local_site']:
|
||||
return ""
|
||||
|
||||
return attr.asdict(item)[self._header[index.column()]]
|
||||
|
||||
if role == lib.EditIconRole:
|
||||
if self.can_edit and header_value in self.EDITABLE_COLUMNS:
|
||||
return self.edit_icon
|
||||
|
||||
if role == Qt.UserRole:
|
||||
return item._id
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ class _SyncRepresentationWidget(QtWidgets.QWidget):
|
|||
|
||||
_id = self.model.data(index, Qt.UserRole)
|
||||
detail_window = SyncServerDetailWindow(
|
||||
self.sync_server, _id, self.model.project)
|
||||
self.sync_server, _id, self.model.project, parent=self)
|
||||
detail_window.exec()
|
||||
|
||||
def _on_context_menu(self, point):
|
||||
|
|
@ -489,7 +489,8 @@ class SyncRepresentationSummaryWidget(_SyncRepresentationWidget):
|
|||
table_view = QtWidgets.QTableView()
|
||||
headers = [item[0] for item in self.default_widths]
|
||||
|
||||
model = SyncRepresentationSummaryModel(sync_server, headers, project)
|
||||
model = SyncRepresentationSummaryModel(sync_server, headers, project,
|
||||
parent=self)
|
||||
table_view.setModel(model)
|
||||
table_view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
|
||||
table_view.setSelectionMode(
|
||||
|
|
@ -510,10 +511,9 @@ class SyncRepresentationSummaryWidget(_SyncRepresentationWidget):
|
|||
delegate = delegates.ImageDelegate(self)
|
||||
table_view.setItemDelegateForColumn(column, delegate)
|
||||
|
||||
if model.can_edit:
|
||||
column = table_view.model().get_header_index("priority")
|
||||
priority_delegate = delegates.PriorityDelegate(self)
|
||||
table_view.setItemDelegateForColumn(column, priority_delegate)
|
||||
column = table_view.model().get_header_index("priority")
|
||||
priority_delegate = delegates.PriorityDelegate(self)
|
||||
table_view.setItemDelegateForColumn(column, priority_delegate)
|
||||
|
||||
layout = QtWidgets.QVBoxLayout(self)
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
|
|
@ -653,6 +653,8 @@ class SyncRepresentationDetailWidget(_SyncRepresentationWidget):
|
|||
|
||||
model = SyncRepresentationDetailModel(sync_server, headers, _id,
|
||||
project)
|
||||
model.is_running = True
|
||||
|
||||
table_view.setModel(model)
|
||||
table_view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
|
||||
table_view.setSelectionMode(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue