Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Goetz <markus@woboq.com>2018-04-19 14:34:02 +0300
committerMarkus Goetz <markus@woboq.com>2018-04-19 20:24:29 +0300
commitb6f1ba38a678ac175fa53da9f087a2ede4ec1298 (patch)
tree1b8ada43af3d6e3f296e405d2962ad866a526111
parentf6a075ef54a3434e758dcddc6a29b218c4f2a247 (diff)
Placeholders: Support for macOS #6290
-rw-r--r--cmake/modules/MacOSXBundleInfo.plist.in37
-rw-r--r--src/gui/application.cpp14
-rw-r--r--src/gui/application.h1
3 files changed, 52 insertions, 0 deletions
diff --git a/cmake/modules/MacOSXBundleInfo.plist.in b/cmake/modules/MacOSXBundleInfo.plist.in
index fc2be53f7..3a402f1e8 100644
--- a/cmake/modules/MacOSXBundleInfo.plist.in
+++ b/cmake/modules/MacOSXBundleInfo.plist.in
@@ -32,5 +32,42 @@
<false/>
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>
+
+<key>UTExportedTypeDeclarations</key>
+<array>
+ <dict>
+ <key>UTTypeIdentifier</key>
+ <string>@APPLICATION_REV_DOMAIN@.placeholder</string>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <string>@APPLICATION_PLACEHOLDER_SUFFIX@</string>
+ <key>public.mime-type</key>
+ <string>application/octet-stream</string>
+ </dict>
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>public.data</string>
+ </array>
+ </dict>
+</array>
+
+<key>CFBundleDocumentTypes</key>
+<array>
+ <dict>
+ <key>CFBundleTypeName</key>
+ <string>@APPLICATION_EXECUTABLE@ Download Placeholder</string>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ <key>LSHandlerRank</key>
+ <string>Owner</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>@APPLICATION_REV_DOMAIN@.placeholder</string>
+ </array>
+ </dict>
+</array>
+
+
</dict>
</plist>
diff --git a/src/gui/application.cpp b/src/gui/application.cpp
index 703f1f843..3386cb970 100644
--- a/src/gui/application.cpp
+++ b/src/gui/application.cpp
@@ -659,4 +659,18 @@ void Application::openPlaceholder(const QString &filename)
});
}
+bool Application::event(QEvent *event)
+{
+#ifdef Q_OS_MAC
+ if (event->type() == QEvent::FileOpen) {
+ QFileOpenEvent *openEvent = static_cast<QFileOpenEvent *>(event);
+ qCDebug(lcApplication) << "QFileOpenEvent" << openEvent->file();
+ // placeholder file, open it after the Folder were created (if the app is not terminated)
+ QString fn = openEvent->file();
+ QTimer::singleShot(0, this, [this, fn] { openPlaceholder(fn); });
+ }
+#endif
+ return SharedTools::QtSingleApplication::event(event);
+}
+
} // namespace OCC
diff --git a/src/gui/application.h b/src/gui/application.h
index 744bc1819..3857cc3e7 100644
--- a/src/gui/application.h
+++ b/src/gui/application.h
@@ -82,6 +82,7 @@ protected:
void parseOptions(const QStringList &);
void setupTranslations();
void setupLogging();
+ bool event(QEvent *event);
signals:
void folderRemoved();