From b8ea8aa986ff88e82658523ac8d40756ab871984 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 24 Aug 2018 19:49:21 +0200 Subject: MainWindow: fix load session action --- src/main.cpp | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index d7bcee0..405210f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -115,7 +115,7 @@ int main(int argc, char **argv) } // command line arguments - bool ignoreSecondary = config->exists("no-remote"); + bool isStandalone = config->exists("no-remote"); auto arguments = config->value>("args"); auto session = config->value("browser.session"); auto profile = config->value("profile.default"); @@ -138,34 +138,32 @@ int main(int argc, char **argv) } } - // - if(!ignoreSecondary) { + // if app is primary, create new sessions from received messages + if(app.isPrimary() && !isStandalone) { QObject::connect(&app, &Browser::receivedMessage, &app, [&app](quint32 instanceId, QByteArray message) { auto doc = QJsonDocument::fromJson(message); app.createSession(doc.object()); }); } - if(app.isPrimary()) { - app.createSession(Session::toJsonObject(profile.value(), urls)); - } else if(ignoreSecondary) { - // app is not primary (= secondary), and --ignore-secondary is set - return -1; - } else if(session) { - QFile sessionJson(session.value()); - if(sessionJson.open(QIODevice::ReadOnly | QIODevice::Text)) { - app.sendMessage(sessionJson.readAll()); - sessionJson.close(); - qDebug("session data sent"); - return EXIT_SUCCESS; + { + QJsonObject sessionData; + if(session) { + QFile sessionJson(session.value()); + if(sessionJson.open(QIODevice::ReadOnly | QIODevice::Text)) { + sessionData = QJsonDocument::fromJson(sessionJson.readAll()).object(); + sessionJson.close(); + } + } else { + sessionData = Session::toJsonObject(profile.value(), urls); + } + + if(app.isPrimary() || isStandalone) { + app.createSession(sessionData); } else { - qWarning("Could not open session [%s].", qUtf8Printable(sessionJson.fileName())); + // app is secondary and not standalone + return app.sendMessage(QJsonDocument(sessionData).toJson()); } - } else { - auto message = Session::toJsonObject(profile.value(), urls); - qDebug("sending message: %s", app.sendMessage(QJsonDocument(message).toJson()) ? "okay" : "failed"); - qDebug("message>>>\n%s", qUtf8Printable(QJsonDocument(message).toJson())); - return EXIT_SUCCESS; } return app.exec(); -- cgit v1.2.1