File indexing completed on 2024-06-09 04:59:06
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "serverinfowidget.h" 0008 #include "rocketchataccount.h" 0009 #include "serverconfiginfo.h" 0010 #include <KLocalizedString> 0011 #include <QFormLayout> 0012 #include <QLabel> 0013 0014 ServerInfoWidget::ServerInfoWidget(RocketChatAccount *account, QWidget *parent) 0015 : QWidget(parent) 0016 , mAccountName(new QLabel(this)) 0017 , mUserName(new QLabel(this)) 0018 , mServerVersion(new QLabel(this)) 0019 , mServerUrl(new QLabel(this)) 0020 , mLogo(new QLabel(this)) 0021 , mRocketChatAccount(account) 0022 { 0023 auto layout = new QFormLayout(this); 0024 layout->setObjectName(QStringLiteral("layout")); 0025 layout->setContentsMargins({}); 0026 0027 mLogo->setObjectName(QStringLiteral("mLogo")); 0028 mLogo->hide(); // Hide by default 0029 layout->addWidget(mLogo); 0030 0031 mAccountName->setObjectName(QStringLiteral("mAccountName")); 0032 mAccountName->setTextInteractionFlags(Qt::TextSelectableByMouse); 0033 mAccountName->setTextFormat(Qt::PlainText); 0034 layout->addRow(i18n("Account name:"), mAccountName); 0035 0036 mUserName->setObjectName(QStringLiteral("mUserName")); 0037 mUserName->setTextInteractionFlags(Qt::TextSelectableByMouse); 0038 mUserName->setTextFormat(Qt::PlainText); 0039 layout->addRow(i18n("Username:"), mUserName); 0040 0041 mServerUrl->setObjectName(QStringLiteral("mServerUrl")); 0042 mServerUrl->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse); 0043 mServerUrl->setTextFormat(Qt::RichText); 0044 layout->addRow(i18n("Server URL:"), mServerUrl); 0045 0046 mServerVersion->setObjectName(QStringLiteral("mServerVersion")); 0047 mServerVersion->setTextInteractionFlags(Qt::TextSelectableByMouse); 0048 mServerVersion->setTextFormat(Qt::PlainText); 0049 layout->addRow(i18n("Server version:"), mServerVersion); 0050 0051 if (mRocketChatAccount) { 0052 if (mRocketChatAccount->ruqolaServerConfig()->hasAtLeastVersion(5, 0, 0)) { 0053 mEnterpriseLicense = new QLabel(this); 0054 mEnterpriseLicense->setObjectName(QStringLiteral("mEnterpriseLicense")); 0055 mEnterpriseLicense->setTextInteractionFlags(Qt::TextSelectableByMouse); 0056 mEnterpriseLicense->setTextFormat(Qt::PlainText); 0057 layout->addRow(i18n("License:"), mEnterpriseLicense); 0058 mEnterpriseLicense->setText(mRocketChatAccount->ruqolaServerConfig()->hasEnterpriseSupport() ? i18n("Enterprise") : i18n("None")); 0059 } 0060 setServerConfigInfo(mRocketChatAccount->serverConfigInfo()); 0061 } 0062 } 0063 0064 ServerInfoWidget::~ServerInfoWidget() = default; 0065 0066 void ServerInfoWidget::setServerConfigInfo(ServerConfigInfo *info) 0067 { 0068 if (info) { 0069 mAccountName->setText(info->accountName()); 0070 mUserName->setText(info->userName()); 0071 mServerVersion->setText(info->serverVersionStr()); 0072 mServerUrl->setText(QStringLiteral("<a href=\"%1\">%1</a>").arg(info->serverUrl())); 0073 const QString logoLocalUrl{mRocketChatAccount->attachmentUrlFromLocalCache(info->logoUrl()).toLocalFile()}; 0074 if (!logoLocalUrl.isEmpty()) { 0075 const QPixmap pix{logoLocalUrl}; 0076 if (!pix.isNull()) { 0077 mLogo->show(); 0078 const QPixmap scaledPixmap = pix.scaled(100, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation); 0079 mLogo->setPixmap(scaledPixmap); 0080 } 0081 } 0082 } 0083 } 0084 0085 #include "moc_serverinfowidget.cpp"