blob: 790e6e8e3f8d00cedb766c0871801c42405785c0 [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"
agsantos655d8e22020-08-10 17:36:47 -040029#include "mediahandleradapter.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 "utils.h"
45#include "version.h"
46#include "videocodeclistmodel.h"
47
48#include <QObject>
49
50class ClientWrapper : public QObject
51{
52 Q_OBJECT
53
54 Q_PROPERTY(UtilsAdapter *utilsAdaptor READ getUtilsAdapter NOTIFY utilsAdaptorChanged)
Andreas Traczyk84dec082020-09-01 14:31:31 -040055 Q_PROPERTY(SettingsAdapter *SettingsAdapter READ getSettingsAdapter NOTIFY SettingsAdapterChanged)
Sébastien Blin1f915762020-08-03 13:27:42 -040056 Q_PROPERTY(NameDirectory *nameDirectory READ getNameDirectory NOTIFY nameDirectoryChanged)
57 Q_PROPERTY(LRCInstance *lrcInstance READ getLRCInstance NOTIFY lrcInstanceChanged)
58 Q_PROPERTY(AccountAdapter *accountAdaptor READ getAccountAdapter NOTIFY accountAdaptorChanged)
59 Q_PROPERTY(RenderManager *renderManager READ getRenderManager NOTIFY renderManagerChanged)
60 Q_PROPERTY(lrc::api::NewAccountModel *accountModel READ getAccountModel NOTIFY accountModelChanged)
61 Q_PROPERTY(lrc::api::AVModel *avmodel READ getAvModel NOTIFY avmodelChanged)
62 Q_PROPERTY(lrc::api::DataTransferModel *dataTransferModel READ getDataTransferModel NOTIFY dataTransferModelChanged)
63 Q_PROPERTY(lrc::api::ContactModel *contactModel READ getContactModel NOTIFY contactModelChanged)
64 Q_PROPERTY(lrc::api::NewDeviceModel *deviceModel READ getDeviceModel NOTIFY deviceModelChanged)
65 Q_PROPERTY(lrc::api::PluginModel *pluginModel READ getPluginModel)
66public:
67 explicit ClientWrapper(QObject *parent = nullptr);
68
69 NameDirectory *getNameDirectory();
70 UtilsAdapter *getUtilsAdapter();
Andreas Traczyk84dec082020-09-01 14:31:31 -040071 SettingsAdapter *getSettingsAdapter();
Sébastien Blin1f915762020-08-03 13:27:42 -040072 LRCInstance *getLRCInstance();
73 AccountAdapter *getAccountAdapter();
74
75 RenderManager *getRenderManager();
76 lrc::api::NewAccountModel *getAccountModel();
77 lrc::api::AVModel *getAvModel();
78 lrc::api::DataTransferModel *getDataTransferModel();
79
80 lrc::api::ContactModel *getContactModel();
81 lrc::api::NewDeviceModel *getDeviceModel();
82 lrc::api::PluginModel *getPluginModel();
83
84signals:
85 void utilsAdaptorChanged();
Andreas Traczyk84dec082020-09-01 14:31:31 -040086 void SettingsAdapterChanged();
Sébastien Blin1f915762020-08-03 13:27:42 -040087 void nameDirectoryChanged();
88 void lrcInstanceChanged();
89 void accountAdaptorChanged();
90 void renderManagerChanged();
91 void accountModelChanged();
92 void avmodelChanged();
93 void dataTransferModelChanged();
94 void contactModelChanged();
95 void deviceModelChanged();
96};
Sébastien Blin1f915762020-08-03 13:27:42 -040097Q_DECLARE_METATYPE(ClientWrapper *)