From d43f35f56bc2d9164b6fe9aa5591eef287bebe07 Mon Sep 17 00:00:00 2001 From: Eran Mizrahi Date: Sun, 10 Dec 2017 23:33:01 +0200 Subject: Run shortcuts using moshortcut:// to avoid command line problems --- src/main.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 40224170..9b2afecc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -126,6 +126,16 @@ bool isNxmLink(const QString &link) return link.startsWith("nxm://", Qt::CaseInsensitive); } +bool isMoShortcut(const QString &link) +{ + return link.startsWith("moshortcut://", Qt::CaseInsensitive); +} + +QString moShortcutName(const QString &link) +{ + return link.mid(strlen("moshortcut://")); +} + static LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS *exceptionPtrs) { if ((exceptionPtrs->ExceptionRecord->ExceptionCode < 0x80000000) // non-critical @@ -467,7 +477,16 @@ int runApplication(MOApplication &application, SingleInstance &instance, // if we have a command line parameter, it is either a nxm link or // a binary to start if (arguments.size() > 1) { - if (isNxmLink(arguments.at(1))) { + if (isMoShortcut(arguments.at(1))) { + try { + organizer.runShortcut(moShortcutName(arguments.at(1))); + return 0; + } catch (const std::exception &e) { + reportError( + QObject::tr("failed to start shortcut: %1").arg(e.what())); + return 1; + } + } else if (isNxmLink(arguments.at(1))) { qDebug("starting download from command line: %s", qPrintable(arguments.at(1))); organizer.externalMessage(arguments.at(1)); -- cgit v1.3.1