mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
moved sync server module
This commit is contained in:
parent
6fb0d1fece
commit
224273c1f1
21 changed files with 0 additions and 0 deletions
|
|
@ -1,132 +0,0 @@
|
|||
from Qt import QtWidgets, QtCore, QtGui
|
||||
|
||||
from openpype.tools.settings import style
|
||||
|
||||
from openpype.lib import PypeLogger
|
||||
from openpype import resources
|
||||
|
||||
from .widgets import (
|
||||
SyncProjectListWidget,
|
||||
SyncRepresentationSummaryWidget
|
||||
)
|
||||
|
||||
log = PypeLogger().get_logger("SyncServer")
|
||||
|
||||
|
||||
class SyncServerWindow(QtWidgets.QDialog):
|
||||
"""
|
||||
Main window that contains list of synchronizable projects and summary
|
||||
view with all synchronizable representations for first project
|
||||
"""
|
||||
|
||||
def __init__(self, sync_server, parent=None):
|
||||
super(SyncServerWindow, self).__init__(parent)
|
||||
self.sync_server = sync_server
|
||||
self.setWindowFlags(QtCore.Qt.Window)
|
||||
self.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
|
||||
self.setStyleSheet(style.load_stylesheet())
|
||||
self.setWindowIcon(QtGui.QIcon(resources.pype_icon_filepath()))
|
||||
self.resize(1450, 700)
|
||||
|
||||
self.timer = QtCore.QTimer()
|
||||
self.timer.timeout.connect(self._hide_message)
|
||||
|
||||
body = QtWidgets.QWidget(self)
|
||||
footer = QtWidgets.QWidget(self)
|
||||
footer.setFixedHeight(20)
|
||||
|
||||
left_column = QtWidgets.QWidget(body)
|
||||
left_column_layout = QtWidgets.QVBoxLayout(left_column)
|
||||
|
||||
self.projects = SyncProjectListWidget(sync_server, self)
|
||||
self.projects.refresh() # force selection of default
|
||||
left_column_layout.addWidget(self.projects)
|
||||
self.pause_btn = QtWidgets.QPushButton("Pause server")
|
||||
|
||||
left_column_layout.addWidget(self.pause_btn)
|
||||
|
||||
repres = SyncRepresentationSummaryWidget(
|
||||
sync_server,
|
||||
project=self.projects.current_project,
|
||||
parent=self)
|
||||
container = QtWidgets.QWidget()
|
||||
container_layout = QtWidgets.QHBoxLayout(container)
|
||||
container_layout.setContentsMargins(0, 0, 0, 0)
|
||||
split = QtWidgets.QSplitter()
|
||||
split.addWidget(left_column)
|
||||
split.addWidget(repres)
|
||||
split.setSizes([180, 950, 200])
|
||||
container_layout.addWidget(split)
|
||||
|
||||
body_layout = QtWidgets.QHBoxLayout(body)
|
||||
body_layout.addWidget(container)
|
||||
body_layout.setContentsMargins(0, 0, 0, 0)
|
||||
|
||||
self.message = QtWidgets.QLabel(footer)
|
||||
self.message.hide()
|
||||
|
||||
footer_layout = QtWidgets.QVBoxLayout(footer)
|
||||
footer_layout.addWidget(self.message)
|
||||
footer_layout.setContentsMargins(20, 0, 0, 0)
|
||||
|
||||
layout = QtWidgets.QVBoxLayout(self)
|
||||
layout.addWidget(body)
|
||||
layout.addWidget(footer)
|
||||
|
||||
self.setWindowTitle("Sync Queue")
|
||||
|
||||
self.projects.project_changed.connect(
|
||||
lambda: repres.table_view.model().set_project(
|
||||
self.projects.current_project))
|
||||
|
||||
self.pause_btn.clicked.connect(self._pause)
|
||||
self.pause_btn.setAutoDefault(False)
|
||||
self.pause_btn.setDefault(False)
|
||||
repres.message_generated.connect(self._update_message)
|
||||
|
||||
self.representationWidget = repres
|
||||
|
||||
def showEvent(self, event):
|
||||
self.representationWidget.model.set_project(
|
||||
self.projects.current_project)
|
||||
self._set_running(True)
|
||||
super().showEvent(event)
|
||||
|
||||
def closeEvent(self, event):
|
||||
self._set_running(False)
|
||||
super().closeEvent(event)
|
||||
|
||||
def _set_running(self, running):
|
||||
self.representationWidget.model.is_running = running
|
||||
self.representationWidget.model.timer.setInterval(0)
|
||||
|
||||
def _pause(self):
|
||||
if self.sync_server.is_paused():
|
||||
self.sync_server.unpause_server()
|
||||
self.pause_btn.setText("Pause server")
|
||||
else:
|
||||
self.sync_server.pause_server()
|
||||
self.pause_btn.setText("Unpause server")
|
||||
self.projects.refresh()
|
||||
|
||||
def _update_message(self, value):
|
||||
"""
|
||||
Update and show message in the footer
|
||||
"""
|
||||
self.message.setText(value)
|
||||
if self.message.isVisible():
|
||||
self.message.repaint()
|
||||
else:
|
||||
self.message.show()
|
||||
msec_delay = 3000
|
||||
self.timer.start(msec_delay)
|
||||
|
||||
def _hide_message(self):
|
||||
"""
|
||||
Hide message in footer
|
||||
|
||||
Called automatically by self.timer after a while
|
||||
"""
|
||||
self.message.setText("")
|
||||
self.message.hide()
|
||||
Loading…
Add table
Add a link
Reference in a new issue