mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
added details to window
This commit is contained in:
parent
5857c01442
commit
55e4aa3c76
4 changed files with 86 additions and 53 deletions
|
|
@ -13,6 +13,7 @@ from .publish_widget import PublishFrame
|
|||
from .tabs_widget import PublisherTabsWidget
|
||||
from .overview_widget import CreateOverviewWidget
|
||||
|
||||
|
||||
__all__ = (
|
||||
"get_icon_path",
|
||||
"get_pixmap",
|
||||
|
|
|
|||
|
|
@ -443,6 +443,7 @@ class CreateWidget(QtWidgets.QWidget):
|
|||
splitter_widget.setStretchFactor(3, 1)
|
||||
|
||||
layout = QtWidgets.QHBoxLayout(self)
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
layout.addWidget(splitter_widget, 1)
|
||||
|
||||
prereq_timer = QtCore.QTimer()
|
||||
|
|
|
|||
|
|
@ -85,12 +85,7 @@ class CreateOverviewWidget(QtWidgets.QFrame):
|
|||
|
||||
# Subset frame layout
|
||||
main_layout = QtWidgets.QVBoxLayout(self)
|
||||
marings = main_layout.contentsMargins()
|
||||
marings.setLeft(marings.left() * 2)
|
||||
marings.setRight(marings.right() * 2)
|
||||
marings.setTop(marings.top() * 2)
|
||||
marings.setBottom(0)
|
||||
main_layout.setContentsMargins(marings)
|
||||
main_layout.setContentsMargins(0, 0, 0, 0)
|
||||
main_layout.addWidget(subset_content_widget, 1)
|
||||
|
||||
# --- Calbacks for instances/subsets view ---
|
||||
|
|
@ -137,7 +132,7 @@ class CreateOverviewWidget(QtWidgets.QFrame):
|
|||
self._current_state = "create"
|
||||
subset_attributes_wrap.setVisible(False)
|
||||
|
||||
def set_state(self, old_state, new_state):
|
||||
def set_state(self, new_state, animate):
|
||||
if new_state == self._current_state:
|
||||
return
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from openpype.tools.utils import (
|
|||
PlaceholderLineEdit,
|
||||
PixmapLabel
|
||||
)
|
||||
from .publish_report_viewer import PublishReportViewerWidget
|
||||
from .control import PublisherController
|
||||
from .widgets import (
|
||||
CreateOverviewWidget,
|
||||
|
|
@ -79,13 +80,6 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
tabs_widget.add_tab("Report", "report")
|
||||
tabs_widget.add_tab("Details", "details")
|
||||
|
||||
# Content
|
||||
content_stacked_widget = QtWidgets.QWidget(self)
|
||||
|
||||
create_overview_widget = CreateOverviewWidget(
|
||||
controller, content_stacked_widget
|
||||
)
|
||||
|
||||
# Footer
|
||||
footer_widget = QtWidgets.QWidget(self)
|
||||
footer_bottom_widget = QtWidgets.QWidget(footer_widget)
|
||||
|
|
@ -113,17 +107,45 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
footer_layout.addWidget(comment_input, 0)
|
||||
footer_layout.addWidget(footer_bottom_widget, 0)
|
||||
|
||||
# Content
|
||||
# - wrap stacked widget under one more widget to be able propagate
|
||||
# margins (QStackedLayout can't have margins)
|
||||
content_widget = QtWidgets.QWidget(self)
|
||||
|
||||
content_stacked_widget = QtWidgets.QWidget(content_widget)
|
||||
|
||||
content_layout = QtWidgets.QVBoxLayout(content_widget)
|
||||
marings = content_layout.contentsMargins()
|
||||
marings.setLeft(marings.left() * 2)
|
||||
marings.setRight(marings.right() * 2)
|
||||
marings.setTop(marings.top() * 2)
|
||||
marings.setBottom(0)
|
||||
content_layout.setContentsMargins(marings)
|
||||
content_layout.addWidget(content_stacked_widget, 1)
|
||||
|
||||
# Overview - create and attributes part
|
||||
overview_widget = CreateOverviewWidget(
|
||||
controller, content_stacked_widget
|
||||
)
|
||||
|
||||
# Details - Publish details
|
||||
publish_details_widget = PublishReportViewerWidget(
|
||||
content_stacked_widget
|
||||
)
|
||||
|
||||
# Create publish frame
|
||||
publish_frame = PublishFrame(controller, content_stacked_widget)
|
||||
|
||||
content_stacked_layout = QtWidgets.QStackedLayout(
|
||||
content_stacked_widget
|
||||
)
|
||||
|
||||
content_stacked_layout.setContentsMargins(0, 0, 0, 0)
|
||||
content_stacked_layout.setStackingMode(
|
||||
QtWidgets.QStackedLayout.StackAll
|
||||
)
|
||||
content_stacked_layout.addWidget(create_overview_widget)
|
||||
content_stacked_layout.addWidget(overview_widget)
|
||||
content_stacked_layout.addWidget(publish_details_widget)
|
||||
content_stacked_layout.addWidget(publish_frame)
|
||||
|
||||
# Add main frame to this window
|
||||
|
|
@ -132,17 +154,17 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
main_layout.setSpacing(0)
|
||||
main_layout.addWidget(header_widget, 0)
|
||||
main_layout.addWidget(tabs_widget, 0)
|
||||
main_layout.addWidget(content_stacked_widget, 1)
|
||||
main_layout.addWidget(content_widget, 1)
|
||||
main_layout.addWidget(footer_widget, 0)
|
||||
|
||||
tabs_widget.tab_changed.connect(self._on_tab_change)
|
||||
create_overview_widget.active_changed.connect(
|
||||
overview_widget.active_changed.connect(
|
||||
self._on_context_or_active_change
|
||||
)
|
||||
create_overview_widget.instance_context_changed.connect(
|
||||
overview_widget.instance_context_changed.connect(
|
||||
self._on_context_or_active_change
|
||||
)
|
||||
create_overview_widget.create_requested.connect(
|
||||
overview_widget.create_requested.connect(
|
||||
self._on_create_request
|
||||
)
|
||||
|
||||
|
|
@ -164,18 +186,20 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
self._create_tab = create_tab
|
||||
|
||||
self._content_stacked_widget = content_stacked_widget
|
||||
self.content_stacked_layout = content_stacked_layout
|
||||
self._create_overview_widget = create_overview_widget
|
||||
self.publish_frame = publish_frame
|
||||
self._content_stacked_layout = content_stacked_layout
|
||||
|
||||
self.context_label = context_label
|
||||
self._overview_widget = overview_widget
|
||||
self._publish_details_widget = publish_details_widget
|
||||
self._publish_frame = publish_frame
|
||||
|
||||
self.comment_input = comment_input
|
||||
self._context_label = context_label
|
||||
|
||||
self.stop_btn = stop_btn
|
||||
self.reset_btn = reset_btn
|
||||
self.validate_btn = validate_btn
|
||||
self.publish_btn = publish_btn
|
||||
self._comment_input = comment_input
|
||||
|
||||
self._stop_btn = stop_btn
|
||||
self._reset_btn = reset_btn
|
||||
self._validate_btn = validate_btn
|
||||
self._publish_btn = publish_btn
|
||||
|
||||
self._controller = controller
|
||||
|
||||
|
|
@ -200,11 +224,23 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
self._controller.reset()
|
||||
|
||||
def set_context_label(self, label):
|
||||
self.context_label.setText(label)
|
||||
self._context_label.setText(label)
|
||||
|
||||
def _on_tab_change(self, prev_tab, new_tab):
|
||||
def _on_tab_change(self, old_tab, new_tab):
|
||||
if new_tab in ("create", "publish"):
|
||||
self._create_overview_widget.set_state(prev_tab, new_tab)
|
||||
animate = True
|
||||
if old_tab not in ("create", "publish"):
|
||||
animate = False
|
||||
self._content_stacked_layout.setCurrentWidget(
|
||||
self._overview_widget
|
||||
)
|
||||
self._overview_widget.set_state(new_tab, animate)
|
||||
|
||||
elif new_tab == "details":
|
||||
self._content_stacked_layout.setCurrentWidget(
|
||||
self._publish_details_widget
|
||||
)
|
||||
|
||||
|
||||
# TODO handle rest of conditions
|
||||
|
||||
|
|
@ -219,10 +255,10 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
|
||||
def _set_publish_visibility(self, visible):
|
||||
if visible:
|
||||
widget = self.publish_frame
|
||||
widget = self._publish_frame
|
||||
else:
|
||||
widget = self._create_overview_widget
|
||||
self.content_stacked_layout.setCurrentWidget(widget)
|
||||
widget = self._overview_widget
|
||||
self._content_stacked_layout.setCurrentWidget(widget)
|
||||
|
||||
def _on_reset_clicked(self):
|
||||
self._controller.reset()
|
||||
|
|
@ -234,7 +270,7 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
if self._controller.publish_comment_is_set:
|
||||
return
|
||||
|
||||
comment = self.comment_input.text()
|
||||
comment = self._comment_input.text()
|
||||
self._controller.set_comment(comment)
|
||||
|
||||
def _on_validate_clicked(self):
|
||||
|
|
@ -248,40 +284,40 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
self._controller.publish()
|
||||
|
||||
def _set_footer_enabled(self, enabled):
|
||||
self.reset_btn.setEnabled(True)
|
||||
self._reset_btn.setEnabled(True)
|
||||
if enabled:
|
||||
self.stop_btn.setEnabled(False)
|
||||
self.validate_btn.setEnabled(True)
|
||||
self.publish_btn.setEnabled(True)
|
||||
self._stop_btn.setEnabled(False)
|
||||
self._validate_btn.setEnabled(True)
|
||||
self._publish_btn.setEnabled(True)
|
||||
else:
|
||||
self.stop_btn.setEnabled(enabled)
|
||||
self.validate_btn.setEnabled(enabled)
|
||||
self.publish_btn.setEnabled(enabled)
|
||||
self._stop_btn.setEnabled(enabled)
|
||||
self._validate_btn.setEnabled(enabled)
|
||||
self._publish_btn.setEnabled(enabled)
|
||||
|
||||
def _on_publish_reset(self):
|
||||
self._create_tab.setEnabled(True)
|
||||
self.comment_input.setVisible(True)
|
||||
self._comment_input.setVisible(True)
|
||||
self._set_publish_visibility(False)
|
||||
|
||||
self._set_footer_enabled(False)
|
||||
|
||||
def _on_publish_start(self):
|
||||
self.reset_btn.setEnabled(False)
|
||||
self.stop_btn.setEnabled(True)
|
||||
self.validate_btn.setEnabled(False)
|
||||
self.publish_btn.setEnabled(False)
|
||||
self._reset_btn.setEnabled(False)
|
||||
self._stop_btn.setEnabled(True)
|
||||
self._validate_btn.setEnabled(False)
|
||||
self._publish_btn.setEnabled(False)
|
||||
|
||||
self.comment_input.setVisible(False)
|
||||
self._comment_input.setVisible(False)
|
||||
self._create_tab.setEnabled(False)
|
||||
if self._tabs_widget.is_current_tab(self._create_tab):
|
||||
self._tabs_widget.set_current_tab("publish")
|
||||
|
||||
def _on_publish_validated(self):
|
||||
self.validate_btn.setEnabled(False)
|
||||
self._validate_btn.setEnabled(False)
|
||||
|
||||
def _on_publish_stop(self):
|
||||
self.reset_btn.setEnabled(True)
|
||||
self.stop_btn.setEnabled(False)
|
||||
self._reset_btn.setEnabled(True)
|
||||
self._stop_btn.setEnabled(False)
|
||||
validate_enabled = not self._controller.publish_has_crashed
|
||||
publish_enabled = not self._controller.publish_has_crashed
|
||||
if validate_enabled:
|
||||
|
|
@ -296,8 +332,8 @@ class PublisherWindow(QtWidgets.QDialog):
|
|||
else:
|
||||
publish_enabled = not self._controller.publish_has_finished
|
||||
|
||||
self.validate_btn.setEnabled(validate_enabled)
|
||||
self.publish_btn.setEnabled(publish_enabled)
|
||||
self._validate_btn.setEnabled(validate_enabled)
|
||||
self._publish_btn.setEnabled(publish_enabled)
|
||||
|
||||
def _validate_create_instances(self):
|
||||
if not self._controller.host_is_valid:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue