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(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);
33 }
34 });
35 mSendMessage->setEnabled(false);
36
37 connect(mTextAutogenerateTextLineEdit, &TextAutogenerateTextLineEdit::textChanged, this, [this]() {
38 mSendMessage->setEnabled(!mTextAutogenerateTextLineEdit->document()->isEmpty());
39 });
40
41 connect(mSendMessage, &QPushButton::clicked, this, [this]() {
42 Q_EMIT editingFinished(mTextAutogenerateTextLineEdit->text());
43 mTextAutogenerateTextLineEdit->clear();
44 });
45}
46
47TextAutogenerateTextLineEditWidget::~TextAutogenerateTextLineEditWidget() = default;
48
49QString TextAutogenerateTextLineEditWidget::text() const
50{
51 return mTextAutogenerateTextLineEdit->text();
52}
53
54#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 Apr 18 2025 12:00:52 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.