aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp52
1 files changed, 29 insertions, 23 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index daf344d..28a0ebb 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -22,9 +22,6 @@
#include "ui_mainwindow.h"
#include "widgets/mainwindowmenubar.h"
#include <QMessageBox>
-#include "browser.h"
-#include <QWebEngineDownloadItem>
-#include <QStatusBar>
#include "forms/aboutdialog.h"
#include <QToolButton>
@@ -36,7 +33,9 @@
#include <QDockWidget>
-MainWindow::MainWindow(QWidget *parent) :
+#include <settings/configuration.h>
+
+MainWindow::MainWindow(std::shared_ptr<Configuration> config, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
navigationToolBar(new QToolBar(tr("Navigation"), this)),
@@ -45,14 +44,17 @@ MainWindow::MainWindow(QWidget *parent) :
m_addressBar(new AddressBar(navigationToolBar)),
m_progressBar(new LoadingBar(this))
{
+ Q_ASSERT(config);
+ m_config = config;
+
// delete this window when it closes
setAttribute(Qt::WA_DeleteOnClose, true);
// set up UI
ui->setupUi(this);
QAction *fullscreenAction = new QAction(this);
- fullscreenAction->setShortcut(QKeySequence::fromString(browser->settings()->value("window.shortcuts.fullscreen").toString()));
- connect(fullscreenAction, SIGNAL(triggered(bool)), this, SLOT(toggleFullscreen()));
+ fullscreenAction->setShortcut(QKeySequence(QString::fromStdString(m_config->value<std::string>("browser.shortcuts.fullscreen").value())));
+ connect(fullscreenAction, &QAction::triggered, this, &MainWindow::toggleFullscreen);
addAction(fullscreenAction);
// Dockable widget styling
@@ -61,7 +63,7 @@ MainWindow::MainWindow(QWidget *parent) :
setTabPosition(Qt::RightDockWidgetArea, QTabWidget::North);
// Main menu
- MainWindowMenuBar *menuBar = new MainWindowMenuBar(this);
+ MainWindowMenuBar *menuBar = new MainWindowMenuBar(config, this);
menuBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
connect(menuBar->printAction(), &QAction::triggered, this, [&]() {
@@ -71,14 +73,14 @@ MainWindow::MainWindow(QWidget *parent) :
// Add the toolbars
// tabToolBar: main menu and tab list
- tabToolBar->setMovable(browser->settings()->value("window.ui.tabtoolbarMovable").toBool());
+ tabToolBar->setMovable(m_config->value<bool>("browser.ui.tabtoolbarMovable").value());
tabToolBar->addWidget(menuBar);
//tabToolBar->addWidget(tabBar);
this->addToolBar(Qt::TopToolBarArea, tabToolBar);
this->addToolBarBreak(Qt::TopToolBarArea);
// navigationToolBar: address bar
- navigationToolBar->setMovable(browser->settings()->value("window.ui.navtoolbarMovable").toBool());
+ navigationToolBar->setMovable(m_config->value<bool>("browser.ui.navtoolbarMovable").value());
// page actions
m_backButton = new NavigationButton(NavigationButton::BackButton, this);
@@ -107,18 +109,18 @@ MainWindow::MainWindow(QWidget *parent) :
connect(m_addressBar, &AddressBar::searchTermEntered, this, [&](const QString &string) {
QString term = string.mid(1);
term.replace(' ', '+');
- tabBar->currentView()->load(QUrl::fromUserInput(browser->settings()->value("general.search").toString().replace("$term", term)));
+ //tabBar->currentView()->load(QUrl::fromUserInput(browser->settings()->value("general.search").toString().replace("$term", term)));
});
connect(tabBar, SIGNAL(currentTabChanged(WebView*)), this, SLOT(handleTabChanged(WebView*)));
- connect(browser->bookmarks(), &BookmarksWidget::openUrl, this, [&](const QUrl &url) {
- if(this->isActiveWindow()) {
- this->newTab(url);
- }
- });
+// connect(browser->bookmarks(), &BookmarksWidget::openUrl, this, [&](const QUrl &url) {
+// if(this->isActiveWindow()) {
+// this->newTab(url);
+// }
+// });
// Load profile
- tabBar->setProfile(browser->profile(browser->settings()->value("browser.profile.default").toString()));
+ //tabBar->setProfile(browser->profile(browser->settings()->value("browser.profile.default").toString()));
// Adding a tab here, because otherwise tabs won't show up
//newTab();
@@ -127,12 +129,12 @@ MainWindow::MainWindow(QWidget *parent) :
// shortcuts
QAction *focusAddressAction = new QAction(this);
- focusAddressAction->setShortcut(QKeySequence::fromString(browser->settings()->value("window.shortcuts.focusAddress").toString()));
+ //focusAddressAction->setShortcut(QKeySequence::fromString(browser->settings()->value("window.shortcuts.focusAddress").toString()));
connect(focusAddressAction, SIGNAL(triggered(bool)), this, SLOT(focusAddress()));
addAction(focusAddressAction);
- resize(browser->settings()->value("window.width").toInt(), browser->settings()->value("window.height").toInt());
- if(browser->settings()->value("window.maximized").toBool()) {
+ resize(m_config->value<int>("browser.window.width").value(), m_config->value<int>("browser.window.height").value());
+ if(m_config->value<bool>("browser.window.maximized").value()) {
showMaximized();
}
}
@@ -144,7 +146,7 @@ MainWindow::~MainWindow()
QList<QDockWidget*> allDockWidgets = findChildren<QDockWidget*>();
for(QDockWidget *w : allDockWidgets) {
if(w->widget()) {
- w->widget()->setParent(0);
+ w->widget()->setParent(nullptr);
}
}
@@ -224,7 +226,7 @@ void MainWindow::newWindow(const QUrl &url)
{
QHash<QString, QVariant> options;
options.insert("urls", url);
- browser->createWindow(options);
+ //browser->createWindow(options);
}
void MainWindow::handleTabChanged(WebView *view)
@@ -236,7 +238,7 @@ void MainWindow::handleTabChanged(WebView *view)
// centralWidget can be a nullptr
if(centralWidget()) {
// clear the parent of the central widget so it doesn't get deleted
- centralWidget()->setParent(0);
+ centralWidget()->setParent(nullptr);
// disconnect signals
disconnect(centralWidget());
@@ -262,5 +264,9 @@ void MainWindow::handleTabChanged(WebView *view)
void MainWindow::handleTitleUpdated(const QString &title)
{
- setWindowTitle(browser->settings()->value("window.title").toString().replace("title", title).replace("profile", tabBar->profile()->name()));
+ QString t = QString::fromStdString(m_config->value<std::string>("browser.window.title").value());
+ t.replace("title", title);
+ t.replace("profile", tabBar->profile()->name());
+ setWindowTitle(t);
+ //setWindowTitle(browser->settings()->value("window.title").toString().replace("title", title).replace("profile", tabBar->profile()->name()));
}