diff options
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r-- | src/mainwindow.cpp | 52 |
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())); } |