From 8221037c77be1f7c256b2575d4a9a4a9d58a9c0d Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 27 May 2017 17:50:22 +0200 Subject: Profile improvements * Some code refactoring * Profile dialog UI is now only created when needed * Profile selector dialog --- src/widgets/mainwindowmenubar.cpp | 83 +++++++++++++++++++++++++++++++++++++++ src/widgets/mainwindowmenubar.h | 40 +++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 src/widgets/mainwindowmenubar.cpp create mode 100644 src/widgets/mainwindowmenubar.h (limited to 'src/widgets') 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 . + ** + ******************************************************************************/ + +#include "mainwindowmenubar.h" +#include +#include "browser.h" +#include +#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 . + ** + ******************************************************************************/ + +#ifndef MAINWINDOWMENUBAR_H +#define MAINWINDOWMENUBAR_H + +#include + +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 -- cgit v1.2.1