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"