From 48b72d892f7944633bbbc6fe856c6eb54f9d2c86 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 10 Sep 2021 17:03:48 +0200 Subject: [PATCH] action button has icon if action has icon --- openpype/style/style.css | 16 ++++++++++ .../widgets/validations_widget.py | 32 +++++++++++++------ 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/openpype/style/style.css b/openpype/style/style.css index fc0776c10d..52f666068b 100644 --- a/openpype/style/style.css +++ b/openpype/style/style.css @@ -737,6 +737,22 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { font-size: 13pt; } +#ValidationActionButton { + border: 1px solid transparent; + border-radius: 0.2em; + padding: 4px 6px 4px 6px; + background: {color:bg-buttons}; +} + +#ValidationActionButton:hover { + background: {color:bg-button-hover}; + color: {color:font-hover}; +} + +#ValidationActionButton:disabled { + background: {color:bg-buttons-disabled}; +} + #ValidationErrorTitleFrame { background: {color:bg-inputs}; border-left: 4px solid transparent; diff --git a/openpype/tools/new_publisher/widgets/validations_widget.py b/openpype/tools/new_publisher/widgets/validations_widget.py index 08b4039a81..a20890ecd7 100644 --- a/openpype/tools/new_publisher/widgets/validations_widget.py +++ b/openpype/tools/new_publisher/widgets/validations_widget.py @@ -5,7 +5,10 @@ except Exception: from Qt import QtWidgets, QtCore, QtGui -from .widgets import ClickableFrame +from .widgets import ( + ClickableFrame, + IconValuePixmapLabel +) class ValidationErrorInstanceList(QtWidgets.QListView): @@ -142,22 +145,33 @@ class ValidationErrorTitleWidget(QtWidgets.QWidget): self._toggle_instance_btn.setArrowType(QtCore.Qt.RightArrow) -class ActionButton(QtWidgets.QPushButton): +class ActionButton(ClickableFrame): action_clicked = QtCore.Signal(str) def __init__(self, action, parent): super(ActionButton, self).__init__(parent) - action_label = action.label or action.__name__ - self.setText(action_label) - - # TODO handle icons - # action.icon + self.setObjectName("ValidationActionButton") self.action = action - self.clicked.connect(self._on_click) - def _on_click(self): + action_label = action.label or action.__name__ + action_icon = getattr(action, "icon", None) + label_widget = QtWidgets.QLabel(action_label, self) + if action_icon: + icon_label = IconValuePixmapLabel(action_icon, self) + + layout = QtWidgets.QHBoxLayout(self) + layout.setContentsMargins(5, 0, 5, 0) + layout.addWidget(label_widget, 1) + layout.addWidget(icon_label, 0) + + self.setSizePolicy( + QtWidgets.QSizePolicy.Minimum, + self.sizePolicy().verticalPolicy() + ) + + def _mouse_release_callback(self): self.action_clicked.emit(self.action.id)