/* * 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: git://neueland.iserlohn-fortress.net/smolbote.git * * SPDX-License-Identifier: GPL-3.0 */ #include "mainwindowmenubar.h" #include "forms/profileview.h" #include "mainwindow.h" #include #include #include #include "browser.h" #include "downloads/downloadswidget.h" MainWindowMenuBar::MainWindowMenuBar(std::shared_ptr config, MainWindow *parent) : QMenuBar(parent) { Q_ASSERT(config); Q_CHECK_PTR(parent); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); // 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")); connect(m_profileAction, &QAction::triggered, this, [parent]() { ProfileView *dlg = new ProfileView(parent->profile(), parent); dlg->exec(); delete dlg; }); QMenu *loadMenu = profileMenu->addMenu(tr("Load")); loadMenu->setEnabled(false); } QAction *MainWindowMenuBar::bookmarksAction() { Q_CHECK_PTR(m_bookmarksAction); return m_bookmarksAction; } void MainWindowMenuBar::setProfileName(const QString &name) { Q_CHECK_PTR(m_profileAction); m_profileAction->setText(tr("Current: %1").arg(name)); } void MainWindowMenuBar::handleLoadProfile(const QString &name, MainWindow *window) { window->setProfile(static_cast(qApp->instance())->profile(name)); }