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"