/******************************************************************************* ** ** smolbote: yet another qute browser ** Copyright (C) 2017 Xian Nox ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . ** ******************************************************************************/ #include "mainwindowmenubar.h" #include #include #include #include "forms/profilesdialog.h" #include "mainwindow.h" #include MainWindowMenuBar::MainWindowMenuBar(std::shared_ptr config, MainWindow *parent) : QMenuBar(parent) { Q_ASSERT(config); Q_CHECK_PTR(parent); // 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())); 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 = new QMenu(tr("Profile"), this); addMenu(profileMenu); //profileMenu->addAction(tr("Profiles"), this, SLOT(handleLoadProfile())); } QAction *MainWindowMenuBar::bookmarksAction() { Q_CHECK_PTR(m_bookmarksAction); return m_bookmarksAction; } QAction *MainWindowMenuBar::downloadsAction() { Q_CHECK_PTR(m_downloadsAction); return m_downloadsAction; } void MainWindowMenuBar::handleLoadProfile(MainWindow *window) { ProfilesDialog *dlg = new ProfilesDialog(window, this); dlg->exec(); // bool ok; // QString _name = QInputDialog::getText(this, tr("Load Profile"), tr("Enter Profile name"), QLineEdit::Normal, QString(""), &ok); // if(ok) { // m_parentWindow->setProfile(qApp->profile(_name)); // } }