aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-07-02 09:24:39 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-07-02 09:24:39 +0200
commit9fbab94798455c79bfadee9041a78bd47ff642e4 (patch)
tree48aeaec9ad406caab07f7f4449cf01eebb17ea9c /src/main.cpp
parentAdd WIN32 to windows executable (diff)
downloadsmolbote-9fbab94798455c79bfadee9041a78bd47ff642e4.tar.xz
Replace SingleApplication with itay-grudev/SingleApplication
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp38
1 files changed, 23 insertions, 15 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 00a57d5..870120e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -84,6 +84,13 @@ int main(int argc, char **argv)
// set this, otherwise the webview becomes black when using a stylesheet
app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
+ if(app.isPrimary())
+ qDebug("app is primary");
+ else if(app.isSecondary())
+ qDebug("app is secondary");
+ else
+ qDebug("app is something?");
+
// translator
if(config->exists("browser.locale")) {
auto *translator = new QTranslator(&app);
@@ -127,28 +134,29 @@ int main(int argc, char **argv)
}
// set up socket
- bool isSingleInstance = app.bindLocalSocket(socket.value());
- if(isSingleInstance) {
-#ifdef QT_DEBUG
- qDebug("Local socket bound");
-#endif
-
- QObject::connect(&app, &Browser::messageAvailable, &app, &Browser::createSession);
- }
+ QObject::connect(&app, &Browser::receivedMessage, &app, [&app](quint32 instanceId, QByteArray message) {
+ auto doc = QJsonDocument::fromJson(message);
+ app.createSession(doc.object());
+ });
- if(session) {
+ if(app.isPrimary()) {
+ app.createSession(Session::toJsonObject(profile.value(), urls));
+ } 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;
} else {
qWarning("Could not open session [%s].", qUtf8Printable(sessionJson.fileName()));
}
- } else
- app.sendMessage(Session::toJsonObject(profile.value(), urls));
-
- if(isSingleInstance)
- return app.exec();
- else
+ } 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();
}