From 2a24a64f820dd7b99f9c06679d1456ff6081aad4 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Wed, 26 Jun 2024 21:16:41 +0200 Subject: [PATCH] feat(general_gui): set icons; links moved to separate script --- .../examples/general_app/general_app.py | 39 +- .../examples/general_app/general_app.ui | 756 +++++++++--------- bec_widgets/examples/general_app/web_links.py | 15 + 3 files changed, 411 insertions(+), 399 deletions(-) create mode 100644 bec_widgets/examples/general_app/web_links.py diff --git a/bec_widgets/examples/general_app/general_app.py b/bec_widgets/examples/general_app/general_app.py index 0465f007..b2a80042 100644 --- a/bec_widgets/examples/general_app/general_app.py +++ b/bec_widgets/examples/general_app/general_app.py @@ -1,29 +1,16 @@ import os import sys -import webbrowser import qdarktheme +from PySide6.QtWidgets import QStyle from qtpy.QtCore import QSize from qtpy.QtGui import QIcon from qtpy.QtWidgets import QApplication, QMainWindow +from bec_widgets.examples.general_app.web_links import BECWebLinksMixin from bec_widgets.utils.ui_loader import UILoader -class BECWebLinksMixin: - @staticmethod - def open_bec_docs(): - webbrowser.open("https://beamline-experiment-control.readthedocs.io/en/latest/") - - @staticmethod - def open_bec_widgets_docs(): - webbrowser.open("https://bec.readthedocs.io/projects/bec-widgets/en/latest/") - - @staticmethod - def open_bec_bug_report(): - webbrowser.open("https://gitlab.psi.ch/groups/bec/-/issues/") - - class BECGeneralApp(QMainWindow): def __init__(self, parent=None): super(BECGeneralApp, self).__init__(parent) @@ -35,18 +22,36 @@ class BECGeneralApp(QMainWindow): self.ini_ui() def ini_ui(self): - self._hook_menubar() + self._setup_icons() + self._hook_menubar_docs() def load_ui(self, ui_file): loader = UILoader(self) self.ui = loader.loader(ui_file) self.setCentralWidget(self.ui) - def _hook_menubar(self): + def _hook_menubar_docs(self): + # BEC Docs self.ui.action_BEC_docs.triggered.connect(BECWebLinksMixin.open_bec_docs) + # BEC Widgets Docs self.ui.action_BEC_widgets_docs.triggered.connect(BECWebLinksMixin.open_bec_widgets_docs) + # Bug report self.ui.action_bug_report.triggered.connect(BECWebLinksMixin.open_bec_bug_report) + def change_theme(self, theme): + qdarktheme.setup_theme(theme) + + def _setup_icons(self): + help_icon = QApplication.style().standardIcon(QStyle.SP_MessageBoxQuestion) + bug_icon = QApplication.style().standardIcon(QStyle.SP_MessageBoxInformation) + computer_icon = QIcon.fromTheme("computer") + + self.ui.action_BEC_docs.setIcon(help_icon) + self.ui.action_BEC_widgets_docs.setIcon(help_icon) + self.ui.action_bug_report.setIcon(bug_icon) + + self.ui.central_tab.setTabIcon(0, computer_icon) # Set icon for the first tab + def main(): # pragma: no cover from qtpy import PYSIDE6 diff --git a/bec_widgets/examples/general_app/general_app.ui b/bec_widgets/examples/general_app/general_app.ui index 0ced6c1f..ec653923 100644 --- a/bec_widgets/examples/general_app/general_app.ui +++ b/bec_widgets/examples/general_app/general_app.ui @@ -1,388 +1,380 @@ - MainWindow - - - - 0 - 0 - 1312 - 1012 - + MainWindow + + + + 0 + 0 + 1718 + 1139 + + + + MainWindow + + + QTabWidget::TabShape::Rounded + + + + + + + 0 + + + + + + + Visual Studio Code + + + + + + + + + + Tab 2 + + + + + + + + + + 0 + 0 + 1718 + 24 + + + + + Help + + + + + + + + Theme + + + + + + + + + + + Scan Control + + + 2 + + + + + + + + + + + + BEC Service Status + + + 2 + + + + + + + + 1 - - MainWindow + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - QTabWidget::TabShape::Rounded + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - 0 - - - - - - - Visual Studio Code - - - - - - - - - - Tab 2 - - - - - - - - - - 0 - 0 - 1312 - 24 - - - - - Help - - - - - - - - - - - Scan Control - - - 2 - - - - - - - - - - - - BEC Service Status - - - 2 - - - - - - - - 1 - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable - - - - - - - - - - - - Scan Queue - - - 2 - - - - - - - - - - - - - - - - - - - - - - - BEC Docs - - - - - - - - BEC Widgets Docs - - - - - - - - Bug Report - - - - - - BECQueue - QTableWidget -
bec_queue
-
- - ScanControl - QWidget -
scan_control
-
- - VSCodeEditor - QWebEngineView -
vscode
-
- - BECStatusBox - QTreeWidget -
bec_status_box
-
- - QWebEngineView - -
QtWebEngineWidgets/QWebEngineView
-
-
- - + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + +
+ + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + + + ItemIsSelectable|ItemIsDragEnabled|ItemIsDropEnabled|ItemIsUserCheckable + + + +
+
+
+
+
+ + + Scan Queue + + + 2 + + + + + + + + + + + + + + + + + + + + + + + BEC Docs + + + + + + + + BEC Widgets Docs + + + + + + + + Bug Report + + + + + true + + + Light + + + + + true + + + Dark + + +
+ + + BECQueue + QTableWidget +
bec_queue
+
+ + ScanControl + QWidget +
scan_control
+
+ + VSCodeEditor + QWebEngineView +
vscode
+
+ + BECStatusBox + QTreeWidget +
bec_status_box
+
+ + QWebEngineView + +
QtWebEngineWidgets/QWebEngineView
+
+
+ +
diff --git a/bec_widgets/examples/general_app/web_links.py b/bec_widgets/examples/general_app/web_links.py new file mode 100644 index 00000000..619e6d1e --- /dev/null +++ b/bec_widgets/examples/general_app/web_links.py @@ -0,0 +1,15 @@ +import webbrowser + + +class BECWebLinksMixin: + @staticmethod + def open_bec_docs(): + webbrowser.open("https://beamline-experiment-control.readthedocs.io/en/latest/") + + @staticmethod + def open_bec_widgets_docs(): + webbrowser.open("https://bec.readthedocs.io/projects/bec-widgets/en/latest/") + + @staticmethod + def open_bec_bug_report(): + webbrowser.open("https://gitlab.psi.ch/groups/bec/-/issues/")