aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorItay Grudev <itay@grudev.com>2016-08-10 02:43:52 +0100
committerItay Grudev <itay@grudev.com>2016-08-10 03:43:06 +0100
commit596cf23bae223d043daf57dcb7b118e149d488e6 (patch)
treef7ea062970a6fd68a1f245756e5a0ad3d1194f42
parentAdded a basic usage example (diff)
downloadsingleapplication-596cf23bae223d043daf57dcb7b118e149d488e6.tar.xz
Added an example of an application sending it's arguments to the primary instance
-rwxr-xr-xexamples/sending_arguments/main.cpp25
-rw-r--r--examples/sending_arguments/messagereceiver.cpp12
-rw-r--r--examples/sending_arguments/messagereceiver.h15
-rwxr-xr-xexamples/sending_arguments/sending_arguments.pro9
4 files changed, 61 insertions, 0 deletions
diff --git a/examples/sending_arguments/main.cpp b/examples/sending_arguments/main.cpp
new file mode 100755
index 0000000..8368036
--- /dev/null
+++ b/examples/sending_arguments/main.cpp
@@ -0,0 +1,25 @@
+#include <SingleApplication.h>
+#include "messagereceiver.h"
+
+int main(int argc, char *argv[])
+{
+ // Allow secondary instances
+ SingleApplication app( argc, argv, true );
+
+ MessageReceiver msgReceiver;
+
+ // If this is a secondary instance
+ if( app.isSecondary() ) {
+ app.sendMessage( app.arguments().join(' ').toUtf8() );
+ return 0;
+ } else {
+ QObject::connect(
+ &app,
+ &SingleApplication::receivedMessage,
+ &msgReceiver,
+ &MessageReceiver::receivedMessage
+ );
+ }
+
+ return app.exec();
+}
diff --git a/examples/sending_arguments/messagereceiver.cpp b/examples/sending_arguments/messagereceiver.cpp
new file mode 100644
index 0000000..0560b07
--- /dev/null
+++ b/examples/sending_arguments/messagereceiver.cpp
@@ -0,0 +1,12 @@
+#include <QDebug>
+#include "messagereceiver.h"
+
+MessageReceiver::MessageReceiver(QObject *parent) : QObject(parent)
+{
+}
+
+void MessageReceiver::receivedMessage(int instanceId, QByteArray message)
+{
+ qDebug() << "Received message from instance: " << instanceId;
+ qDebug() << "Message Text: " << message;
+}
diff --git a/examples/sending_arguments/messagereceiver.h b/examples/sending_arguments/messagereceiver.h
new file mode 100644
index 0000000..50a970c
--- /dev/null
+++ b/examples/sending_arguments/messagereceiver.h
@@ -0,0 +1,15 @@
+#ifndef MESSAGERECEIVER_H
+#define MESSAGERECEIVER_H
+
+#include <QObject>
+
+class MessageReceiver : public QObject
+{
+ Q_OBJECT
+public:
+ explicit MessageReceiver(QObject *parent = 0);
+public slots:
+ void receivedMessage( int instanceId, QByteArray message );
+};
+
+#endif // MESSAGERECEIVER_H
diff --git a/examples/sending_arguments/sending_arguments.pro b/examples/sending_arguments/sending_arguments.pro
new file mode 100755
index 0000000..897636a
--- /dev/null
+++ b/examples/sending_arguments/sending_arguments.pro
@@ -0,0 +1,9 @@
+# Single Application implementation
+include(../../singleapplication.pri)
+DEFINES += QAPPLICATION_CLASS=QCoreApplication
+
+SOURCES += main.cpp \
+ messagereceiver.cpp
+
+HEADERS += \
+ messagereceiver.h