File indexing completed on 2024-05-12 05:11:15
0001 /* 0002 * SPDX-FileCopyrightText: 2013 Vishesh Handa <me@vhanda.in> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 * 0006 */ 0007 0008 #pragma once 0009 0010 #include "abstractindexer.h" 0011 #include "xapiandatabase.h" 0012 0013 class ContactIndexer : public AbstractIndexer 0014 { 0015 public: 0016 explicit ContactIndexer(const QString &path); 0017 ~ContactIndexer() override; 0018 0019 [[nodiscard]] QStringList mimeTypes() const override; 0020 0021 void index(const Akonadi::Item &item) override; 0022 void remove(const Akonadi::Item &item) override; 0023 void remove(const Akonadi::Collection &item) override; 0024 0025 void commit() override; 0026 0027 void move(Akonadi::Item::Id itemId, Akonadi::Collection::Id from, Akonadi::Collection::Id to) override; 0028 0029 private: 0030 [[nodiscard]] bool indexContact(const Akonadi::Item &item); 0031 void indexContactGroup(const Akonadi::Item &item); 0032 0033 Akonadi::Search::XapianDatabase *m_db = nullptr; 0034 };