aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/mainwindow.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2023-09-08 14:36:32 +0200
committerEike Ziller <eike.ziller@qt.io>2023-09-08 12:39:05 +0000
commit2adebd0eb4ab3f2e0f662091cc7310b09907d2db (patch)
tree00ecd506dcfb2a00dc3419d7593b4ddbd9ec7b15 /src/plugins/coreplugin/mainwindow.cpp
parent6998bf65911d848c190d7b00e6a73914f389718b (diff)
Core: Never call QMainWindow::menuBar()
It replaces the global menu bar on macOS (that is a QMenuBar(nullptr)) with a window specific menu bar, resulting in an empty menu bar for Qt Creator. Amends a6e779606db6c8536c715470ddb73f10c7431e8b Change-Id: Id6e2c0b9b2dfe4ade88af0f9a6d3b008fed790be Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'src/plugins/coreplugin/mainwindow.cpp')
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index de58123bdf..f4e3364109 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -526,6 +526,11 @@ void MainWindow::registerDefaultContainers()
ac->touchBar()->setApplicationTouchBar();
}
+static QMenuBar *globalMenuBar()
+{
+ return ActionManager::actionContainer(Constants::MENU_BAR)->menuBar();
+}
+
void MainWindow::registerDefaultActions()
{
ActionContainer *mfile = ActionManager::actionContainer(Constants::M_FILE);
@@ -836,12 +841,12 @@ void MainWindow::registerDefaultActions()
m_toggleRightSideBarButton->setEnabled(false);
// Show Menubar Action
- if (menuBar() && !menuBar()->isNativeMenuBar()) {
+ if (globalMenuBar() && !globalMenuBar()->isNativeMenuBar()) {
m_toggleMenubarAction = new QAction(Tr::tr("Show Menubar"), this);
m_toggleMenubarAction->setCheckable(true);
cmd = ActionManager::registerAction(m_toggleMenubarAction, Constants::TOGGLE_MENUBAR);
cmd->setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Alt+M")));
- connect(m_toggleMenubarAction, &QAction::toggled, this, [this, cmd](bool visible) {
+ connect(m_toggleMenubarAction, &QAction::toggled, this, [cmd](bool visible) {
if (!visible) {
CheckableMessageBox::information(
Core::ICore::dialogParent(),
@@ -851,7 +856,7 @@ void MainWindow::registerDefaultActions()
+ cmd->keySequence().toString(QKeySequence::NativeText),
QString("ToogleMenuBarHint"));
}
- menuBar()->setVisible(visible);
+ globalMenuBar()->setVisible(visible);
});
mview->addAction(cmd, Constants::G_VIEW_VIEWS);
}
@@ -1207,10 +1212,10 @@ void MainWindow::readSettings()
updateModeSelectorStyleMenu();
}
- if (menuBar() && !menuBar()->isNativeMenuBar()) {
+ if (globalMenuBar() && !globalMenuBar()->isNativeMenuBar()) {
const bool isVisible = settings->value(menubarVisibleKey, true).toBool();
- menuBar()->setVisible(isVisible);
+ globalMenuBar()->setVisible(isVisible);
if (m_toggleMenubarAction)
m_toggleMenubarAction->setChecked(isVisible);
}
@@ -1233,8 +1238,8 @@ void MainWindow::saveSettings()
StyleHelper::requestedBaseColor(),
QColor(StyleHelper::DEFAULT_BASE_COLOR));
- if (menuBar() && !menuBar()->isNativeMenuBar())
- settings->setValue(menubarVisibleKey, menuBar()->isVisible());
+ if (globalMenuBar() && !globalMenuBar()->isNativeMenuBar())
+ settings->setValue(menubarVisibleKey, globalMenuBar()->isVisible());
settings->endGroup();