File indexing completed on 2024-05-19 05:04:03
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 "createnewdiscussionwidget.h" 0008 #include "channelsearchwidget.h" 0009 #include "misc/adduserswidget.h" 0010 #include <KLineEditEventHandler> 0011 #include <KLocalizedString> 0012 #include <KTextEdit> 0013 #include <QLabel> 0014 #include <QLineEdit> 0015 #include <QVBoxLayout> 0016 0017 CreateNewDiscussionWidget::CreateNewDiscussionWidget(RocketChatAccount *account, QWidget *parent) 0018 : QWidget(parent) 0019 , mChannelSearchWidget(new ChannelSearchWidget(account, this)) 0020 , mDiscussionNameLineEdit(new QLineEdit(this)) 0021 , mUsers(new AddUsersWidget(account, this)) 0022 , mMessageTextEdit(new KTextEdit(this)) 0023 { 0024 auto mainLayout = new QVBoxLayout(this); 0025 mainLayout->setObjectName(QStringLiteral("mainLayout")); 0026 mainLayout->setContentsMargins({}); 0027 0028 auto channelLabel = new QLabel(i18n("Channel or Group parent"), this); 0029 channelLabel->setObjectName(QStringLiteral("channelLabel")); 0030 mainLayout->addWidget(channelLabel); 0031 0032 mChannelSearchWidget->setObjectName(QStringLiteral("mChannelNameLineEdit")); 0033 connect(mChannelSearchWidget, &ChannelSearchWidget::updateRoomName, this, &CreateNewDiscussionWidget::updateOkButton); 0034 mainLayout->addWidget(mChannelSearchWidget); 0035 0036 auto discussionName = new QLabel(i18n("Discussion Name"), this); 0037 discussionName->setObjectName(QStringLiteral("discussionName")); 0038 discussionName->setTextFormat(Qt::PlainText); 0039 mainLayout->addWidget(discussionName); 0040 0041 mDiscussionNameLineEdit->setObjectName(QStringLiteral("mDiscussionNameLineEdit")); 0042 KLineEditEventHandler::catchReturnKey(mDiscussionNameLineEdit); 0043 mDiscussionNameLineEdit->setClearButtonEnabled(true); 0044 mainLayout->addWidget(mDiscussionNameLineEdit); 0045 0046 auto usersLabel = new QLabel(i18n("Invite Users"), this); 0047 usersLabel->setObjectName(QStringLiteral("usersLabel")); 0048 mainLayout->addWidget(usersLabel); 0049 0050 mUsers->setObjectName(QStringLiteral("mUsers")); 0051 mUsers->setPlaceholderText(i18n("Invite users...")); 0052 mainLayout->addWidget(mUsers); 0053 0054 auto messageLabel = new QLabel(i18n("Message"), this); 0055 messageLabel->setObjectName(QStringLiteral("messageLabel")); 0056 mainLayout->addWidget(messageLabel); 0057 0058 mMessageTextEdit->setAcceptRichText(false); 0059 mMessageTextEdit->setObjectName(QStringLiteral("mMessageTextEdit")); 0060 mMessageTextEdit->setPlaceholderText(i18n("Usually a discussion starts with a question, like \"How do I upload a picture?\"")); 0061 mainLayout->addWidget(mMessageTextEdit); 0062 } 0063 0064 CreateNewDiscussionWidget::~CreateNewDiscussionWidget() = default; 0065 0066 void CreateNewDiscussionWidget::setChannelInfo(const QString &name, const QString &channelId) 0067 { 0068 mChannelSearchWidget->setChannelInfo(name, channelId); 0069 } 0070 0071 QString CreateNewDiscussionWidget::channelId() const 0072 { 0073 return mChannelSearchWidget->channelId(); 0074 } 0075 0076 QString CreateNewDiscussionWidget::channelName() const 0077 { 0078 return mChannelSearchWidget->channelName(); 0079 } 0080 0081 void CreateNewDiscussionWidget::setDiscussionName(const QString &name) 0082 { 0083 mDiscussionNameLineEdit->setText(name); 0084 } 0085 0086 QString CreateNewDiscussionWidget::discussionName() const 0087 { 0088 return mDiscussionNameLineEdit->text(); 0089 } 0090 0091 void CreateNewDiscussionWidget::setMessage(const QString &name) 0092 { 0093 mMessageTextEdit->setPlainText(name); 0094 } 0095 0096 QString CreateNewDiscussionWidget::message() const 0097 { 0098 return mMessageTextEdit->toPlainText(); 0099 } 0100 0101 QStringList CreateNewDiscussionWidget::usersId() const 0102 { 0103 return mUsers->userIds(); 0104 } 0105 0106 #include "moc_createnewdiscussionwidget.cpp"