summaryrefslogtreecommitdiffstats
path: root/src/shared/qtsingleapplication
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2018-05-09 08:47:39 +0300
committerTomi Korpipää <tomi.korpipaa@qt.io>2018-05-09 08:14:47 +0000
commitb52bb906978db423ba8a5bbade5f96cdef850a7b (patch)
treedbbad6406c4fbf47612e73493eb60f3336561313 /src/shared/qtsingleapplication
parentbf7ee29590ad2309f6e05e370dddde4bb6173a20 (diff)
Support opening presentations from Finder
Task-number: QT3DS-991 Change-Id: Icd4d3d2a7838ffd21a7a1a5b905edd3ac3f330fe Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/shared/qtsingleapplication')
-rw-r--r--src/shared/qtsingleapplication/qtsingleapplication.cpp13
-rw-r--r--src/shared/qtsingleapplication/qtsingleapplication.h7
2 files changed, 20 insertions, 0 deletions
diff --git a/src/shared/qtsingleapplication/qtsingleapplication.cpp b/src/shared/qtsingleapplication/qtsingleapplication.cpp
index ae007bd7..2504c06e 100644
--- a/src/shared/qtsingleapplication/qtsingleapplication.cpp
+++ b/src/shared/qtsingleapplication/qtsingleapplication.cpp
@@ -34,6 +34,7 @@
#include <QtCore/qdir.h>
#include <QtCore/qsharedmemory.h>
#include <QtWidgets/qwidget.h>
+#include <QtGui/qevent.h>
#if defined(Q_OS_WIN)
#include <QtCore/qlibrary.h>
@@ -135,6 +136,18 @@ QtSingleApplication::~QtSingleApplication()
lockfile.unlock();
}
+#if (defined Q_OS_MACOS)
+bool QtSingleApplication::event(QEvent *event)
+{
+ if (event->type() == QEvent::FileOpen) {
+ QFileOpenEvent *foe = static_cast<QFileOpenEvent *>(event);
+ emit fileOpenRequest(foe->file());
+ return true;
+ }
+ return QApplication::event(event);
+}
+#endif
+
bool QtSingleApplication::isRunning(qint64 pid)
{
if (pid == -1) {
diff --git a/src/shared/qtsingleapplication/qtsingleapplication.h b/src/shared/qtsingleapplication/qtsingleapplication.h
index 5f9cdade..62173e7d 100644
--- a/src/shared/qtsingleapplication/qtsingleapplication.h
+++ b/src/shared/qtsingleapplication/qtsingleapplication.h
@@ -45,6 +45,10 @@ public:
bool isRunning(qint64 pid = -1);
+#if (defined Q_OS_MACOS)
+ bool event(QEvent *event);
+#endif
+
QString applicationId() const;
void setBlock(bool value);
@@ -55,6 +59,9 @@ public:
Q_SIGNALS:
void messageReceived(const QString &message, QObject *socket);
+#if (defined Q_OS_MACOS)
+ void fileOpenRequest(const QString &file);
+#endif
private:
QString instancesFileName(const QString &m_appId);