From 59aff17b7ff1517dc74537444dc272f8080fad3f Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Wed, 11 Jan 2017 15:36:14 +0100 Subject: Window title bar gets updated --- src/browser.cpp | 12 ++---------- src/browser.h | 4 ---- src/main.cpp | 6 +++--- src/mainwindow.cpp | 21 +++++++++++++++------ src/mainwindow.h | 4 ++-- src/qt-simplebrowser.pro | 6 ++++-- src/settings.cpp | 18 ++++++++++++++++++ src/settings.h | 24 ++++++++++++++++++++++++ 8 files changed, 68 insertions(+), 27 deletions(-) create mode 100644 src/settings.cpp create mode 100644 src/settings.h (limited to 'src') diff --git a/src/browser.cpp b/src/browser.cpp index 7ccd13a..cc68174 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -1,11 +1,11 @@ #include "browser.h" #include "mainwindow.h" +#include "settings.h" #include Browser::Browser(QString configPath, QObject *parent) : QObject(parent) { - // TODO Read Profile - m_settings = new QSettings(configPath, QSettings::IniFormat, this); + Settings::setFilepath(configPath); // TODO Restore previous session @@ -14,9 +14,6 @@ Browser::Browser(QString configPath, QObject *parent) : QObject(parent) Browser::~Browser() { - // TODO Save Profile - m_settings->sync(); - // TODO Save session // cleanup @@ -25,11 +22,6 @@ Browser::~Browser() } -QSettings* Browser::settings() -{ - return m_settings; -} - QVector Browser::windows() { return m_windows; diff --git a/src/browser.h b/src/browser.h index c63d56f..938acda 100644 --- a/src/browser.h +++ b/src/browser.h @@ -3,7 +3,6 @@ #include #include -#include class MainWindow; class Browser : public QObject @@ -14,8 +13,6 @@ public: explicit Browser(QString configPath, QObject *parent = 0); ~Browser(); - QSettings* settings(); - // what is windows() useful for? QVector windows(); void addWindow(MainWindow* window); @@ -24,7 +21,6 @@ public slots: void removeWindow(MainWindow* window); private: - QSettings *m_settings; QVector m_windows; }; diff --git a/src/main.cpp b/src/main.cpp index b45fad4..f8c9c7d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,12 +26,12 @@ int main(int argc, char *argv[]) if(parser.positionalArguments().length() > 0) { QUrl url = QUrl::fromUserInput(parser.positionalArguments().at(0)); if(url.isValid()) { - instance.addWindow(new MainWindow(instance.settings(), url)); + instance.addWindow(new MainWindow(url)); } else { - instance.addWindow(new MainWindow(instance.settings())); + instance.addWindow(new MainWindow()); } } else { - instance.addWindow(new MainWindow(instance.settings())); + instance.addWindow(new MainWindow()); } return app.exec(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7987a87..91d098f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1,9 +1,9 @@ #include "mainwindow.h" #include "ui_mainwindow.h" - +#include "settings.h" #include -MainWindow::MainWindow(QSettings *settings, QUrl defaultUrl, QWidget *parent) : +MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), navigationToolBar(new QToolBar(this)), @@ -11,10 +11,11 @@ MainWindow::MainWindow(QSettings *settings, QUrl defaultUrl, QWidget *parent) : tabBar(new WebViewTabBar(this)), urlLineEdit(new QLineEdit(navigationToolBar)) { - settings->beginGroup("defaults"); + Settings settings; + settings.beginGroup("defaults"); ui->setupUi(this); - resize(settings->value("width", 800).toInt(), settings->value("height", 600).toInt()); + resize(settings.value("width", 800).toInt(), settings.value("height", 600).toInt()); // Populate the menu bar // Browser menu - with new window, new tab, open and quit @@ -39,9 +40,9 @@ MainWindow::MainWindow(QSettings *settings, QUrl defaultUrl, QWidget *parent) : if(!defaultUrl.isEmpty()) createNewTab(defaultUrl); else - createNewTab(settings->value("url", QUrl("http://duckduckgo.com")).toUrl()); + createNewTab(settings.value("url", QUrl("http://duckduckgo.com")).toUrl()); - settings->endGroup(); // "defaults" + settings.endGroup(); // "defaults" } MainWindow::~MainWindow() @@ -62,7 +63,9 @@ void MainWindow::handleTabChanged(QWebEngineView *view) disconnect(centralWidget()); setCentralWidget(view); connect(view, SIGNAL(urlChanged(QUrl)), this, SLOT(handleUrlUpdated(QUrl))); + connect(view, SIGNAL(titleChanged(QString)), this, SLOT(handleTitleUpdated(QString))); this->handleUrlUpdated(view->url()); + this->handleTitleUpdated(view->title()); } void MainWindow::handleUrlChanged() @@ -74,3 +77,9 @@ void MainWindow::handleUrlUpdated(const QUrl &url) { urlLineEdit->setText(url.toString()); } + +void MainWindow::handleTitleUpdated(const QString &title) +{ + Settings settings; + setWindowTitle(title + settings.value("defaults/title", "qtwebenginebrowser").toString()); +} diff --git a/src/mainwindow.h b/src/mainwindow.h index a130087..0ad24b0 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -7,7 +7,6 @@ #include #include #include "widgets/webviewtabbar.h" -#include namespace Ui { class MainWindow; @@ -18,7 +17,7 @@ class MainWindow : public QMainWindow Q_OBJECT public: - explicit MainWindow(QSettings *settings, QUrl defaultUrl = QUrl(""), QWidget *parent = 0); + explicit MainWindow(QUrl defaultUrl = QUrl(""), QWidget *parent = 0); ~MainWindow(); public slots: @@ -28,6 +27,7 @@ private slots: void handleTabChanged(QWebEngineView *view); void handleUrlChanged(); void handleUrlUpdated(const QUrl &url); + void handleTitleUpdated(const QString &title); private: Ui::MainWindow *ui; diff --git a/src/qt-simplebrowser.pro b/src/qt-simplebrowser.pro index 65dcca6..33b960f 100644 --- a/src/qt-simplebrowser.pro +++ b/src/qt-simplebrowser.pro @@ -14,10 +14,12 @@ TEMPLATE = app SOURCES += main.cpp \ mainwindow.cpp \ browser.cpp \ - widgets/webviewtabbar.cpp + widgets/webviewtabbar.cpp \ + settings.cpp HEADERS += mainwindow.h \ browser.h \ - widgets/webviewtabbar.h + widgets/webviewtabbar.h \ + settings.h FORMS += mainwindow.ui diff --git a/src/settings.cpp b/src/settings.cpp new file mode 100644 index 0000000..0122f8f --- /dev/null +++ b/src/settings.cpp @@ -0,0 +1,18 @@ +#include "settings.h" + +QString Settings::_path = QString(""); + +Settings::Settings(QObject *parent) : + QSettings(_path, QSettings::IniFormat, parent) +{ +} + +Settings::~Settings() +{ + this->sync(); +} + +void Settings::setFilepath(const QString &path) +{ + _path = path; +} diff --git a/src/settings.h b/src/settings.h new file mode 100644 index 0000000..146bfa1 --- /dev/null +++ b/src/settings.h @@ -0,0 +1,24 @@ +#ifndef SETTINGS_H +#define SETTINGS_H + +#include + + +class Settings : public QSettings +{ + Q_OBJECT +public: + explicit Settings(QObject *parent = 0); + ~Settings(); + + static void setFilepath(const QString &path); + +signals: + +public slots: + +private: + static QString _path; +}; + +#endif // SETTINGS_H -- cgit v1.2.1