File indexing completed on 2024-06-16 04:50:13

0001 /*
0002     SPDX-FileCopyrightText: 2013 Christian Mollekopf <mollekopf@kolabsys.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include "gidextractor_p.h"
0007 #include "gidextractorinterface.h"
0008 
0009 #include "item.h"
0010 #include "typepluginloader_p.h"
0011 
0012 using namespace Akonadi;
0013 
0014 QString GidExtractor::extractGid(const Item &item)
0015 {
0016     const QObject *object = TypePluginLoader::objectForMimeTypeAndClass(item.mimeType(), item.availablePayloadMetaTypeIds());
0017     if (object) {
0018         const GidExtractorInterface *extractor = qobject_cast<const GidExtractorInterface *>(object);
0019         if (extractor) {
0020             return extractor->extractGid(item);
0021         }
0022     }
0023     return QString();
0024 }
0025 
0026 QString GidExtractor::getGid(const Item &item)
0027 {
0028     const QString gid = item.gid();
0029     if (!gid.isNull()) {
0030         return gid;
0031     }
0032     if (item.loadedPayloadParts().isEmpty()) {
0033         return QString();
0034     }
0035     return extractGid(item);
0036 }