aboutsummaryrefslogtreecommitdiff
path: root/src/singleapplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/singleapplication.cpp')
-rw-r--r--src/singleapplication.cpp36
1 files changed, 8 insertions, 28 deletions
diff --git a/src/singleapplication.cpp b/src/singleapplication.cpp
index e71d1be..0f928df 100644
--- a/src/singleapplication.cpp
+++ b/src/singleapplication.cpp
@@ -10,33 +10,8 @@
#include <QLocalServer>
#include <QLocalSocket>
#include <QDataStream>
-#include <QUrl>
#include <cstdlib>
-QHash<QString, QVariant> paramStructToHash(const SingleApplication::SessionParam &params)
-{
- QHash<QString, QVariant> hashedParams;
- hashedParams.insert("profile", params.profile);
- hashedParams.insert("newWindow", params.newWindow);
- QList<QVariant> urls;
- for(const QUrl &url : params.urls) {
- urls.append(url);
- }
- hashedParams.insert("urls", urls);
- return hashedParams;
-}
-
-SingleApplication::SessionParam paramStructFromHash(const QHash<QString, QVariant> &params)
-{
- SingleApplication::SessionParam structParams;
- structParams.profile = params.value("profile").toString();
- structParams.newWindow = params.value("newWindow").toBool();
- for(const QVariant &val : params.value("urls").toList()) {
- structParams.urls.append(val.toUrl());
- }
- return structParams;
-}
-
SingleApplication::SingleApplication(int &argc, char **argv) : QApplication(argc, argv)
{
#ifdef Q_OS_UNIX
@@ -100,14 +75,19 @@ QString SingleApplication::serverName() const
return m_localServer->fullServerName();
}
-int SingleApplication::sendMessage(const SessionParam &params)
+int SingleApplication::sendMessage(const QString &profileName, bool newWindow, const QStringList &urls)
{
QLocalSocket socket;
socket.connectToServer(LOCALSERVER_KEY);
if(socket.waitForConnected(LOCALSERVER_TIMEOUT)) {
+ QHash<QString, QVariant> hashedParams;
+ hashedParams.insert("profile", profileName);
+ hashedParams.insert("newWindow", newWindow);
+ hashedParams.insert("urls", urls);
+
QByteArray argumentData;
QDataStream ds(&argumentData, QIODevice::WriteOnly);
- ds << paramStructToHash(params);
+ ds << hashedParams;
socket.write(argumentData);
socket.waitForBytesWritten(LOCALSERVER_TIMEOUT);
@@ -140,5 +120,5 @@ void SingleApplication::parseMessage()
socket->deleteLater();
- emit messageAvailable(paramStructFromHash(params));
+ emit messageAvailable(params["profile"].toString(), params["newWindow"].toBool(), params["urls"].toStringList());
}