diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp index ac6f2cb..e20bfdc 100644 --- a/toonz/sources/toonz/mainwindow.cpp +++ b/toonz/sources/toonz/mainwindow.cpp @@ -1418,15 +1418,19 @@ QAction *MainWindow::createAction(const char *id, const QString &name, QAction *action = new DVAction(name, this); addAction(action); #ifdef MACOSX - if (strcmp(id, MI_Preferences) == 0) { + // To prevent the wrong menu items (due to MacOS menu naming conventions), + // from + // taking Preferences, Quit, or About roles (sometimes happens unexpectedly in + // translations) - all menu items should have "NoRole" + // except for Preferences, Quit, and About + if (strcmp(id, MI_Preferences) == 0) action->setMenuRole(QAction::PreferencesRole); - } - if (strcmp(id, MI_ShortcutPopup) == 0) { - action->setMenuRole(QAction::NoRole); - } - if (strcmp(id, MI_ExitGroup) == 0) { + else if (strcmp(id, MI_Quit) == 0) + action->setMenuRole(QAction::QuitRole); + else if (strcmp(id, MI_About) == 0) + action->setMenuRole(QAction::AboutRole); + else action->setMenuRole(QAction::NoRole); - } #endif CommandManager::instance()->define(id, type, defaultShortcut.toStdString(), action); @@ -2411,9 +2415,9 @@ RecentFiles::~RecentFiles() {} void RecentFiles::addFilePath(QString path, FileType fileType) { QList files = - (fileType == Scene) ? m_recentScenes : (fileType == Level) - ? m_recentLevels - : m_recentFlipbookImages; + (fileType == Scene) + ? m_recentScenes + : (fileType == Level) ? m_recentLevels : m_recentFlipbookImages; int i; for (i = 0; i < files.size(); i++) if (files.at(i) == path) files.removeAt(i); @@ -2538,9 +2542,9 @@ void RecentFiles::saveRecentFiles() { QList RecentFiles::getFilesNameList(FileType fileType) { QList files = - (fileType == Scene) ? m_recentScenes : (fileType == Level) - ? m_recentLevels - : m_recentFlipbookImages; + (fileType == Scene) + ? m_recentScenes + : (fileType == Level) ? m_recentLevels : m_recentFlipbookImages; QList names; int i; for (i = 0; i < files.size(); i++) { @@ -2567,9 +2571,9 @@ void RecentFiles::refreshRecentFilesMenu(FileType fileType) { menu->setEnabled(false); else { CommandId clearActionId = - (fileType == Scene) ? MI_ClearRecentScene : (fileType == Level) - ? MI_ClearRecentLevel - : MI_ClearRecentImage; + (fileType == Scene) + ? MI_ClearRecentScene + : (fileType == Level) ? MI_ClearRecentLevel : MI_ClearRecentImage; menu->setActions(names); menu->addSeparator(); QAction *clearAction = CommandManager::instance()->getAction(clearActionId);