/******************************************************************************* ** ** 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 "browser.h" #include #include "forms/profilesdialog.h" #include "interfaces.h" #include "mainwindow.h" MainWindowMenuBar::MainWindowMenuBar(MainWindow *parent) : QMenuBar(parent) { m_parentWindow = parent; // Browser menu QMenu *browserMenu = new QMenu(qApp->applicationName(), this); addMenu(browserMenu); browserMenu->addAction(tr("New Window"), parent, SLOT(newWindow()), QKeySequence::fromString(browser->settings()->value("window.shortcuts.windowNew").toString())); browserMenu->addAction(tr("New Tab"), parent, SLOT(newTab()), QKeySequence::fromString(browser->settings()->value("window.shortcuts.tabNew").toString())); browserMenu->addSeparator(); browserMenu->addAction(tr("About"), parent, SLOT(about()), QKeySequence(tr("F1"))); browserMenu->addAction(tr("About Qt"), qApp, SLOT(aboutQt())); browserMenu->addSeparator(); browserMenu->addAction(tr("Quit"), qApp, SLOT(quit()), QKeySequence::fromString(browser->settings()->value("window.shortcuts.windowClose").toString())); // Tools menu QMenu *toolsMenu = new QMenu(tr("Tools"), this); addMenu(toolsMenu); QAction *downloadsAction = toolsMenu->addAction(tr("Downloads")); downloadsAction->setParent(parent); downloadsAction->setShortcut(QKeySequence::fromString(browser->settings()->value("downloads.dialogShortcut").toString())); connect(downloadsAction, &QAction::triggered, this, [&]() { m_parentWindow->addTabbedDock(Qt::RightDockWidgetArea, browser->downloads()); }); QAction *bookmarksAction = toolsMenu->addAction(tr("Bookmarks")); bookmarksAction->setParent(parent); bookmarksAction->setShortcut(QKeySequence(browser->settings()->value("bookmarks.dialogShortcut").toString())); connect(bookmarksAction, &QAction::triggered, this, [&]() { m_parentWindow->addTabbedDock(Qt::RightDockWidgetArea, browser->bookmarks()); }); toolsMenu->addSeparator(); toolsMenu->addAction(tr("Filter"), browser->blocklists(), SLOT(show()), QKeySequence::fromString(browser->settings()->value("blocker.shortcut").toString())); // Plugins // if(qApp->plugin("")) { // GuiInterface *gui = qobject_cast(qApp->plugin("")); // if(gui) { // toolsMenu->addAction(gui->action()); // } else { // qDebug("Plugin doesn't gui"); // } // } else { // qDebug("No plugin!"); // } // Profile menu QMenu *profileMenu = new QMenu(tr("Profile"), this); addMenu(profileMenu); profileMenu->addAction(tr("Profiles"), this, SLOT(handleLoadProfile())); // Page menu QMenu *pageMenu = new QMenu(tr("Page"), this); addMenu(pageMenu); pageMenu->addAction(tr("Print"))->setEnabled(false); m_printAction = pageMenu->addAction(tr("Print to PDF")); pageMenu->addAction(tr("Zoom"))->setEnabled(false); } QAction *MainWindowMenuBar::printAction() { return m_printAction; } void MainWindowMenuBar::handleLoadProfile() { ProfilesDialog *dlg = new ProfilesDialog(m_parentWindow, 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)); // } }