diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-05-27 17:50:22 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-05-27 17:50:22 +0200 |
commit | 8221037c77be1f7c256b2575d4a9a4a9d58a9c0d (patch) | |
tree | d2e70f9603207dbebeb0238bf15af56e24af18dd /src/widgets | |
parent | Filter code refactoring (diff) | |
download | smolbote-8221037c77be1f7c256b2575d4a9a4a9d58a9c0d.tar.xz |
Profile improvements
* Some code refactoring
* Profile dialog UI is now only created when needed
* Profile selector dialog
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/mainwindowmenubar.cpp | 83 | ||||
-rw-r--r-- | src/widgets/mainwindowmenubar.h | 40 |
2 files changed, 123 insertions, 0 deletions
diff --git a/src/widgets/mainwindowmenubar.cpp b/src/widgets/mainwindowmenubar.cpp new file mode 100644 index 0000000..a3ec497 --- /dev/null +++ b/src/widgets/mainwindowmenubar.cpp @@ -0,0 +1,83 @@ +/******************************************************************************* + ** + ** 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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#include "mainwindowmenubar.h" +#include <QMenu> +#include "browser.h" +#include <QInputDialog> +#include "forms/profilesdialog.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(sSettings->value("window.shortcuts.windowNew").toString())); + browserMenu->addAction(tr("New Tab"), parent, SLOT(newTab()), QKeySequence::fromString(sSettings->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(sSettings->value("window.shortcuts.windowClose").toString())); + + // Tools menu + QMenu *toolsMenu = new QMenu(tr("Tools"), this); + addMenu(toolsMenu); + QAction *downloadsAction = toolsMenu->addAction(tr("Downloads"), Browser::instance()->downloads(), SLOT(show())); + downloadsAction->setParent(parent); + downloadsAction->setShortcut(QKeySequence::fromString(sSettings->value("downloads.dialogShortcut").toString())); + QAction *bookmarksAction = toolsMenu->addAction(tr("Bookmarks"), Browser::instance()->bookmarks(), SLOT(show())); + bookmarksAction->setParent(parent); + bookmarksAction->setShortcut(QKeySequence(sSettings->value("bookmarks.dialogShortcut").toString())); + toolsMenu->addSeparator(); + toolsMenu->addAction(tr("Filter"), qApp->blocklists(), SLOT(show()), QKeySequence::fromString(sSettings->value("blocker.shortcut").toString())); + + // Profile menu + QMenu *profileMenu = new QMenu(tr("Profile"), this); + addMenu(profileMenu); + profileMenu->addAction(tr("Profiles"), this, SLOT(handleLoadProfile())); + profileMenu->addSeparator(); + profileMenu->addAction(tr("View profile"), parent, SLOT(profileAction())); + profileMenu->addAction(tr("Settings")); + profileMenu->addAction(tr("Cookies"), parent, SLOT(cookiesAction())); + + // Page menu + QMenu *pageMenu = new QMenu(tr("Page"), this); + addMenu(pageMenu); + pageMenu->addAction(tr("Print")); + pageMenu->addAction(tr("Print to PDF")); + pageMenu->addAction(tr("Zoom")); + +} + +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)); +// } +} diff --git a/src/widgets/mainwindowmenubar.h b/src/widgets/mainwindowmenubar.h new file mode 100644 index 0000000..a6c6dc4 --- /dev/null +++ b/src/widgets/mainwindowmenubar.h @@ -0,0 +1,40 @@ +/******************************************************************************* + ** + ** 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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#ifndef MAINWINDOWMENUBAR_H +#define MAINWINDOWMENUBAR_H + +#include <QMenuBar> + +class MainWindow; +class MainWindowMenuBar : public QMenuBar +{ + Q_OBJECT +public: + explicit MainWindowMenuBar(MainWindow *parent = nullptr); + +private slots: + void handleLoadProfile(); + +private: + MainWindow *m_parentWindow; +}; + +#endif // MAINWINDOWMENUBAR_H |