diff --git a/src/widgets/kpropertiesdialog.cpp b/src/widgets/kpropertiesdialog.cpp --- a/src/widgets/kpropertiesdialog.cpp +++ b/src/widgets/kpropertiesdialog.cpp @@ -622,8 +622,8 @@ } QString query = QStringLiteral( - "((not exist [X-KDE-Protocol]) or ([X-KDE-Protocol] == '%1'))" - ).arg(item.url().scheme()); + "(((not exist [X-KDE-Protocol]) and (not exist [X-KDE-Protocols])) or ([X-KDE-Protocol] == '%1') or ('%1' in [X-KDE-Protocols]))" + ).arg(item.url().scheme()); // qDebug() << "trader query: " << query; const KService::List offers = KMimeTypeTrader::self()->query(mimetype, QStringLiteral("KPropertiesDialog/Plugin"), query); diff --git a/src/widgets/kpropertiesdialogplugin.desktop b/src/widgets/kpropertiesdialogplugin.desktop --- a/src/widgets/kpropertiesdialogplugin.desktop +++ b/src/widgets/kpropertiesdialogplugin.desktop @@ -55,3 +55,6 @@ [PropertyDef::X-KDE-Protocol] Type=QString + +[PropertyDef::X-KDE-Protocols] +Type=QStringList