KTextAddons

textautogeneratetextlineeditwidget.cpp
1/*
2 SPDX-FileCopyrightText: 2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6#include "textautogeneratetextlineeditwidget.h"
7#include "widgets/textautogeneratetextlineedit.h"
8#include <KLocalizedString>
9#include <QHBoxLayout>
10#include <QPushButton>
11
12using namespace TextAutogenerateText;
13TextAutogenerateTextLineEditWidget::TextAutogenerateTextLineEditWidget(QWidget *parent)
14 : QWidget{parent}
15 , mTextAutogenerateTextLineEdit(new TextAutogenerateTextLineEdit(this))
16 , mSendMessage(new QPushButton(QIcon::fromTheme(QStringLiteral("document-send")), i18n("Send"), this))
17{
18 auto mainLayout = new QHBoxLayout(this);
19 mainLayout->setObjectName(QStringLiteral("mainLayout"));
20 mainLayout->setContentsMargins(QMargins{});
21
22 mTextAutogenerateTextLineEdit->setObjectName(QStringLiteral("mTextAutogenerateTextLineEdit"));
23 mainLayout->addWidget(mTextAutogenerateTextLineEdit, 0, Qt::AlignTop);
24
25 mSendMessage->setObjectName(QStringLiteral("mSendMessage"));
26 mainLayout->addWidget(mSendMessage, 0, Qt::AlignTop);
27
28 connect(mTextAutogenerateTextLineEdit, &TextAutogenerateTextLineEdit::sendMessage, this, [this](const QString &msg) {
29 const QString str = msg.trimmed();
30 mSendMessage->setEnabled(!str.isEmpty());
31 if (!str.isEmpty()) {
32 Q_EMIT editingFinished(str, mUuid);
33 clearLineEdit();
34 }
35 });
36 mSendMessage->setEnabled(false);
37
38 connect(mTextAutogenerateTextLineEdit, &TextAutogenerateTextLineEdit::textChanged, this, [this]() {
39 mSendMessage->setEnabled(!mTextAutogenerateTextLineEdit->document()->isEmpty());
40 });
41
42 connect(mSendMessage, &QPushButton::clicked, this, [this]() {
43 Q_EMIT editingFinished(mTextAutogenerateTextLineEdit->text(), mUuid);
44 clearLineEdit();
45 });
46 connect(mTextAutogenerateTextLineEdit, &TextAutogenerateTextLineEdit::keyPressed, this, &TextAutogenerateTextLineEditWidget::keyPressed);
47}
48
49TextAutogenerateTextLineEditWidget::~TextAutogenerateTextLineEditWidget() = default;
50
51void TextAutogenerateTextLineEditWidget::clearLineEdit()
52{
53 mTextAutogenerateTextLineEdit->clear();
54 mUuid.clear();
55}
56
57QString TextAutogenerateTextLineEditWidget::text() const
58{
59 return mTextAutogenerateTextLineEdit->text();
60}
61
62void TextAutogenerateTextLineEditWidget::setText(const QString &str)
63{
64 mTextAutogenerateTextLineEdit->setText(str);
65}
66
67QByteArray TextAutogenerateTextLineEditWidget::uuid() const
68{
69 return mUuid;
70}
71
72void TextAutogenerateTextLineEditWidget::setUuid(const QByteArray &newUuid)
73{
74 mUuid = newUuid;
75}
76
77#include "moc_textautogeneratetextlineeditwidget.cpp"
QString i18n(const char *text, const TYPE &arg...)
void clicked(bool checked)
bool isEmpty() const const
QString trimmed() const const
AlignTop
void textChanged()
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri May 2 2025 12:06:03 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.