diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-06-03 19:00:44 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-06-03 19:00:44 -0400 |
| commit | 254304217d6cb00cbedf13f8c493dc6c80e11e24 (patch) | |
| tree | bf638887c919d12301f15b6d911d89baf6450b82 /src/mainwindow.cpp | |
| parent | 97026b4da03dbb9dda460c6046aaa09a23a927bf (diff) | |
renamed some of the menus to remove underscores
added Run menu with shortcuts, only visible when there are shortcuts to show
fixed menubar visibility not being remembered
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1098b529..62971f00 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -201,6 +201,7 @@ MainWindow::MainWindow(QSettings &initSettings : QMainWindow(parent) , ui(new Ui::MainWindow) , m_WasVisible(false) + , m_menuBarVisible(true) , m_Tutorial(this, "MainWindow") , m_OldProfileIndex(-1) , m_ModListGroupingProxy(nullptr) @@ -321,7 +322,7 @@ MainWindow::MainWindow(QSettings &initSettings resizeLists(modListAdjusted, pluginListAdjusted); QMenu *linkMenu = new QMenu(this); - linkMenu->addAction(QIcon(":/MO/gui/link"), tr("Toolbar"), this, SLOT(linkToolbar())); + linkMenu->addAction(QIcon(":/MO/gui/link"), tr("Toolbar and Menu"), this, SLOT(linkToolbar())); linkMenu->addAction(QIcon(":/MO/gui/link"), tr("Desktop"), this, SLOT(linkDesktop())); linkMenu->addAction(QIcon(":/MO/gui/link"), tr("Start Menu"), this, SLOT(linkMenu())); ui->linkButton->setMenu(linkMenu); @@ -470,7 +471,7 @@ MainWindow::MainWindow(QSettings &initSettings } refreshExecutablesList(); - updateToolBar(); + updatePinnedExecutables(); for (QAction *action : ui->toolBar->actions()) { // set the name of the widget to the name of the action to allow styling @@ -609,13 +610,15 @@ void MainWindow::setupActionMenu(QAction* a) tb->setPopupMode(QToolButton::InstantPopup); } -void MainWindow::updateToolBar() +void MainWindow::updatePinnedExecutables() { for (auto* a : ui->linksToolBar->actions()) { ui->linksToolBar->removeAction(a); a->deleteLater(); } + ui->menuRun->clear(); + bool hasLinks = false; std::vector<Executable>::iterator begin, end; @@ -625,21 +628,23 @@ void MainWindow::updateToolBar() if (iter->isShownOnToolbar()) { hasLinks = true; - QAction *exeAction = new QAction(iconForExecutable(iter->m_BinaryInfo.filePath()), - iter->m_Title, - ui->toolBar); + QAction *exeAction = new QAction( + iconForExecutable(iter->m_BinaryInfo.filePath()), iter->m_Title); exeAction->setObjectName(QString("custom__") + iter->m_Title); + if (!connect(exeAction, SIGNAL(triggered()), this, SLOT(startExeAction()))) { qDebug("failed to connect trigger?"); } ui->linksToolBar->addAction(exeAction); + ui->menuRun->addAction(exeAction); } } - // don't show the toolbar if there are no links + // don't show the toolbar or menu if there are no links ui->linksToolBar->setVisible(hasLinks); + ui->menuRun->menuAction()->setVisible(hasLinks); } void MainWindow::toolbarMenu_aboutToShow() @@ -674,6 +679,7 @@ QMenu* MainWindow::createPopupMenu() void MainWindow::on_actionMainMenuToggle_triggered() { ui->menuBar->setVisible(!ui->menuBar->isVisible()); + m_menuBarVisible = ui->menuBar->isVisible(); } void MainWindow::on_actionToolBarMainToggle_triggered() @@ -1952,7 +1958,8 @@ void MainWindow::readSettings() } if (settings.contains("menubar_visible")) { - ui->menuBar->setVisible(settings.value("menubar_visible").toBool()); + m_menuBarVisible = settings.value("menubar_visible").toBool(); + ui->menuBar->setVisible(m_menuBarVisible); } if (settings.contains("window_split")) { @@ -2047,7 +2054,7 @@ void MainWindow::storeSettings(QSettings &settings) { settings.setValue("window_state", saveState()); settings.setValue("toolbar_size", ui->toolBar->iconSize()); settings.setValue("toolbar_button_style", static_cast<int>(ui->toolBar->toolButtonStyle())); - settings.setValue("menubar_visible", ui->menuBar->isVisible()); + settings.setValue("menubar_visible", m_menuBarVisible); settings.setValue("window_split", ui->splitter->saveState()); settings.setValue("window_monitor", QApplication::desktop()->screenNumber(this)); settings.setValue("log_split", ui->topLevelSplitter->saveState()); @@ -5001,7 +5008,7 @@ void MainWindow::linkToolbar() Executable &exe(getSelectedExecutable()); exe.showOnToolbar(!exe.isShownOnToolbar()); ui->linkButton->menu()->actions().at(static_cast<int>(ShortcutType::Toolbar))->setIcon(exe.isShownOnToolbar() ? QIcon(":/MO/gui/remove") : QIcon(":/MO/gui/link")); - updateToolBar(); + updatePinnedExecutables(); } namespace { @@ -6189,7 +6196,7 @@ void MainWindow::removeFromToolbar() qDebug("executable doesn't exist any more"); } - updateToolBar(); + updatePinnedExecutables(); } @@ -6850,6 +6857,7 @@ void MainWindow::keyPressEvent(QKeyEvent *event) if (event->key() == Qt::Key_Alt) { if (!ui->menuBar->isVisible()) { ui->menuBar->setVisible(true); + m_menuBarVisible = true; } } |
