File indexing completed on 2024-06-02 05:26:01

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "knoteeditorconfigwidget.h"
0008 #include "attributes/notedisplayattribute.h"
0009 
0010 #include <KLocalizedString>
0011 
0012 #include <KFontRequester>
0013 #include <QCheckBox>
0014 #include <QGridLayout>
0015 #include <QLabel>
0016 #include <QSpinBox>
0017 
0018 KNoteEditorConfigWidget::KNoteEditorConfigWidget(QWidget *parent)
0019     : QWidget(parent)
0020 {
0021     auto layout = new QGridLayout(this);
0022     layout->setContentsMargins({});
0023 
0024     auto label_TabSize = new QLabel(i18n("&Tab size:"), this);
0025     layout->addWidget(label_TabSize, 0, 0, 1, 2);
0026 
0027     kcfg_TabSize = new QSpinBox(this);
0028     kcfg_TabSize->setObjectName(QLatin1StringView("kcfg_TabSize"));
0029     kcfg_TabSize->setRange(1, 40);
0030     label_TabSize->setBuddy(kcfg_TabSize);
0031     layout->addWidget(kcfg_TabSize, 0, 2);
0032 
0033     kcfg_AutoIndent = new QCheckBox(i18n("Auto &indent"), this);
0034     kcfg_AutoIndent->setObjectName(QLatin1StringView("kcfg_AutoIndent"));
0035     layout->addWidget(kcfg_AutoIndent, 1, 0, 1, 2);
0036 
0037     kcfg_RichText = new QCheckBox(i18n("&Rich text"), this);
0038     kcfg_RichText->setObjectName(QLatin1StringView("kcfg_RichText"));
0039     layout->addWidget(kcfg_RichText, 1, 2);
0040 
0041     auto label_Font = new QLabel(i18n("Text font:"), this);
0042     layout->addWidget(label_Font, 3, 0);
0043 
0044     kcfg_Font = new KFontRequester(this);
0045     kcfg_Font->setObjectName(QLatin1StringView("kcfg_Font"));
0046     kcfg_Font->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
0047     layout->addWidget(kcfg_Font, 3, 1, 1, 2);
0048 
0049     auto label_TitleFont = new QLabel(i18n("Title font:"), this);
0050     layout->addWidget(label_TitleFont, 2, 0);
0051 
0052     kcfg_TitleFont = new KFontRequester(this);
0053     kcfg_TitleFont->setObjectName(QLatin1StringView("kcfg_TitleFont"));
0054     kcfg_TitleFont->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
0055     layout->addWidget(kcfg_TitleFont, 2, 1, 1, 2);
0056     layout->setRowStretch(4, 1);
0057 }
0058 
0059 KNoteEditorConfigWidget::~KNoteEditorConfigWidget() = default;
0060 
0061 void KNoteEditorConfigWidget::load(NoteShared::NoteDisplayAttribute *attr, bool isRichText)
0062 {
0063     if (attr) {
0064         kcfg_TabSize->setValue(attr->tabSize());
0065         kcfg_AutoIndent->setChecked(attr->autoIndent());
0066         kcfg_RichText->setChecked(isRichText);
0067         kcfg_Font->setFont(attr->font());
0068         kcfg_TitleFont->setFont(attr->titleFont());
0069     }
0070 }
0071 
0072 void KNoteEditorConfigWidget::save(NoteShared::NoteDisplayAttribute *attr, bool &isRichText)
0073 {
0074     if (attr) {
0075         attr->setTabSize(kcfg_TabSize->value());
0076         attr->setAutoIndent(kcfg_AutoIndent->isChecked());
0077         isRichText = kcfg_RichText->isChecked();
0078         attr->setFont(kcfg_Font->font());
0079         attr->setTitleFont(kcfg_TitleFont->font());
0080     }
0081 }
0082 
0083 #include "moc_knoteeditorconfigwidget.cpp"