File indexing completed on 2025-09-14 03:43:08
0001 /* 0002 File : NotesDock.cpp 0003 Project : LabPlot 0004 Description : Dock for configuring notes 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2016 Garvit Khatri <garvitdelhi@gmail.com> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #include "NoteDock.h" 0012 #include "kdefrontend/TemplateHandler.h" 0013 0014 #include <KConfig> 0015 #include <KConfigGroup> 0016 #include <KLocalizedString> 0017 #include <QDir> 0018 0019 NoteDock::NoteDock(QWidget* parent) 0020 : BaseDock(parent) { 0021 ui.setupUi(this); 0022 setBaseWidgets(ui.leName, ui.teComment); 0023 0024 connect(ui.kcbBgColor, &KColorButton::changed, this, &NoteDock::backgroundColorChanged); 0025 connect(ui.kcbTextColor, &KColorButton::changed, this, &NoteDock::textColorChanged); 0026 connect(ui.kfrTextFont, &KFontRequester::fontSelected, this, &NoteDock::textFontChanged); 0027 0028 auto* templateHandler = new TemplateHandler(this, QLatin1String("Note")); 0029 ui.gridLayout->addWidget(templateHandler, 8, 3); 0030 templateHandler->show(); 0031 connect(templateHandler, &TemplateHandler::loadConfigRequested, this, &NoteDock::loadConfigFromTemplate); 0032 connect(templateHandler, &TemplateHandler::saveConfigRequested, this, &NoteDock::saveConfigAsTemplate); 0033 } 0034 0035 void NoteDock::setNotesList(QList<Note*> list) { 0036 m_notesList = list; 0037 m_notes = list.first(); 0038 setAspects(list); 0039 0040 CONDITIONAL_LOCK_RETURN; 0041 0042 ui.leName->setText(m_notes->name()); 0043 ui.leName->setStyleSheet(QString()); 0044 ui.leName->setToolTip(QString()); 0045 ui.kcbBgColor->setColor(m_notes->backgroundColor()); 0046 ui.kcbTextColor->setColor(m_notes->textColor()); 0047 ui.kfrTextFont->setFont(m_notes->textFont()); 0048 } 0049 0050 //************************************************************* 0051 //********** SLOTs for changes triggered in NoteDock ********** 0052 //************************************************************* 0053 void NoteDock::backgroundColorChanged(const QColor& color) { 0054 CONDITIONAL_LOCK_RETURN; 0055 0056 for (auto* note : m_notesList) 0057 note->setBackgroundColor(color); 0058 } 0059 0060 void NoteDock::textColorChanged(const QColor& color) { 0061 CONDITIONAL_LOCK_RETURN; 0062 0063 for (auto* note : m_notesList) 0064 note->setTextColor(color); 0065 } 0066 0067 void NoteDock::textFontChanged(const QFont& font) { 0068 CONDITIONAL_LOCK_RETURN; 0069 0070 for (auto* note : m_notesList) 0071 note->setTextFont(font); 0072 } 0073 0074 //************************************************************* 0075 //************************* Settings ************************** 0076 //************************************************************* 0077 void NoteDock::loadConfigFromTemplate(KConfig& config) { 0078 KConfigGroup group = config.group(QStringLiteral("Notes")); 0079 ui.kcbBgColor->setColor(group.readEntry(QStringLiteral("BackgroundColor"), m_notes->backgroundColor())); 0080 ui.kcbTextColor->setColor(group.readEntry(QStringLiteral("TextColor"), m_notes->textColor())); 0081 ui.kfrTextFont->setFont(group.readEntry(QStringLiteral("TextColor"), m_notes->textFont())); 0082 } 0083 0084 void NoteDock::saveConfigAsTemplate(KConfig& config) { 0085 KConfigGroup group = config.group(QStringLiteral("Notes")); 0086 0087 group.writeEntry(QStringLiteral("BackgroundColor"), ui.kcbBgColor->color()); 0088 group.writeEntry(QStringLiteral("TextColor"), ui.kcbTextColor->color()); 0089 group.writeEntry(QStringLiteral("TextFont"), ui.kfrTextFont->font()); 0090 }