/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/smolbote.hg * * SPDX-License-Identifier: GPL-3.0 */ #include "mainwindowmenubar.h" #include "browser.h" #include "downloads/downloadswidget.h" #include "mainwindow/mainwindow.h" #include MainWindowMenuBar::MainWindowMenuBar(std::shared_ptr config, MainWindow *parent) : QMenuBar(parent) { Q_ASSERT(config); Q_CHECK_PTR(parent); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); auto *browser = dynamic_cast(QApplication::instance()); // Browser menu QMenu *browserMenu = new QMenu(qApp->applicationName(), this); addMenu(browserMenu); QAction *newWindowAction = browserMenu->addAction(tr("New Window")); connect(newWindowAction, &QAction::triggered, parent, [parent]() { parent->newWindow(); }); newWindowAction->setShortcut(QKeySequence(config->value("browser.shortcuts.newWindow").value().c_str())); QAction *newTabAction = browserMenu->addAction(tr("New Tab")); connect(newTabAction, &QAction::triggered, parent, [parent]() { parent->newTab(); }); newTabAction->setShortcut(QKeySequence(config->value("browser.shortcuts.newTab").value().c_str())); browserMenu->addSeparator(); //browserMenu->addAction(tr("Settings"), parent, &MainWindow::showSettingsDialog); browserMenu->addAction(tr("About"), parent, &MainWindow::about, QKeySequence(config->value("browser.shortcuts.about").value().c_str())); browserMenu->addAction(tr("About Qt"), qApp, &QApplication::aboutQt); browserMenu->addSeparator(); QAction *quitAction = browserMenu->addAction(tr("Quit"), qApp, &QApplication::quit); quitAction->setShortcut(QKeySequence(config->value("browser.shortcuts.quit").value().c_str())); // Tools menu QMenu *toolsMenu = new QMenu(tr("Tools"), this); addMenu(toolsMenu); m_downloadsAction = toolsMenu->addAction(tr("Downloads")); m_downloadsAction->setParent(parent); m_downloadsAction->setShortcut(QKeySequence(config->value("downloads.shortcut").value().c_str())); connect(m_downloadsAction, &QAction::triggered, [parent]() { parent->m_downloadsWidget->show(); }); m_bookmarksAction = toolsMenu->addAction(tr("Bookmarks")); m_bookmarksAction->setParent(parent); m_bookmarksAction->setShortcut(QKeySequence(config->value("bookmarks.shortcut").value().c_str())); //toolsMenu->addAction(tr("Filter"), browser->blocklists(), SLOT(show()), QKeySequence::fromString(browser->settings()->value("blocker.shortcut").toString())); // Profile menu QMenu *profileMenu = addMenu(tr("Profile")); m_profileAction = profileMenu->addAction(tr("Current profile")); m_profileAction->setEnabled(false); QMenu *loadMenu = profileMenu->addMenu(tr("Load")); for(const QString &name : browser->profiles()) { QAction *profileAction = loadMenu->addAction(browser->profile(name)->name()); connect(profileAction, &QAction::triggered, this, [browser, parent, name] { parent->setProfile(browser->profile(name)); }); } } QAction *MainWindowMenuBar::bookmarksAction() { Q_CHECK_PTR(m_bookmarksAction); return m_bookmarksAction; } QAction *MainWindowMenuBar::profileAction() const { Q_CHECK_PTR(m_profileAction); return m_profileAction; }