From aa8198eec380659fd3538e058b50c24b0f88743c Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 1 Jul 2018 18:13:01 +0200 Subject: Code cleanup Clean up MainWindow Configuration is now a std::unique_ptr Connect downloads and request interceptor to all profiles --- src/main.cpp | 45 ++++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 85bf5f0..00a57d5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,7 +20,7 @@ int main(int argc, char **argv) { // create and load configuration - std::shared_ptr config = std::make_shared(); + std::unique_ptr config = std::make_unique(nullptr); #ifdef QT_DEBUG QObject::connect(config.get(), &Configuration::settingChanged, [](const std::string &path, const QString &value) { qDebug("!!! setting changed %s=[%s]", path.c_str(), qUtf8Printable(value)); @@ -83,7 +83,6 @@ int main(int argc, char **argv) Browser app(argc, argv); // set this, otherwise the webview becomes black when using a stylesheet app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true); - app.setConfiguration(config); // translator if(config->exists("browser.locale")) { @@ -102,15 +101,21 @@ int main(int argc, char **argv) delete translator; } + // command line arguments + auto arguments = config->value>("args"); + + auto socket = config->value("socket"); + auto session = config->value("browser.session"); + auto profile = config->value("profile.default"); + + app.setConfiguration(config); + app.setup(profile.value()); - app.setup(QString::fromStdString(config->value("profile.default").value())); for(const Plugin &plugin : plugins) { app.registerPlugin(plugin); } - auto arguments = config->value>("args"); QStringList urls; - if(arguments) { for(const auto &u : arguments.value()) { if(pluginCommands.contains(QString::fromStdString(u))) { @@ -122,43 +127,25 @@ int main(int argc, char **argv) } // set up socket - bool isSingleInstance = app.bindLocalSocket(QString::fromStdString(config->value("socket").value())); + bool isSingleInstance = app.bindLocalSocket(socket.value()); + if(isSingleInstance) { #ifdef QT_DEBUG - qDebug("bindLocalSocket(%s) = %s", qUtf8Printable(QString::fromStdString(config->value("socket").value())), isSingleInstance ? "true" : "false"); + qDebug("Local socket bound"); #endif - // if we are the only instance, set up the browser - if(isSingleInstance) { - auto stylesheet = config->value("browser.stylesheet"); - if(stylesheet) { - QFile f(QString::fromStdString(stylesheet.value())); - if(f.open(QIODevice::ReadOnly)) { - app.setStyleSheet(f.readAll()); - f.close(); - } - } - QObject::connect(&app, &Browser::messageAvailable, &app, &Browser::createSession); } - if(config->exists("session")) { - QFile sessionJson(config->value("session").value()); + if(session) { + QFile sessionJson(session.value()); if(sessionJson.open(QIODevice::ReadOnly | QIODevice::Text)) { app.sendMessage(sessionJson.readAll()); sessionJson.close(); } else { qWarning("Could not open session [%s].", qUtf8Printable(sessionJson.fileName())); } - } else if(config->exists("browser.session")) { - QFile sessionJson(config->value("browser.session").value()); - if(sessionJson.open(QIODevice::ReadOnly | QIODevice::Text)) { - app.sendMessage(sessionJson.readAll()); - sessionJson.close(); - } else { - qWarning("Could not open browser.session [%s].", qUtf8Printable(sessionJson.fileName())); - } } else - app.sendMessage(Session::toJsonObject(config->value("profile.default").value(), urls)); + app.sendMessage(Session::toJsonObject(profile.value(), urls)); if(isSingleInstance) return app.exec(); -- cgit v1.2.1