diff --git a/autotests/kprotocolinfotest.cpp b/autotests/kprotocolinfotest.cpp --- a/autotests/kprotocolinfotest.cpp +++ b/autotests/kprotocolinfotest.cpp @@ -59,6 +59,10 @@ QCOMPARE(KProtocolInfo::protocolClass(QStringLiteral("http")), QStringLiteral(":internet")); + QCOMPARE(KProtocolInfo::defaultMimetype(QStringLiteral("ftp")), QString()); + QCOMPARE(KProtocolInfo::defaultMimetype(QStringLiteral("rtsp")), QString("audio/x-pn-realaudio")); + QCOMPARE(KProtocolInfo::defaultMimetype(QStringLiteral("data")), QString("application/octet-stream")); + QVERIFY(KProtocolManager::supportsListing(QUrl(QStringLiteral("ftp://10.1.1.10")))); const QUrl url = QUrl::fromLocalFile(QStringLiteral("/tmp")); diff --git a/src/core/kprotocolinfo.h b/src/core/kprotocolinfo.h --- a/src/core/kprotocolinfo.h +++ b/src/core/kprotocolinfo.h @@ -231,6 +231,17 @@ */ static bool determineMimetypeFromExtension(const QString &protocol); + /** + * Returns the default mimetype for the specified protocol, if one exists. + * + * This corresponds to the "defaultMimetype=" field in the protocol description file. + * + * @param protocol the protocol to check + * @return the default mimetype of the protocol, or an empty string if none set or protocol unknown + * @since 5.60 + */ + static QString defaultMimetype(const QString &protocol); + /** * Returns the documentation path for the specified protocol. * diff --git a/src/core/kprotocolinfo.cpp b/src/core/kprotocolinfo.cpp --- a/src/core/kprotocolinfo.cpp +++ b/src/core/kprotocolinfo.cpp @@ -316,6 +316,16 @@ return prot->m_extraFields; } +QString KProtocolInfo::defaultMimetype(const QString &_protocol) +{ + KProtocolInfoPrivate *prot = KProtocolInfoFactory::self()->findProtocol(_protocol); + if (!prot) { + return QString(); + } + + return prot->m_defaultMimetype; +} + QString KProtocolInfo::docPath(const QString &_protocol) { KProtocolInfoPrivate *prot = KProtocolInfoFactory::self()->findProtocol(_protocol);