diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2018-05-09 08:47:39 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2018-05-09 08:14:47 +0000 |
commit | b52bb906978db423ba8a5bbade5f96cdef850a7b (patch) | |
tree | dbbad6406c4fbf47612e73493eb60f3336561313 /src/shared/qtsingleapplication | |
parent | bf7ee29590ad2309f6e05e370dddde4bb6173a20 (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.cpp | 13 | ||||
-rw-r--r-- | src/shared/qtsingleapplication/qtsingleapplication.h | 7 |
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); |