File indexing completed on 2025-02-16 04:55:56

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include "multilineedit.h"
0007 #include <KLocalizedString>
0008 #include <QStyleOptionFrame>
0009 
0010 using namespace KSieveUi;
0011 
0012 MultiLineEdit::MultiLineEdit(QWidget *parent)
0013     : TextCustomEditor::PlainTextEditor(parent)
0014 {
0015     setPlaceholderText(i18n("Enter message..."));
0016     setSearchSupport(false);
0017     setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
0018     connect(this, &MultiLineEdit::textChanged, this, &MultiLineEdit::valueChanged);
0019 }
0020 
0021 MultiLineEdit::~MultiLineEdit() = default;
0022 
0023 QSize MultiLineEdit::sizeHint() const
0024 {
0025     const QFontMetrics fm(font());
0026 
0027     const int h = qMax(document()->size().toSize().height() - fm.descent() + 2 * frameWidth(), 50);
0028 
0029     QStyleOptionFrame opt;
0030     opt.initFrom(this);
0031     opt.rect = QRect(0, 0, 100, h);
0032     opt.lineWidth = lineWidth();
0033     opt.midLineWidth = 0;
0034     opt.state |= QStyle::State_Sunken;
0035 
0036     QSize s = style()->sizeFromContents(QStyle::CT_LineEdit, &opt, QSize(100, h), this);
0037 
0038     return s;
0039 }
0040 
0041 QSize MultiLineEdit::minimumSizeHint() const
0042 {
0043     return sizeHint();
0044 }
0045 
0046 #include "moc_multilineedit.cpp"