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 };