Warning, file /network/ruqola/src/widgets/administratordialog/rooms/administratorroomseditwidget.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002    SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "administratorroomseditwidget.h"
0008 #include "dialogs/messagetexteditor.h"
0009 #include "dialogs/roomavatarwidget.h"
0010 #include <KLineEditEventHandler>
0011 #include <KLocalizedString>
0012 #include <QCheckBox>
0013 #include <QFormLayout>
0014 #include <QLabel>
0015 #include <QLineEdit>
0016 
0017 AdministratorRoomsEditWidget::AdministratorRoomsEditWidget(QWidget *parent)
0018     : AdministratorRoomsEditBaseWidget{parent}
0019     , mLineEdit(new QLineEdit(this))
0020     , mDefaultCheckBox(new QCheckBox(i18n("Default"), this))
0021     , mFavoriteCheckBox(new QCheckBox(i18n("Favorite"), this))
0022     , mFeaturedCheckBox(new QCheckBox(i18n("Featured"), this))
0023     , mPrivateCheckBox(new QCheckBox(i18n("Private"), this))
0024     , mReadOnlyCheckBox(new QCheckBox(i18n("Read-Only"), this))
0025     , mArchivedCheckBox(new QCheckBox(i18n("Archived"), this))
0026     , mOwnerName(new QLabel(this))
0027     , mRoomAvatarWidget(new RoomAvatarWidget(this))
0028     , mTopic(new MessageTextEditor(this))
0029     , mAnnouncement(new MessageTextEditor(this))
0030     , mDescription(new MessageTextEditor(this))
0031 {
0032     auto mainLayout = new QFormLayout(this);
0033     mainLayout->setObjectName(QStringLiteral("mainLayout"));
0034     mainLayout->setContentsMargins({});
0035 
0036     mRoomAvatarWidget->setObjectName(QStringLiteral("mRoomAvatarWidget"));
0037     mainLayout->addWidget(mRoomAvatarWidget);
0038 
0039     mOwnerName->setObjectName(QStringLiteral("mOwnerName"));
0040     mainLayout->addRow(i18n("Room's Creator:"), mOwnerName);
0041 
0042     mLineEdit->setObjectName(QStringLiteral("mLineEdit"));
0043     mainLayout->addRow(i18n("Name:"), mLineEdit);
0044     KLineEditEventHandler::catchReturnKey(mLineEdit);
0045 
0046     mTopic->setObjectName(QStringLiteral("mComment"));
0047     mainLayout->addRow(i18n("Comment:"), mTopic);
0048 
0049     mAnnouncement->setObjectName(QStringLiteral("mAnnouncement"));
0050     mainLayout->addRow(i18n("Announcement:"), mAnnouncement);
0051 
0052     mDescription->setObjectName(QStringLiteral("mDescription"));
0053     mainLayout->addRow(i18n("Description:"), mDescription);
0054 
0055     mDefaultCheckBox->setObjectName(QStringLiteral("mDefaultCheckBox"));
0056     mFavoriteCheckBox->setObjectName(QStringLiteral("mFavoriteCheckBox"));
0057     mFeaturedCheckBox->setObjectName(QStringLiteral("mFeaturedCheckBox"));
0058     mPrivateCheckBox->setObjectName(QStringLiteral("mPrivateCheckBox"));
0059     mReadOnlyCheckBox->setObjectName(QStringLiteral("mReadOnlyCheckBox"));
0060     mArchivedCheckBox->setObjectName(QStringLiteral("mArchivedCheckBox"));
0061 
0062     mainLayout->addWidget(mReadOnlyCheckBox);
0063     mainLayout->addWidget(mPrivateCheckBox);
0064     mainLayout->addWidget(mDefaultCheckBox);
0065     mainLayout->addWidget(mFavoriteCheckBox);
0066     mainLayout->addWidget(mFeaturedCheckBox);
0067     mainLayout->addWidget(mArchivedCheckBox);
0068 }
0069 
0070 AdministratorRoomsEditWidget::~AdministratorRoomsEditWidget() = default;
0071 
0072 void AdministratorRoomsEditWidget::setRoomEditInfo(const RoomEditInfo &newRoomEditInfo)
0073 {
0074     mLineEdit->setText(newRoomEditInfo.name);
0075     mFeaturedCheckBox->setChecked(newRoomEditInfo.featured);
0076     mDefaultCheckBox->setChecked(newRoomEditInfo.defaultRoom);
0077     mFavoriteCheckBox->setChecked(newRoomEditInfo.favorite);
0078     mReadOnlyCheckBox->setChecked(newRoomEditInfo.readOnly);
0079     mPrivateCheckBox->setChecked(newRoomEditInfo.privateRoom);
0080     mArchivedCheckBox->setChecked(newRoomEditInfo.archived);
0081 
0082     mTopic->setPlainText(newRoomEditInfo.topic);
0083     mAnnouncement->setPlainText(newRoomEditInfo.announcement);
0084     mDescription->setPlainText(newRoomEditInfo.description);
0085 
0086     mOwnerName->setText(newRoomEditInfo.userOwnerName);
0087     // TODO mRoomAvatarWidget
0088 }
0089 
0090 AdministratorRoomsEditBaseWidget::RoomEditInfo AdministratorRoomsEditWidget::roomEditInfo() const
0091 {
0092     AdministratorRoomsEditBaseWidget::RoomEditInfo info;
0093     info.featured = mFeaturedCheckBox->isChecked();
0094     info.defaultRoom = mDefaultCheckBox->isChecked();
0095     info.privateRoom = mPrivateCheckBox->isChecked();
0096 
0097     info.archived = mArchivedCheckBox->isChecked();
0098 
0099     info.name = mLineEdit->text();
0100     info.favorite = mFavoriteCheckBox->isChecked();
0101 
0102     info.readOnly = mReadOnlyCheckBox->isChecked();
0103 
0104     info.topic = mTopic->toPlainText();
0105     info.announcement = mAnnouncement->toPlainText();
0106     info.description = mDescription->toPlainText();
0107 
0108     // TODO mRoomAvatarWidget
0109     return info;
0110 }
0111 
0112 #include "moc_administratorroomseditwidget.cpp"