File indexing completed on 2026-07-19 05:01:49

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 "administratorroomseditdialog.h"
0008 #include "administratordirectroomseditwidget.h"
0009 #include "administratorroomseditwidget.h"
0010 
0011 #include <KLocalizedString>
0012 #include <QDialogButtonBox>
0013 #include <QPushButton>
0014 #include <QVBoxLayout>
0015 
0016 AdministratorRoomsEditDialog::AdministratorRoomsEditDialog(RoomType roomType, QWidget *parent)
0017     : QDialog(parent)
0018     , mRoomType(roomType)
0019 {
0020     auto mainLayout = new QVBoxLayout(this);
0021     mainLayout->setObjectName(QStringLiteral("mainLayout"));
0022 
0023     switch (mRoomType) {
0024     case DirectRoom:
0025         setWindowTitle(i18nc("@title:window", "Edit Direct Room"));
0026         mAdministratorRoomEditWidget = new AdministratorDirectRoomsEditWidget(this);
0027         break;
0028     case Team:
0029     case Group:
0030     case Channel:
0031         setWindowTitle(i18nc("@title:window", "Edit Room"));
0032         mAdministratorRoomEditWidget = new AdministratorRoomsEditWidget(this);
0033         break;
0034     case Unknown:
0035         Q_ASSERT(false);
0036         break;
0037     }
0038     mAdministratorRoomEditWidget->setObjectName(QStringLiteral("mAdministratorRoomEditWidget"));
0039     mainLayout->addWidget(mAdministratorRoomEditWidget);
0040 
0041     auto button = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
0042     button->setObjectName(QStringLiteral("button"));
0043     mainLayout->addWidget(button);
0044 
0045     connect(button, &QDialogButtonBox::rejected, this, &AdministratorRoomsEditDialog::reject);
0046     connect(button, &QDialogButtonBox::accepted, this, &AdministratorRoomsEditDialog::accept);
0047     resize(350, 50);
0048 }
0049 
0050 AdministratorRoomsEditDialog::~AdministratorRoomsEditDialog() = default;
0051 
0052 AdministratorRoomsEditDialog::RoomType AdministratorRoomsEditDialog::roomType() const
0053 {
0054     return mRoomType;
0055 }
0056 
0057 AdministratorRoomsEditBaseWidget::RoomEditInfo AdministratorRoomsEditDialog::roomEditInfo() const
0058 {
0059     return mAdministratorRoomEditWidget->roomEditInfo();
0060 }
0061 
0062 void AdministratorRoomsEditDialog::setRoomEditInfo(const AdministratorRoomsEditBaseWidget::RoomEditInfo &newRoomEditInfo)
0063 {
0064     mAdministratorRoomEditWidget->setRoomEditInfo(newRoomEditInfo);
0065 }
0066 
0067 #include "moc_administratorroomseditdialog.cpp"