File indexing completed on 2026-07-19 05:01:49
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 "administratorroomsselectroomtypewidget.h" 0008 #include <KLocalizedString> 0009 #include <QCheckBox> 0010 #include <QHBoxLayout> 0011 0012 AdministratorRoomsSelectRoomTypeWidget::AdministratorRoomsSelectRoomTypeWidget(QWidget *parent) 0013 : QWidget(parent) 0014 , mDirectRooms(new QCheckBox(i18n("Direct"), this)) 0015 , mPublicRooms(new QCheckBox(i18n("Public"), this)) 0016 , mPrivateRooms(new QCheckBox(i18n("Private"), this)) 0017 , mDiscussionRooms(new QCheckBox(i18n("Discussions"), this)) 0018 , mTeamRooms(new QCheckBox(i18n("Teams"), this)) 0019 , mOmniChannel(new QCheckBox(i18n("Omnichannel"), this)) 0020 { 0021 auto mainLayout = new QHBoxLayout(this); 0022 mainLayout->setObjectName(QStringLiteral("mainLayout")); 0023 mainLayout->setContentsMargins({}); 0024 0025 mDirectRooms->setObjectName(QStringLiteral("mDirectRooms")); 0026 mPublicRooms->setObjectName(QStringLiteral("mPublicRooms")); 0027 mPrivateRooms->setObjectName(QStringLiteral("mPrivateRooms")); 0028 mDiscussionRooms->setObjectName(QStringLiteral("mDiscussionRooms")); 0029 mTeamRooms->setObjectName(QStringLiteral("mTeamRooms")); 0030 mOmniChannel->setObjectName(QStringLiteral("mOmniChannel")); 0031 0032 mainLayout->addWidget(mDirectRooms); 0033 mainLayout->addWidget(mPublicRooms); 0034 mainLayout->addWidget(mPrivateRooms); 0035 mainLayout->addWidget(mDiscussionRooms); 0036 mainLayout->addWidget(mTeamRooms); 0037 mainLayout->addWidget(mOmniChannel); 0038 mainLayout->addStretch(0); 0039 connect(mDirectRooms, &QCheckBox::clicked, this, &AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged); 0040 connect(mPublicRooms, &QCheckBox::clicked, this, &AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged); 0041 connect(mPrivateRooms, &QCheckBox::clicked, this, &AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged); 0042 connect(mDiscussionRooms, &QCheckBox::clicked, this, &AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged); 0043 connect(mTeamRooms, &QCheckBox::clicked, this, &AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged); 0044 connect(mOmniChannel, &QCheckBox::clicked, this, &AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged); 0045 } 0046 0047 AdministratorRoomsSelectRoomTypeWidget::~AdministratorRoomsSelectRoomTypeWidget() = default; 0048 0049 void AdministratorRoomsSelectRoomTypeWidget::slotFilterChanged() 0050 { 0051 AdminRoomsFilterProxyModel::FilterRooms filters; 0052 filters |= AdminRoomsFilterProxyModel::FilterRoom::None; 0053 if (mDirectRooms->isChecked()) { 0054 filters |= AdminRoomsFilterProxyModel::FilterRoom::DirectRooms; 0055 } 0056 if (mPublicRooms->isChecked()) { 0057 filters |= AdminRoomsFilterProxyModel::FilterRoom::PublicRooms; 0058 } 0059 if (mPrivateRooms->isChecked()) { 0060 filters |= AdminRoomsFilterProxyModel::FilterRoom::PrivateRooms; 0061 } 0062 if (mDiscussionRooms->isChecked()) { 0063 filters |= AdminRoomsFilterProxyModel::FilterRoom::DiscussionRooms; 0064 } 0065 if (mOmniChannel->isChecked()) { 0066 filters |= AdminRoomsFilterProxyModel::FilterRoom::Omnichannel; 0067 } 0068 if (mTeamRooms->isChecked()) { 0069 filters |= AdminRoomsFilterProxyModel::FilterRoom::TeamRooms; 0070 } 0071 if (filters == AdminRoomsFilterProxyModel::FilterRoom::None) { 0072 filters = AdminRoomsFilterProxyModel::FilterRoom::All; 0073 } 0074 Q_EMIT filterChanged(filters); 0075 } 0076 0077 #include "moc_administratorroomsselectroomtypewidget.cpp"