Akonadi

agentconfigurationfactorybase.h
1 /*
2  Copyright (c) 2018 Daniel Vrátil <[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 
20 #ifndef AKONADI_AGENTCONFIGURATIONFACTORYBASE_H
21 #define AKONADI_AGENTCONFIGURATIONFACTORYBASE_H
22 
23 #include "akonadicore_export.h"
24 
25 #include <QObject>
26 #include <KSharedConfig>
27 
28 namespace Akonadi {
29 
30 class AgentConfigurationBase;
31 class AKONADICORE_EXPORT AgentConfigurationFactoryBase : public QObject
32 {
33  Q_OBJECT
34 public:
35  explicit AgentConfigurationFactoryBase(QObject *parent = nullptr);
36  ~AgentConfigurationFactoryBase() override = default;
37 
38  virtual AgentConfigurationBase *create(const KSharedConfigPtr &config, QWidget *parent, const QVariantList &args) const = 0;
39 };
40 
41 }
42 
43 #define AKONADI_AGENTCONFIG_FACTORY(FactoryName, metadata, ClassName) \
44  class FactoryName : public Akonadi::AgentConfigurationFactoryBase { \
45  Q_OBJECT \
46  Q_PLUGIN_METADATA(IID "org.freedesktop.Akonadi.AgentConfig" FILE metadata) \
47  public: \
48  FactoryName(QObject *parent = nullptr): Akonadi::AgentConfigurationFactoryBase(parent) {} \
49  Akonadi::AgentConfigurationBase *create(const KSharedConfigPtr &config, QWidget *parent, const QVariantList &args) const override { \
50  return new ClassName(config, parent, args); \
51  } \
52  };
53 
54 #endif
QAction * create(StandardAction id, const QObject *recvr, Func slot, QObject *parent)
Helper integration between Akonadi and Qt.
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon May 25 2020 22:46:07 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.