File indexing completed on 2025-02-02 05:08:36

0001 /*
0002     SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libaccountwizard_private_export.h"
0010 #include "setupbase.h"
0011 #include <Akonadi/AgentInstance>
0012 #include <QDebug>
0013 #include <QMap>
0014 #include <QObject>
0015 
0016 class KJob;
0017 class LIBACCOUNTWIZARD_TESTS_EXPORT Resource : public SetupBase
0018 {
0019     Q_OBJECT
0020 public:
0021     struct LIBACCOUNTWIZARD_TESTS_EXPORT ResourceInfo {
0022         QString name;
0023         QString typeIdentifier;
0024         QMap<QString, QVariant> settings;
0025         [[nodiscard]] bool isValid() const;
0026     };
0027 
0028     explicit Resource(QObject *parent = nullptr);
0029     ~Resource() override;
0030 
0031     void createResource();
0032 
0033     [[nodiscard]] ResourceInfo resourceInfo() const;
0034     void setResourceInfo(const ResourceInfo &newResourceInfo);
0035 
0036 private:
0037     void instanceCreateResult(KJob *job);
0038     Akonadi::AgentInstance mInstance;
0039     ResourceInfo mResourceInfo;
0040 };
0041 Q_DECLARE_TYPEINFO(Resource::ResourceInfo, Q_RELOCATABLE_TYPE);
0042 LIBACCOUNTWIZARD_EXPORT QDebug operator<<(QDebug d, const Resource::ResourceInfo &t);