blob: 514affe7dfa8a7278da2c51be52a1ee6de71e069 [file] [log] [blame]
Sébastien Blin1f915762020-08-03 13:27:42 -04001/*
2 * Copyright (C) 2019-2020 by Savoir-faire Linux
3 * Author: Yang Wang <yang.wang@savoirfairelinux.com>
agsantos655d8e22020-08-10 17:36:47 -04004 * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com>
Sébastien Blin1f915762020-08-03 13:27:42 -04005 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#pragma once
21
22#include "accountadapter.h"
23#include "accountlistmodel.h"
24#include "audiocodeclistmodel.h"
25#include "avadapter.h"
26#include "bannedlistmodel.h"
27#include "calladapter.h"
28#include "contactadapter.h"
agsantos90a1dbc2020-09-01 18:19:22 -040029#include "pluginadapter.h"
Sébastien Blin1f915762020-08-03 13:27:42 -040030#include "conversationsadapter.h"
31#include "deviceitemlistmodel.h"
32#include "pluginitemlistmodel.h"
agsantos655d8e22020-08-10 17:36:47 -040033#include "mediahandleritemlistmodel.h"
Sébastien Blin1f915762020-08-03 13:27:42 -040034#include "preferenceitemlistmodel.h"
35#include "distantrenderer.h"
36#include "globalinstances.h"
37#include "globalsystemtray.h"
38#include "messagesadapter.h"
39#include "namedirectory.h"
40#include "pixbufmanipulator.h"
41#include "previewrenderer.h"
42#include "qrimageprovider.h"
Andreas Traczyk84dec082020-09-01 14:31:31 -040043#include "settingsadapter.h"
Sébastien Blin1f915762020-08-03 13:27:42 -040044#include "version.h"
45#include "videocodeclistmodel.h"
46
47#include <QObject>
48
49class ClientWrapper : public QObject
50{
51 Q_OBJECT
52
Andreas Traczyk84dec082020-09-01 14:31:31 -040053 Q_PROPERTY(SettingsAdapter *SettingsAdapter READ getSettingsAdapter NOTIFY SettingsAdapterChanged)
Sébastien Blin1f915762020-08-03 13:27:42 -040054 Q_PROPERTY(NameDirectory *nameDirectory READ getNameDirectory NOTIFY nameDirectoryChanged)
55 Q_PROPERTY(LRCInstance *lrcInstance READ getLRCInstance NOTIFY lrcInstanceChanged)
56 Q_PROPERTY(AccountAdapter *accountAdaptor READ getAccountAdapter NOTIFY accountAdaptorChanged)
57 Q_PROPERTY(RenderManager *renderManager READ getRenderManager NOTIFY renderManagerChanged)
58 Q_PROPERTY(lrc::api::NewAccountModel *accountModel READ getAccountModel NOTIFY accountModelChanged)
59 Q_PROPERTY(lrc::api::AVModel *avmodel READ getAvModel NOTIFY avmodelChanged)
60 Q_PROPERTY(lrc::api::DataTransferModel *dataTransferModel READ getDataTransferModel NOTIFY dataTransferModelChanged)
61 Q_PROPERTY(lrc::api::ContactModel *contactModel READ getContactModel NOTIFY contactModelChanged)
62 Q_PROPERTY(lrc::api::NewDeviceModel *deviceModel READ getDeviceModel NOTIFY deviceModelChanged)
63 Q_PROPERTY(lrc::api::PluginModel *pluginModel READ getPluginModel)
64public:
65 explicit ClientWrapper(QObject *parent = nullptr);
66
67 NameDirectory *getNameDirectory();
Andreas Traczyk84dec082020-09-01 14:31:31 -040068 SettingsAdapter *getSettingsAdapter();
Sébastien Blin1f915762020-08-03 13:27:42 -040069 LRCInstance *getLRCInstance();
70 AccountAdapter *getAccountAdapter();
71
72 RenderManager *getRenderManager();
73 lrc::api::NewAccountModel *getAccountModel();
74 lrc::api::AVModel *getAvModel();
75 lrc::api::DataTransferModel *getDataTransferModel();
76
77 lrc::api::ContactModel *getContactModel();
78 lrc::api::NewDeviceModel *getDeviceModel();
79 lrc::api::PluginModel *getPluginModel();
80
81signals:
Andreas Traczyk84dec082020-09-01 14:31:31 -040082 void SettingsAdapterChanged();
Sébastien Blin1f915762020-08-03 13:27:42 -040083 void nameDirectoryChanged();
84 void lrcInstanceChanged();
85 void accountAdaptorChanged();
86 void renderManagerChanged();
87 void accountModelChanged();
88 void avmodelChanged();
89 void dataTransferModelChanged();
90 void contactModelChanged();
91 void deviceModelChanged();
92};
Sébastien Blin1f915762020-08-03 13:27:42 -040093Q_DECLARE_METATYPE(ClientWrapper *)