94 if (!filename.isEmpty() && filename != res->filename()) {
100 if (!name.isEmpty() && name != res->name()) {
104 foundResources.append(qMakePair(res, penalty));
109 if (exactMatch && foundResources.isEmpty()) {
121 const bool warnAboutIncorrectMd5Fetch =
122 foundResources.isEmpty() && !md5.isEmpty();
125 if (foundResources.isEmpty()) {
126 if (!filename.isEmpty()) {
127 Q_FOREACH (
KoResourceSP res, resourcesForFilename(filename)) {
130 if (!res->active()) {
134 if (!name.isEmpty() && name != res->name()) {
138 foundResources.append(qMakePair(res, penalty));
140 }
else if (!name.isEmpty()) {
144 if (!res->active()) {
148 foundResources.append(qMakePair(res, penalty));
153 auto it = std::min_element(foundResources.begin(), foundResources.end(),
154 [] (
const QPair<KoResourceSP, int> &lhs,
155 const QPair<KoResourceSP, int> &rhs) {return lhs.second < rhs.second;});
160 if (warnAboutIncorrectMd5Fetch && result) {
161 qWarning() <<
"KisResourcesInterface::ResourceSourceAdapter::bestMatch: failed to fetch a resource using md5; falling back for filename...";
162 qWarning() <<
" requested:" <<
ppVar(md5) <<
ppVar(filename) <<
ppVar(name);
163 qWarning() <<
" found:" << result;
164 qWarning() <<
" candidates:" << foundResources;
166#ifdef CRASH_ON_SANITY_CHECK_FAILURE
167 qFatal(
"Exiting...");
KoResourceSP bestMatch(const QString md5, const QString filename, const QString name)
bestMatch retrieves a resource, preferably by md5, but with filename and name as fallback for older f...
KoResourceSP exactMatch(const QString md5, const QString filename, const QString name)
exactMatch retrieves a resource, preferably by md5, but with filename and name as fallback for older ...