File indexing completed on 2024-12-01 04:36:34

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libruqolawidgets_private_export.h"
0010 #include <QWidget>
0011 
0012 class RocketChatAccount;
0013 class QTabWidget;
0014 class AccountSettingsWidget;
0015 class EncryptionSettingsWidget;
0016 class MessageSettingsWidget;
0017 class FileUploadSettingsWidget;
0018 class RetentionPolicySettingsWidget;
0019 class GeneralSettingsWidget;
0020 class RateLimiterWidget;
0021 class PasswordSettingsWidget;
0022 class VideoConferenceWidget;
0023 class IrcFederationWidget;
0024 class WebDavSettingsWidget;
0025 class LDapSettingsWidget;
0026 class LayoutSettingsWidget;
0027 class EnterpriseSettingsWidget;
0028 class SettingsWidgetBase;
0029 class UserDataDownloadWidget;
0030 class SlackBridgeWidget;
0031 class LogsSettingsWidget;
0032 class EmailSettingsWidget;
0033 class MobileSettingsWidget;
0034 class TroubleshootSettingsWidget;
0035 class ConferenceCallSettingsWidget;
0036 class WebRtcSettingsWidget;
0037 class CasSettingsWidget;
0038 class OauthSettingsWidget;
0039 class AnalyticsWidget;
0040 class IrcWidget;
0041 class LIBRUQOLAWIDGETS_TESTS_EXPORT AdministratorSettingsWidget : public QWidget
0042 {
0043     Q_OBJECT
0044 public:
0045     explicit AdministratorSettingsWidget(RocketChatAccount *account, QWidget *parent = nullptr);
0046     ~AdministratorSettingsWidget() override;
0047 
0048     void loadSettings();
0049 
0050 private:
0051     LIBRUQOLAWIDGETS_NO_EXPORT void initialize(const QJsonObject &obj);
0052     LIBRUQOLAWIDGETS_NO_EXPORT void updateState(bool state);
0053     LIBRUQOLAWIDGETS_NO_EXPORT void initializeValues(SettingsWidgetBase *widget, const QMap<QString, QVariant> &mapSettings);
0054     QTabWidget *const mTabWidget;
0055     AccountSettingsWidget *const mAccountSettingsWidget;
0056     EncryptionSettingsWidget *const mEncryptionSettingsWidget;
0057     MessageSettingsWidget *const mMessageSettingsWidget;
0058     FileUploadSettingsWidget *const mUploadFileSettingsWidget;
0059     RetentionPolicySettingsWidget *const mRetentionPolicySettingsWidget;
0060     GeneralSettingsWidget *const mGeneralSettingsWidget;
0061     RateLimiterWidget *const mRateLimiterWidget;
0062     PasswordSettingsWidget *const mPasswordSettingsWidget;
0063     VideoConferenceWidget *const mVideoConferenceWidget;
0064     IrcFederationWidget *const mIrcFederationWidget;
0065     WebDavSettingsWidget *const mWebDavSettingsWidget;
0066     LDapSettingsWidget *const mLDapSettingsWidget;
0067     LayoutSettingsWidget *const mLayoutSettingsWidget;
0068     EnterpriseSettingsWidget *const mEnterpriseSettingsWidget;
0069     UserDataDownloadWidget *const mUserDataDownloadWidget;
0070     SlackBridgeWidget *const mSlackBridgeWidget;
0071     LogsSettingsWidget *const mLogsSettingsWidget;
0072     EmailSettingsWidget *const mEmailSettingsWidget;
0073     MobileSettingsWidget *const mMobileSettingsWidget;
0074     TroubleshootSettingsWidget *const mTroubleshootSettingsWidget;
0075     ConferenceCallSettingsWidget *const mConferenceCallSettingsWidget;
0076     WebRtcSettingsWidget *const mWebRtcSettingsWidget;
0077     CasSettingsWidget *const mCasSettingsWidget;
0078     OauthSettingsWidget *const mOauthSettingsWidget;
0079     AnalyticsWidget *const mAnalyticsWidget;
0080     IrcWidget *const mIrcWidget;
0081     RocketChatAccount *const mRocketChatAccount;
0082 };