File indexing completed on 2024-06-23 05:21:18
0001 /* Copyright (C) Roland Pallai <dap78@magex.hu> 0002 0003 This file is part of the Trojita Qt IMAP e-mail client, 0004 http://trojita.flaska.net/ 0005 0006 This program is free software; you can redistribute it and/or 0007 modify it under the terms of the GNU General Public License as 0008 published by the Free Software Foundation; either version 2 of 0009 the License or (at your option) version 3 or any later version 0010 accepted by the membership of KDE e.V. (or its successor approved 0011 by the membership of KDE e.V.), which shall act as a proxy 0012 defined in Section 14 of version 3 of the license. 0013 0014 This program is distributed in the hope that it will be useful, 0015 but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 GNU General Public License for more details. 0018 0019 You should have received a copy of the GNU General Public License 0020 along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 */ 0022 0023 #ifndef AKONADI_ADDRESSBOOK 0024 #define AKONADI_ADDRESSBOOK 0025 0026 #include <QObject> 0027 #include <QSettings> 0028 0029 #include "Plugins/AddressbookPlugin.h" 0030 #include "Plugins/PluginInterface.h" 0031 0032 using namespace Plugins; 0033 0034 /** @short Akonadi address book interface 0035 0036 Akonadi is centralized database to store, index and retrieve the user's contacts and more since KDE SC 4.4. 0037 Contact lookup is entirely based on searching capabilities of Akonadi. 0038 */ 0039 class AkonadiAddressbook : public AddressbookPlugin { 0040 Q_OBJECT 0041 0042 public: 0043 AkonadiAddressbook(QObject *parent); 0044 virtual ~AkonadiAddressbook(); 0045 0046 virtual AddressbookPlugin::Features features() const; 0047 0048 public slots: 0049 virtual AddressbookCompletionJob *requestCompletion(const QString &input, const QStringList &ignores = QStringList(), int max = -1); 0050 virtual AddressbookNamesJob *requestPrettyNamesForAddress(const QString &email); 0051 virtual void openAddressbookWindow(); 0052 virtual void openContactWindow(const QString &email, const QString &displayName); 0053 }; 0054 0055 class trojita_plugin_AkonadiAddressbookPlugin : public QObject, public AddressbookPluginInterface 0056 { 0057 Q_OBJECT 0058 Q_INTERFACES(Plugins::AddressbookPluginInterface) 0059 Q_PLUGIN_METADATA(IID "net.flaska.trojita.plugins.addressbook.akonadiaddressbook") 0060 0061 public: 0062 QString name() const override; 0063 QString description() const override; 0064 AddressbookPlugin *create(QObject *parent, QSettings *settings) override; 0065 }; 0066 0067 #endif