Index: src/lib/repository.h =================================================================== --- src/lib/repository.h +++ src/lib/repository.h @@ -164,6 +164,15 @@ */ Definition definitionForFileName(const QString &fileName) const; + /** + * Returns all Definition%s for the file named @p fileName. + * The match is performed based on the \e extensions and @e mimetype of + * the definition files. + * + * @since 5.56 + */ + QVector definitionsForFileName(const QString &fileName) const; + /** * Returns the best matching Definition to the type named @p mimeType * @@ -174,6 +183,13 @@ */ Definition definitionForMimeType(const QString &mimeType) const; + /** + * Returns all Definition%s to the type named @p mimeType + * + * @since 5.56 + */ + QVector definitionsForMimeType(const QString &mimeType) const; + /** * Returns all available Definition%s. * Definition%ss are ordered by translated section and translated names, Index: src/lib/repository.cpp =================================================================== --- src/lib/repository.cpp +++ src/lib/repository.cpp @@ -78,7 +78,7 @@ return d->m_defs.value(defName); } -static Definition bestCandidate(QVector& candidates) +static Definition bestCandidate(QVector &&candidates) { if (candidates.isEmpty()) return Definition(); @@ -91,6 +91,11 @@ } Definition Repository::definitionForFileName(const QString& fileName) const +{ + return bestCandidate(definitionsForFileName(fileName)); +} + +QVector Repository::definitionsForFileName(const QString &fileName) const { QFileInfo fi(fileName); const auto name = fi.fileName(); @@ -106,10 +111,15 @@ } } - return bestCandidate(candidates); + return candidates; } Definition Repository::definitionForMimeType(const QString& mimeType) const +{ + return bestCandidate(definitionsForMimeType(mimeType)); +} + +QVector Repository::definitionsForMimeType(const QString &mimeType) const { QVector candidates; for (auto it = d->m_defs.constBegin(); it != d->m_defs.constEnd(); ++it) { @@ -121,8 +131,7 @@ } } } - - return bestCandidate(candidates); + return candidates; } QVector Repository::definitions() const