File indexing completed on 2024-05-12 16:27:13
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 "channelsearchwidget.h" 0008 #include "channelsearchnamelineresultwidget.h" 0009 #include <KLocalizedString> 0010 #include <QStackedWidget> 0011 #include <QVBoxLayout> 0012 ChannelSearchWidget::ChannelSearchWidget(RocketChatAccount *account, QWidget *parent) 0013 : QWidget(parent) 0014 , mStackedWidget(new QStackedWidget(this)) 0015 , mChannelSearchNameLineEdit(new ChannelSearchNameLineEdit(account, this)) 0016 , mChannelSearchLineResult(new ChannelSearchNameLineResultWidget(this)) 0017 { 0018 auto mainLayout = new QVBoxLayout(this); 0019 mainLayout->setObjectName(QStringLiteral("mainLayout")); 0020 mainLayout->setContentsMargins({}); 0021 0022 mainLayout->addWidget(mStackedWidget); 0023 mStackedWidget->setObjectName(QStringLiteral("mStackedWidget")); 0024 mChannelSearchNameLineEdit->setObjectName(QStringLiteral("mChannelSearchNameLineEdit")); 0025 mChannelSearchNameLineEdit->setPlaceholderText(i18n("Select a channel")); 0026 mStackedWidget->addWidget(mChannelSearchNameLineEdit); 0027 0028 mChannelSearchLineResult->setObjectName(QStringLiteral("mChannelSearchLineResult")); 0029 mStackedWidget->addWidget(mChannelSearchLineResult); 0030 0031 connect(mChannelSearchNameLineEdit, &ChannelSearchNameLineEdit::newRoomName, this, &ChannelSearchWidget::slotSelectedRoom); 0032 connect(mChannelSearchLineResult, &ChannelSearchNameLineResultWidget::clearRoomName, this, &ChannelSearchWidget::slotClearRoom); 0033 } 0034 0035 ChannelSearchWidget::~ChannelSearchWidget() = default; 0036 0037 void ChannelSearchWidget::setChannelInfo(const QString &name, const QString &channelId) 0038 { 0039 mUserInfo.channelName = name; 0040 mUserInfo.channelId = channelId; 0041 slotSelectedRoom(mUserInfo); 0042 mChannelSearchLineResult->setReadOnly(true); 0043 } 0044 0045 QString ChannelSearchWidget::channelName() const 0046 { 0047 return mUserInfo.channelName; 0048 } 0049 0050 QString ChannelSearchWidget::channelId() const 0051 { 0052 return mUserInfo.channelId; 0053 } 0054 0055 void ChannelSearchWidget::slotSelectedRoom(const ChannelSearchNameLineEdit::ChannelCompletionInfo &userInfo) 0056 { 0057 mUserInfo = userInfo; 0058 mStackedWidget->setCurrentWidget(mChannelSearchLineResult); 0059 mChannelSearchLineResult->setRoomName(userInfo.channelName); 0060 Q_EMIT updateRoomName(true); 0061 } 0062 0063 void ChannelSearchWidget::slotClearRoom() 0064 { 0065 mUserInfo = ChannelSearchNameLineEdit::ChannelCompletionInfo(); 0066 mStackedWidget->setCurrentWidget(mChannelSearchNameLineEdit); 0067 Q_EMIT updateRoomName(false); 0068 } 0069 0070 #include "moc_channelsearchwidget.cpp"