Akonadi

gidextractor.cpp
1 /*
2  Author: (2013) Christian Mollekopf <[email protected]>
3 
4  This library is free software; you can redistribute it and/or modify it
5  under the terms of the GNU Library General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or (at your
7  option) any later version.
8 
9  This library is distributed in the hope that it will be useful, but WITHOUT
10  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12  License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to the
16  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  02110-1301, USA.
18 */
19 #include "gidextractor_p.h"
20 #include "gidextractorinterface.h"
21 
22 #include "item.h"
23 #include "typepluginloader_p.h"
24 
25 using namespace Akonadi;
26 
27 QString GidExtractor::extractGid(const Item &item)
28 {
29  const QObject *object = TypePluginLoader::objectForMimeTypeAndClass(item.mimeType(), item.availablePayloadMetaTypeIds());
30  if (object) {
31  const GidExtractorInterface *extractor = qobject_cast<GidExtractorInterface *>(object);
32  if (extractor) {
33  return extractor->extractGid(item);
34  }
35  }
36  return QString();
37 }
38 
39 QString GidExtractor::getGid(const Item &item)
40 {
41  const QString gid = item.gid();
42  if (!gid.isNull()) {
43  return gid;
44  }
45  if (item.loadedPayloadParts().isEmpty()) {
46  return QString();
47  }
48  return extractGid(item);
49 }
virtual QString extractGid(const Item &item) const =0
Extracts the globally unique id of item.
bool isNull() const const
Helper integration between Akonadi and Qt.
An interface to extract the GID of an object contained in an akonadi item.
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Fri Jun 5 2020 23:08:54 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.