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"