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"