diff --git a/cockatrice/src/client/url_scheme_event_filter.h b/cockatrice/src/client/url_scheme_event_filter.h index a9cd6b3c3..bb15f9531 100644 --- a/cockatrice/src/client/url_scheme_event_filter.h +++ b/cockatrice/src/client/url_scheme_event_filter.h @@ -26,8 +26,8 @@ class UrlSchemeEventFilter : public QObject Q_OBJECT public: - explicit UrlSchemeEventFilter(const QString &schemePrefix, QObject *parent = nullptr) - : QObject(parent), m_prefix(schemePrefix) + explicit UrlSchemeEventFilter(const QStringList &schemePrefix, QObject *parent = nullptr) + : QObject(parent), m_prefixes(schemePrefix) { } @@ -41,26 +41,28 @@ public: auto *fileEvent = static_cast(event); qWarning() << "[MAC][FileOpenEvent] raw url:" << fileEvent->url() - << "toString:" << fileEvent->url().toString() << "schemePrefix:" << m_prefix; + << "toString:" << fileEvent->url().toString() << "schemePrefix:" << m_prefixes; const QString url = fileEvent->url().toString(); qWarning() << "[MAC][FileOpenEvent] extracted url:" << url; - if (url.startsWith(m_prefix)) { - qWarning() << "[MAC][FileOpenEvent] MATCH prefix → emitting urlReceived"; - emit urlReceived(url); - return true; - } else { - qWarning() << "[MAC][FileOpenEvent] ignored (wrong scheme)"; + for (auto m_prefix : m_prefixes) { + if (url.startsWith(m_prefix)) { + qWarning() << "[MAC][FileOpenEvent] MATCH prefix → emitting urlReceived"; + emit urlReceived(url); + return true; + } } + + qWarning() << "[MAC][FileOpenEvent] ignored (wrong scheme)"; } return QObject::eventFilter(watched, event); } private: - QString m_prefix; + QStringList m_prefixes; }; #endif // COCKATRICE_URL_SCHEME_EVENT_FILTER_H diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index 470f502d6..5e4008081 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -205,7 +205,7 @@ int main(int argc, char *argv[]) QApplication app(argc, argv); #ifdef Q_OS_MAC - UrlSchemeEventFilter cockatriceFilter(QStringLiteral("cockatrice://")); + UrlSchemeEventFilter cockatriceFilter(QStringList{QStringLiteral("cockatrice://"), QStringLiteral("file://")}); QStringList pendingMacUrls;