File indexing completed on 2024-05-12 05:11:14
0001 /* 0002 * SPDX-FileCopyrightText: 2013 Daniel Vrátil <dvratil@redhat.com> 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 <Akonadi/Item> 0011 #include <QStringList> 0012 0013 namespace Akonadi 0014 { 0015 class Collection; 0016 } 0017 0018 class AbstractIndexer 0019 { 0020 public: 0021 AbstractIndexer(); 0022 virtual ~AbstractIndexer(); 0023 0024 virtual QStringList mimeTypes() const = 0; 0025 virtual void index(const Akonadi::Item &item) = 0; 0026 virtual void remove(const Akonadi::Item &item) = 0; 0027 virtual void remove(const Akonadi::Collection &item) = 0; 0028 virtual void commit() = 0; 0029 0030 virtual void move(Akonadi::Item::Id item, Akonadi::Collection::Id from, Akonadi::Collection::Id to); 0031 virtual void updateFlags(const Akonadi::Item &item, const QSet<QByteArray> &addedFlags, const QSet<QByteArray> &removed); 0032 0033 [[nodiscard]] bool respectDiacriticAndAccents() const; 0034 void setRespectDiacriticAndAccents(bool newRespectDiacriticAndAccents); 0035 0036 protected: 0037 bool mRespectDiacriticAndAccents = true; 0038 [[nodiscard]] QString normalizeString(const QString &str); 0039 };