diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/main.cpp b/src/main.cpp index e29e547..6efb882 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -77,23 +77,26 @@ int main(int argc, char **argv) } // check for other instances - // if we socket hasn't been disabled (socket is not none) - if(parser.value(parser.socketOption) != "none") { - bool bindOk = instance.bindLocalSocket(parser.value(parser.socketOption)); - if(bindOk) { - qDebug("Connected to local socket: %s", qUtf8Printable(instance.serverName())); - } else { - // pass arguments to new instance - return instance.sendMessage(parser.value(parser.profileOption), parser.isSet(parser.newWindowOption), parser.positionalArguments()); - } + bool isSingleInstance = instance.bindLocalSocket(parser.value(parser.socketOption)); + qDebug("Connected to local socket %s: %s", qUtf8Printable(instance.serverName()), isSingleInstance ? "ok" : "failed"); + if(isSingleInstance) { + instance.setConfiguration(config); } - instance.setConfiguration(config); + // create session + { + QString profile; + if(parser.isSet(parser.profileOption)) + profile = parser.value(parser.profileOption); + else + profile = QString::fromStdString(config->value<std::string>("browser.profile").value()); + + instance.sendMessage(profile, parser.isSet(parser.newWindowOption), parser.positionalArguments()); + } - if(parser.isSet(parser.profileOption)) - instance.createSession(parser.value(parser.profileOption), parser.isSet(parser.newWindowOption), parser.positionalArguments()); - else - instance.createSession(QString::fromStdString(config->value<std::string>("browser.profile").value()), parser.isSet(parser.newWindowOption), parser.positionalArguments()); + if(!isSingleInstance) { + return 0; + } #ifdef QT_DEBUG qDebug("Startup complete in %lldms", timer.elapsed()); |