From 17a4703fe30bd746542b4395dffb47f28cb7ac8b Mon Sep 17 00:00:00 2001 From: Jonathan Perret Date: Thu, 27 Jun 2024 11:27:44 +0200 Subject: [PATCH 1/2] Use native menubar on macOS, not elsewhere (i.e. Linux) --- src/main/python/main/ayab/menu.py | 6 ++++++ src/main/python/main/ayab/menu_gui.ui | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/python/main/ayab/menu.py b/src/main/python/main/ayab/menu.py index 65e234aa..ad2e5977 100644 --- a/src/main/python/main/ayab/menu.py +++ b/src/main/python/main/ayab/menu.py @@ -19,6 +19,7 @@ # https://github.com/AllYarnsAreBeautiful/ayab-desktop from __future__ import annotations +from PySide6.QtCore import QOperatingSystemVersion from PySide6.QtWidgets import QMenuBar from .menu_gui import Ui_MenuBar @@ -38,6 +39,11 @@ class Menu(QMenuBar): def __init__(self, parent: GuiMain): super().__init__(parent) + + # Use native menubar on macOS, not elsewhere (i.e. Linux) + if QOperatingSystemVersion.currentType() != QOperatingSystemVersion.OSType.MacOS: + self.setNativeMenuBar(False) + self.ui = Ui_MenuBar() self.ui.setupUi(self) self.setup() diff --git a/src/main/python/main/ayab/menu_gui.ui b/src/main/python/main/ayab/menu_gui.ui index b0f47cb7..8f09e8ef 100644 --- a/src/main/python/main/ayab/menu_gui.ui +++ b/src/main/python/main/ayab/menu_gui.ui @@ -2,9 +2,6 @@ MenuBar - - False - File From bda83d43b19d8694b375c58c148d35eae697bf3c Mon Sep 17 00:00:00 2001 From: Jonathan Perret Date: Thu, 18 Jul 2024 18:15:54 +0200 Subject: [PATCH 2/2] Add menu roles for better mac menus Adding "menuRole" properties to standard menu actions (About, Preferences, Quit) lets Qt move them to their standard place in the macOS menu bar (without having to rely on their text content, which breaks when localizing). This also automatically sets the "Preferences" shortcut to the standard "Cmd+," instead of "Cmd+P". This should have no impact on other platforms. See https://doc.qt.io/qt-6/qmenubar.html#qmenubar-as-a-global-menu-bar --- src/main/python/main/ayab/menu_gui.ui | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/python/main/ayab/menu_gui.ui b/src/main/python/main/ayab/menu_gui.ui index 8f09e8ef..10e25cfc 100644 --- a/src/main/python/main/ayab/menu_gui.ui +++ b/src/main/python/main/ayab/menu_gui.ui @@ -65,6 +65,9 @@ Ctrl+Q + + QAction::QuitRole + @@ -96,6 +99,9 @@ Help – About + + QAction::AboutRole + @@ -189,6 +195,9 @@ Ctrl+P + + QAction::PreferencesRole +