diff --git a/src/pymmcore_gui/_main_window.py b/src/pymmcore_gui/_main_window.py index a885badc..17ff7bd7 100644 --- a/src/pymmcore_gui/_main_window.py +++ b/src/pymmcore_gui/_main_window.py @@ -55,6 +55,25 @@ RESOURCES = Path(__file__).parent / "resources" ICON = RESOURCES / ("icon.ico" if sys.platform.startswith("win") else "logo.png") +SS_TOOLBUTTON = """ + QToolButton { + min-height: 35px; + max-height: 35px; + } + QToolButton:checked { + background-color: rgba(0, 174, 0, 255); + border: 2px solid rgba(0, 174, 0, 255); + } + QToolButton:checked:hover { + background-color: rgba(0, 174, 0, 80); + border: 2px solid rgba(0, 174, 0, 80); + } + QToolButton:!checked:hover { + background-color: rgba(0, 174, 0, 80); + border: 2px solid rgba(0, 174, 0, 100); + } +""" + class Menu(str, Enum): """Menu names.""" @@ -95,11 +114,12 @@ class MicroManagerGUI(QMainWindow): Toolbar.OPTICAL_CONFIGS: OCToolBar, Toolbar.SHUTTERS: ShuttersToolbar, Toolbar.WIDGETS: [ - WidgetAction.CONSOLE, WidgetAction.PROP_BROWSER, + WidgetAction.CONFIG_GROUPS, WidgetAction.MDA_WIDGET, WidgetAction.STAGE_CONTROL, WidgetAction.CAMERA_ROI, + WidgetAction.CONSOLE, ], } # Menus are a mapping of strings to either a list of ActionKeys or a callable @@ -179,6 +199,7 @@ def _add_toolbar(self, name: str, tb_entry: ToolDictValue) -> None: for action in tb_entry: tb.addAction(self.get_action(action)) tb.setObjectName(name) + tb.setStyleSheet(SS_TOOLBUTTON) def _add_menubar(self, name: str, menu_entry: MenuDictValue) -> None: mb = cast("QMenuBar", self.menuBar()) diff --git a/src/pymmcore_gui/actions/core_actions.py b/src/pymmcore_gui/actions/core_actions.py index 4a7fae46..fac8240e 100644 --- a/src/pymmcore_gui/actions/core_actions.py +++ b/src/pymmcore_gui/actions/core_actions.py @@ -4,6 +4,8 @@ from typing import TYPE_CHECKING +from superqt import QIconifyIcon + from ._action_info import ActionInfo, ActionKey if TYPE_CHECKING: @@ -43,7 +45,10 @@ def _init_toggle_live(action: QCoreAction) -> None: mmc = action.mmc def _on_change() -> None: - action.setChecked(mmc.isSequenceRunning()) + _is_running = mmc.isSequenceRunning() + action.setChecked(_is_running) + _icon = "mdi:video-off-outline" if _is_running else "mdi:video-outline" + action.setIcon(QIconifyIcon(_icon)) mmc.events.sequenceAcquisitionStarted.connect(_on_change) mmc.events.continuousSequenceAcquisitionStarted.connect(_on_change) @@ -56,7 +61,7 @@ def _on_change() -> None: key=CoreAction.SNAP, shortcut="Ctrl+K", auto_repeat=True, - icon="mdi-light:camera", + icon="mdi:camera-outline", on_triggered=snap_image, ) diff --git a/src/pymmcore_gui/actions/widget_actions.py b/src/pymmcore_gui/actions/widget_actions.py index 377f3de7..1d0a868a 100644 --- a/src/pymmcore_gui/actions/widget_actions.py +++ b/src/pymmcore_gui/actions/widget_actions.py @@ -189,7 +189,7 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_console = WidgetActionInfo( key=WidgetAction.CONSOLE, shortcut="Ctrl+Shift+C", - icon="iconoir:terminal", + icon="mdi:console-line", create_widget=create_mm_console, dock_area=Qt.DockWidgetArea.BottomDockWidgetArea, ) @@ -197,7 +197,7 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_property_browser = WidgetActionInfo( key=WidgetAction.PROP_BROWSER, shortcut="Ctrl+Shift+P", - icon="mdi-light:format-list-bulleted", + icon="mdi:view-sequential", create_widget=create_property_browser, dock_area=None, ) @@ -205,7 +205,7 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_install_devices = WidgetActionInfo( key=WidgetAction.INSTALL_DEVICES, shortcut="Ctrl+Shift+I", - icon="mdi-light:download", + icon="mdi:download", create_widget=create_install_widgets, dock_area=None, ) @@ -213,14 +213,14 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_mda_widget = WidgetActionInfo( key=WidgetAction.MDA_WIDGET, shortcut="Ctrl+Shift+M", - icon="qlementine-icons:cube-16", + icon="mdi:cube-outline", create_widget=create_mda_widget, ) show_camera_roi = WidgetActionInfo( key=WidgetAction.CAMERA_ROI, shortcut="Ctrl+Shift+R", - icon="material-symbols-light:screenshot-region-rounded", + icon="mdi:crop", create_widget=create_camera_roi, dock_area=Qt.DockWidgetArea.LeftDockWidgetArea, ) @@ -228,7 +228,7 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_config_groups = WidgetActionInfo( key=WidgetAction.CONFIG_GROUPS, shortcut="Ctrl+Shift+G", - icon="mdi-light:format-list-bulleted", + icon="mdi:view-list", create_widget=create_config_groups, dock_area=Qt.DockWidgetArea.LeftDockWidgetArea, ) @@ -236,14 +236,14 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_pixel_config = WidgetActionInfo( key=WidgetAction.PIXEL_CONFIG, shortcut="Ctrl+Shift+X", - icon="mdi-light:grid", + icon="mdi:table-edit", create_widget=create_pixel_config, ) show_exception_log = WidgetActionInfo( key=WidgetAction.EXCEPTION_LOG, shortcut="Ctrl+Shift+E", - icon="mdi-light:alert", + icon="mdi:alert", create_widget=create_exception_log, dock_area=None, ) @@ -251,7 +251,7 @@ class WidgetActionInfo(ActionInfo, Generic[WT]): show_stage_control = WidgetActionInfo( key=WidgetAction.STAGE_CONTROL, shortcut="Ctrl+Shift+S", - icon="fa:arrows", + icon="mdi:arrow-all", create_widget=create_stage_widget, dock_area=Qt.DockWidgetArea.LeftDockWidgetArea, )