Watch file:// prefix.

Took 15 minutes

Took 7 seconds
This commit is contained in:
Lukas Brübach 2026-06-18 04:52:28 +02:00
parent 24f0977006
commit 20e5b52bae
2 changed files with 13 additions and 11 deletions

View file

@ -26,8 +26,8 @@ class UrlSchemeEventFilter : public QObject
Q_OBJECT Q_OBJECT
public: public:
explicit UrlSchemeEventFilter(const QString &schemePrefix, QObject *parent = nullptr) explicit UrlSchemeEventFilter(const QStringList &schemePrefix, QObject *parent = nullptr)
: QObject(parent), m_prefix(schemePrefix) : QObject(parent), m_prefixes(schemePrefix)
{ {
} }
@ -41,26 +41,28 @@ public:
auto *fileEvent = static_cast<QFileOpenEvent *>(event); auto *fileEvent = static_cast<QFileOpenEvent *>(event);
qWarning() << "[MAC][FileOpenEvent] raw url:" << fileEvent->url() 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(); const QString url = fileEvent->url().toString();
qWarning() << "[MAC][FileOpenEvent] extracted url:" << url; qWarning() << "[MAC][FileOpenEvent] extracted url:" << url;
if (url.startsWith(m_prefix)) { for (auto m_prefix : m_prefixes) {
qWarning() << "[MAC][FileOpenEvent] MATCH prefix → emitting urlReceived"; if (url.startsWith(m_prefix)) {
emit urlReceived(url); qWarning() << "[MAC][FileOpenEvent] MATCH prefix → emitting urlReceived";
return true; emit urlReceived(url);
} else { return true;
qWarning() << "[MAC][FileOpenEvent] ignored (wrong scheme)"; }
} }
qWarning() << "[MAC][FileOpenEvent] ignored (wrong scheme)";
} }
return QObject::eventFilter(watched, event); return QObject::eventFilter(watched, event);
} }
private: private:
QString m_prefix; QStringList m_prefixes;
}; };
#endif // COCKATRICE_URL_SCHEME_EVENT_FILTER_H #endif // COCKATRICE_URL_SCHEME_EVENT_FILTER_H

View file

@ -205,7 +205,7 @@ int main(int argc, char *argv[])
QApplication app(argc, argv); QApplication app(argc, argv);
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
UrlSchemeEventFilter cockatriceFilter(QStringLiteral("cockatrice://")); UrlSchemeEventFilter cockatriceFilter(QStringList{QStringLiteral("cockatrice://"), QStringLiteral("file://")});
QStringList pendingMacUrls; QStringList pendingMacUrls;