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;
for (auto m_prefix : m_prefixes) {
if (url.startsWith(m_prefix)) { if (url.startsWith(m_prefix)) {
qWarning() << "[MAC][FileOpenEvent] MATCH prefix → emitting urlReceived"; qWarning() << "[MAC][FileOpenEvent] MATCH prefix → emitting urlReceived";
emit urlReceived(url); emit urlReceived(url);
return true; return true;
} else {
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;