File indexing completed on 2026-09-06 15:04:51
0001 /* 0002 SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "videoconferencewidget.h" 0008 0009 #include <KLocalizedString> 0010 #include <QCheckBox> 0011 #include <QFormLayout> 0012 #include <QLabel> 0013 #include <QLineEdit> 0014 0015 VideoConferenceWidget::VideoConferenceWidget(RocketChatAccount *account, QWidget *parent) 0016 : SettingsWidgetBase(account, parent) 0017 , mBigBlueEnabled(new QCheckBox(i18n("Enabled"), this)) 0018 , mServer(new QLineEdit(this)) 0019 , mSharedSecret(new QLineEdit(this)) 0020 , mAlwaysOpenNewWindow(new QCheckBox(i18n("Always Open in New Window"), this)) 0021 , mJitsiEnabled(new QCheckBox(i18n("Enabled"), this)) 0022 , mJitsiDomain(new QLineEdit(this)) 0023 , mJitsiRoomPrefix(new QLineEdit(this)) 0024 , mJitsiRoomSuffix(new QLineEdit(this)) 0025 , mJitsiEnableRoomNameHash(new QCheckBox(i18n("Enable room name hash"), this)) 0026 , mJitsiUseSSL(new QCheckBox(i18n("Use SSL"), this)) 0027 , mJitsiAlwaysOpenNewWindow(new QCheckBox(i18n("Always Open in New Window"), this)) 0028 , mJitsiEnableInChannels(new QCheckBox(i18n("Enable in Channels"), this)) 0029 , mJitsiEnableTeams(new QCheckBox(i18n("Enable for Teams"), this)) 0030 , mJitsiChromeExtensionId(new QLineEdit(this)) 0031 , mJitsiEnableJWTAuth(new QCheckBox(i18n("Enable JWT auth"), this)) 0032 , mJitsiApplicationID(new QLineEdit(this)) 0033 , mJitsiApplicationSecret(new QLineEdit(this)) 0034 , mJitsiLimitTokenJitsiRoom(new QCheckBox(i18n("Limit token to Jitsi Room"), this)) 0035 { 0036 auto bigBlueButtonLabel = createBoldLabel(i18n("BigBlueButton")); 0037 bigBlueButtonLabel->setObjectName(QStringLiteral("bigBlueButtonLabel")); 0038 mMainLayout->addWidget(bigBlueButtonLabel); 0039 0040 mBigBlueEnabled->setObjectName(QStringLiteral("mBigBlueEnabled")); 0041 mMainLayout->addWidget(mBigBlueEnabled); 0042 connectCheckBox(mBigBlueEnabled, QStringLiteral("bigbluebutton_Enabled")); 0043 0044 mServer->setObjectName(QStringLiteral("mServer")); 0045 addLineEdit(i18n("Domain"), mServer, QStringLiteral("bigbluebutton_server")); 0046 0047 mSharedSecret->setObjectName(QStringLiteral("mSharedSecret")); 0048 addLineEdit(i18n("Shared Secret"), mSharedSecret, QStringLiteral("bigbluebutton_sharedSecret")); 0049 0050 mAlwaysOpenNewWindow->setObjectName(QStringLiteral("mAlwaysOpenNewWindow")); 0051 mMainLayout->addWidget(mAlwaysOpenNewWindow); 0052 connectCheckBox(mAlwaysOpenNewWindow, QStringLiteral("bigbluebutton_Open_New_Window")); 0053 0054 auto jitsiButtonLabel = createBoldLabel(i18n("Jitsi")); 0055 jitsiButtonLabel->setObjectName(QStringLiteral("jitsiButtonLabel")); 0056 mMainLayout->addWidget(jitsiButtonLabel); 0057 0058 mJitsiEnabled->setObjectName(QStringLiteral("mJitsiEnabled")); 0059 mMainLayout->addWidget(mJitsiEnabled); 0060 connectCheckBox(mJitsiEnabled, QStringLiteral("Jitsi_Enabled")); 0061 0062 mJitsiDomain->setObjectName(QStringLiteral("mJitsiDomain")); 0063 addLineEdit(i18n("Domain"), mJitsiDomain, QStringLiteral("Jitsi_Domain")); 0064 0065 mJitsiRoomPrefix->setObjectName(QStringLiteral("mJitsiRoomPrefix")); 0066 addLineEdit(i18n("URL room prefix"), mJitsiRoomPrefix, QStringLiteral("Jitsi_URL_Room_Prefix")); 0067 0068 mJitsiRoomSuffix->setObjectName(QStringLiteral("mJitsiRoomSuffix")); 0069 addLineEdit(i18n("URL room suffix"), mJitsiRoomSuffix, QStringLiteral("Jitsi_URL_Room_Suffix")); 0070 0071 mJitsiEnableRoomNameHash->setObjectName(QStringLiteral("mJitsiEnableRoomNameHash")); 0072 mJitsiEnableRoomNameHash->setToolTip(i18n("Recommended to enable if the Jitsi instance doesn't use any authentication mechanism.")); 0073 mMainLayout->addWidget(mJitsiEnableRoomNameHash); 0074 connectCheckBox(mJitsiEnableRoomNameHash, QStringLiteral("Jitsi_URL_Room_Hash")); 0075 0076 mJitsiUseSSL->setObjectName(QStringLiteral("mJitsiUseSSL")); 0077 mMainLayout->addWidget(mJitsiUseSSL); 0078 connectCheckBox(mJitsiUseSSL, QStringLiteral("Jitsi_SSL")); 0079 0080 mJitsiAlwaysOpenNewWindow->setObjectName(QStringLiteral("mJitsiAlwaysOpenNewWindow")); 0081 mMainLayout->addWidget(mJitsiAlwaysOpenNewWindow); 0082 connectCheckBox(mJitsiAlwaysOpenNewWindow, QStringLiteral("Jitsi_Open_New_Window")); 0083 0084 mJitsiEnableInChannels->setObjectName(QStringLiteral("mJitsiEnableInChannels")); 0085 mMainLayout->addWidget(mJitsiEnableInChannels); 0086 connectCheckBox(mJitsiEnableInChannels, QStringLiteral("Jitsi_Enable_Channels")); 0087 0088 mJitsiEnableTeams->setObjectName(QStringLiteral("mJitsiEnableTeams")); 0089 mMainLayout->addWidget(mJitsiEnableTeams); 0090 connectCheckBox(mJitsiEnableTeams, QStringLiteral("Jitsi_Enable_Teams")); 0091 0092 mJitsiChromeExtensionId->setObjectName(QStringLiteral("mJitsiChromeExtensionId")); 0093 addLineEdit(i18n("Chrome Extension Id"), mJitsiChromeExtensionId, QStringLiteral("Jitsi_Chrome_Extension")); 0094 0095 mJitsiEnableJWTAuth->setObjectName(QStringLiteral("mJitsiEnableJWTAuth")); 0096 mMainLayout->addWidget(mJitsiEnableJWTAuth); 0097 connectCheckBox(mJitsiEnableJWTAuth, QStringLiteral("Jitsi_Enabled_TokenAuth")); 0098 0099 mJitsiApplicationID->setObjectName(QStringLiteral("mJitsiApplicationID")); 0100 addLineEdit(i18n("Application ID (iss)"), mJitsiApplicationID, QStringLiteral("Jitsi_Application_ID")); 0101 0102 mJitsiApplicationSecret->setObjectName(QStringLiteral("mJitsiApplicationSecret")); 0103 addLineEdit(i18n("Application Secret"), mJitsiApplicationSecret, QStringLiteral("Jitsi_Application_Secret")); 0104 0105 mJitsiLimitTokenJitsiRoom->setObjectName(QStringLiteral("mJitsiLimitTokenJitsiRoom")); 0106 mMainLayout->addWidget(mJitsiLimitTokenJitsiRoom); 0107 connectCheckBox(mJitsiLimitTokenJitsiRoom, QStringLiteral("Jitsi_Limit_Token_To_Room")); 0108 } 0109 0110 VideoConferenceWidget::~VideoConferenceWidget() = default; 0111 0112 void VideoConferenceWidget::initialize(const QMap<QString, QVariant> &mapSettings) 0113 { 0114 initializeWidget(mBigBlueEnabled, mapSettings); 0115 initializeWidget(mServer, mapSettings); 0116 initializeWidget(mSharedSecret, mapSettings); 0117 initializeWidget(mAlwaysOpenNewWindow, mapSettings); 0118 0119 initializeWidget(mJitsiEnabled, mapSettings); 0120 initializeWidget(mJitsiDomain, mapSettings); 0121 initializeWidget(mJitsiRoomPrefix, mapSettings); 0122 initializeWidget(mJitsiRoomSuffix, mapSettings); 0123 initializeWidget(mJitsiEnableRoomNameHash, mapSettings); 0124 initializeWidget(mJitsiUseSSL, mapSettings); 0125 initializeWidget(mJitsiAlwaysOpenNewWindow, mapSettings); 0126 initializeWidget(mJitsiEnableInChannels, mapSettings); 0127 initializeWidget(mJitsiEnableTeams, mapSettings); 0128 initializeWidget(mJitsiChromeExtensionId, mapSettings); 0129 initializeWidget(mJitsiEnableJWTAuth, mapSettings); 0130 initializeWidget(mJitsiApplicationID, mapSettings); 0131 initializeWidget(mJitsiApplicationSecret, mapSettings); 0132 initializeWidget(mJitsiLimitTokenJitsiRoom, mapSettings); 0133 } 0134 0135 #include "moc_videoconferencewidget.cpp"