moved overlay messages to main window

This commit is contained in:
Jakub Trllo 2022-10-03 12:04:01 +02:00
parent b25102a136
commit dcf9b99995
3 changed files with 28 additions and 12 deletions

View file

@ -413,6 +413,7 @@ class PublisherController:
self._publish_started_callback_refs = set()
self._publish_validated_callback_refs = set()
self._publish_stopped_callback_refs = set()
self._message_emit_callback_refs = set()
self._publish_instance_changed_callback_refs = set()
self._publish_plugin_changed_callback_refs = set()
@ -516,6 +517,12 @@ class PublisherController:
ref = self._create_reference(callback)
self._publish_stopped_callback_refs.add(ref)
def add_message_emitted_callback(self, callback):
"""Callbacks triggered when message is emitted."""
ref = self._create_reference(callback)
self._message_emit_callback_refs.add(ref)
def get_asset_docs(self):
"""Get asset documents from cache for whole project."""
return self._asset_docs_cache.get_asset_docs()
@ -614,6 +621,9 @@ class PublisherController:
self._trigger_callbacks(self._instances_refresh_callback_refs)
def emit_message(self, message):
self._trigger_callbacks(self._message_emit_callback_refs, message)
def get_creator_attribute_definitions(self, instances):
"""Collect creator attribute definitions for multuple instances.

View file

@ -290,7 +290,7 @@ class CreateWidget(QtWidgets.QWidget):
self.setWindowTitle("Create new instance")
self.controller = controller
self._controller = controller
self._asset_name = self.dbcon.Session.get("AVALON_ASSET")
self._task_name = self.dbcon.Session.get("AVALON_TASK")
@ -307,8 +307,6 @@ class CreateWidget(QtWidgets.QWidget):
self._name_pattern = name_pattern
self._compiled_name_pattern = re.compile(name_pattern)
overlay_object = MessageOverlayObject(self)
context_widget = QtWidgets.QWidget(self)
assets_widget = CreateWidgetAssetsWidget(controller, context_widget)
@ -476,8 +474,6 @@ class CreateWidget(QtWidgets.QWidget):
controller.add_plugins_refresh_callback(self._on_plugins_refresh)
self._overlay_object = overlay_object
self._splitter_widget = splitter_widget
self._context_widget = context_widget
@ -509,7 +505,7 @@ class CreateWidget(QtWidgets.QWidget):
self._first_show = True
def _emit_message(self, message):
self._overlay_object.add_message(message)
self._controller.emit_message(message)
def _context_change_is_enabled(self):
return self._context_widget.isEnabled()
@ -537,7 +533,7 @@ class CreateWidget(QtWidgets.QWidget):
@property
def dbcon(self):
return self.controller.dbcon
return self._controller.dbcon
def _set_context_enabled(self, enabled):
self._assets_widget.set_enabled(enabled)
@ -655,7 +651,7 @@ class CreateWidget(QtWidgets.QWidget):
# Add new families
new_creators = set()
for identifier, creator in self.controller.manual_creators.items():
for identifier, creator in self._controller.manual_creators.items():
# TODO add details about creator
new_creators.add(identifier)
if identifier in existing_items:
@ -738,7 +734,7 @@ class CreateWidget(QtWidgets.QWidget):
self._detail_description_input.setMarkdown(detailed_description)
def _set_creator_by_identifier(self, identifier):
creator = self.controller.manual_creators.get(identifier)
creator = self._controller.manual_creators.get(identifier)
self._set_creator(creator)
def _set_creator(self, creator):
@ -822,7 +818,7 @@ class CreateWidget(QtWidgets.QWidget):
self.subset_name_input.setText("< Valid variant >")
return
project_name = self.controller.project_name
project_name = self._controller.project_name
task_name = self._get_task_name()
asset_doc = copy.deepcopy(self._asset_doc)
@ -951,7 +947,7 @@ class CreateWidget(QtWidgets.QWidget):
error_msg = None
formatted_traceback = None
try:
self.controller.create(
self._controller.create(
creator_identifier,
subset_name,
instance_data,

View file

@ -6,8 +6,10 @@ from openpype import (
)
from openpype.tools.utils import (
PlaceholderLineEdit,
PixmapLabel
MessageOverlayObject,
PixmapLabel,
)
from .publish_report_viewer import PublishReportViewerWidget
from .control import PublisherController
from .widgets import (
@ -56,6 +58,8 @@ class PublisherWindow(QtWidgets.QDialog):
controller = PublisherController()
overlay_object = MessageOverlayObject(self)
# Header
header_widget = QtWidgets.QWidget(self)
icon_pixmap = QtGui.QPixmap(resources.get_openpype_icon_filepath())
@ -224,6 +228,7 @@ class PublisherWindow(QtWidgets.QDialog):
controller.add_publish_started_callback(self._on_publish_start)
controller.add_publish_validated_callback(self._on_publish_validated)
controller.add_publish_stopped_callback(self._on_publish_stop)
controller.add_message_emitted_callback(self._on_overlay_message)
# Store header for TrayPublisher
self._header_layout = header_layout
@ -253,6 +258,8 @@ class PublisherWindow(QtWidgets.QDialog):
self._validate_btn = validate_btn
self._publish_btn = publish_btn
self._overlay_object = overlay_object
self._controller = controller
self._first_show = True
@ -276,6 +283,9 @@ class PublisherWindow(QtWidgets.QDialog):
super(PublisherWindow, self).resizeEvent(event)
self._update_publish_frame_rect()
def _on_overlay_message(self, message):
self._overlay_object.add_message(message)
def _on_first_show(self):
self.resize(self.default_width, self.default_height)
self.setStyleSheet(style.load_stylesheet())