File indexing completed on 2024-04-28 05:42:49

0001 /*
0002     SPDX-FileCopyrightText: 2001-2002 Otto Bruggeman <otto.bruggeman@home.nl>
0003     SPDX-FileCopyrightText: 2001-2002 John Firebaugh <jfirebaugh@kde.org>
0004     SPDX-FileCopyrightText: 2007-2011 Kevin Kofler <kevin.kofler@chello.at>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "viewpage.h"
0010 
0011 #include <QCheckBox>
0012 #include <QGroupBox>
0013 #include <QLayout>
0014 #include <QSpinBox>
0015 #include <QVBoxLayout>
0016 #include <QFormLayout>
0017 #include <QFontComboBox>
0018 #include <QTabWidget>
0019 
0020 #include <KColorButton>
0021 #include <KLocalizedString>
0022 #include <KSharedConfig>
0023 
0024 #include "viewsettings.h"
0025 
0026 ViewPage::ViewPage() : QFrame()
0027 {
0028     QWidget*     page;
0029     QVBoxLayout* layout;
0030     QFormLayout* formLayout;
0031     QGroupBox*   colorGroupBox;
0032     QGroupBox*   snolGroupBox;
0033     QGroupBox*   tabGroupBox;
0034 
0035     m_tabWidget = new QTabWidget(this);
0036     layout = new QVBoxLayout(this);
0037     layout->addWidget(m_tabWidget);
0038 
0039     page   = new QWidget(m_tabWidget);
0040     layout = new QVBoxLayout(page);
0041 
0042     // add a groupbox
0043     colorGroupBox = new QGroupBox(page);
0044     colorGroupBox->setTitle(i18nc("@title:group", "Colors"));
0045     layout->addWidget(colorGroupBox);
0046     formLayout = new QFormLayout(colorGroupBox);
0047 
0048     // add the removeColor
0049     m_removedColorButton = new KColorButton(colorGroupBox);
0050     formLayout->addRow(i18nc("@label:chooser", "Removed color:"), m_removedColorButton);
0051 
0052     // add the changeColor
0053     m_changedColorButton = new KColorButton(colorGroupBox);
0054     formLayout->addRow(i18nc("@label:chooser", "Changed color:"), m_changedColorButton);
0055 
0056     // add the addColor
0057     m_addedColorButton = new KColorButton(colorGroupBox);
0058     formLayout->addRow(i18nc("@label:chooser", "Added color:"), m_addedColorButton);
0059 
0060     // add the appliedColor
0061     m_appliedColorButton = new KColorButton(colorGroupBox);
0062     formLayout->addRow(i18nc("@label:chooser", "Applied color:"), m_appliedColorButton);
0063 
0064     // scroll number of lines (snol)
0065     snolGroupBox = new QGroupBox(page);
0066     snolGroupBox->setTitle(i18nc("@title:group", "Mouse Wheel"));
0067     layout->addWidget(snolGroupBox);
0068     QFormLayout* snolLayout = new QFormLayout(snolGroupBox);
0069 
0070     m_snolSpinBox = new QSpinBox(snolGroupBox);
0071     m_snolSpinBox->setRange(0, 50);
0072     snolLayout->addRow(i18nc("@label:spinbox", "Number of lines:"), m_snolSpinBox);
0073 
0074     // Temporarily here for testing...
0075     // number of spaces for a tab character stuff
0076     tabGroupBox = new QGroupBox(page);
0077     tabGroupBox->setTitle(i18nc("@title:group", "Tabs to Spaces"));
0078     layout->addWidget(tabGroupBox);
0079     QFormLayout* tabLayout = new QFormLayout(tabGroupBox);
0080 
0081     m_tabSpinBox = new QSpinBox(tabGroupBox);
0082     m_tabSpinBox->setRange(1, 16);
0083     tabLayout->addRow(i18nc("@label:spinbox", "Number of spaces to convert a tab character to:"), m_tabSpinBox);
0084 
0085     layout->addStretch(1);
0086 
0087     m_tabWidget->addTab(page, i18nc("@title:tab", "Appearance"));
0088 
0089     page   = new QWidget(m_tabWidget);
0090     layout = new QVBoxLayout(page);
0091 
0092     QGroupBox* gb = new QGroupBox(page);
0093     QFormLayout* layfont = new QFormLayout(gb);
0094     gb->setTitle(i18nc("@title:group", "Text Font"));
0095     layout->addWidget(gb);
0096 
0097     m_fontCombo = new QFontComboBox;
0098     layfont->addRow(i18nc("@label:listbox", "Font:"), m_fontCombo);
0099     m_fontCombo->setObjectName(QStringLiteral("fontcombo"));
0100 
0101     m_fontSizeSpinBox = new QSpinBox(gb);
0102     m_fontSizeSpinBox->setRange(6, 24);
0103     layfont->addRow(i18nc("@label:spinbox", "Size:"), m_fontSizeSpinBox);
0104 
0105     layout->addStretch(1);
0106 
0107     m_tabWidget->addTab(page, i18nc("@title:tab", "Fonts"));
0108 }
0109 
0110 ViewPage::~ViewPage()
0111 {
0112 
0113 }
0114 
0115 void ViewPage::setSettings(ViewSettings* setts)
0116 {
0117     m_settings = setts;
0118 
0119     m_addedColorButton->setColor(m_settings->m_addColor);
0120     m_changedColorButton->setColor(m_settings->m_changeColor);
0121     m_removedColorButton->setColor(m_settings->m_removeColor);
0122     m_appliedColorButton->setColor(m_settings->m_appliedColor);
0123     m_snolSpinBox->setValue(m_settings->m_scrollNoOfLines);
0124     m_tabSpinBox->setValue(m_settings->m_tabToNumberOfSpaces);
0125 
0126     m_fontCombo->setCurrentFont(m_settings->m_font.family());
0127     m_fontSizeSpinBox->setValue(m_settings->m_font.pointSize());
0128 }
0129 
0130 ViewSettings* ViewPage::settings()
0131 {
0132     return m_settings;
0133 }
0134 
0135 void ViewPage::restore()
0136 {
0137 }
0138 
0139 void ViewPage::apply()
0140 {
0141     m_settings->m_addColor            = m_addedColorButton->color();
0142     m_settings->m_changeColor         = m_changedColorButton->color();
0143     m_settings->m_removeColor         = m_removedColorButton->color();
0144     m_settings->m_appliedColor        = m_appliedColorButton->color();
0145     m_settings->m_scrollNoOfLines     = m_snolSpinBox->value();
0146     m_settings->m_tabToNumberOfSpaces = m_tabSpinBox->value();
0147 
0148     m_settings->m_font                = QFont(m_fontCombo->currentFont());
0149     m_settings->m_font.setPointSize(m_fontSizeSpinBox->value());
0150 
0151     m_settings->saveSettings(KSharedConfig::openConfig().data());
0152 }
0153 
0154 void ViewPage::setDefaults()
0155 {
0156     m_addedColorButton->setColor(ViewSettings::default_addColor);
0157     m_changedColorButton->setColor(ViewSettings::default_changeColor);
0158     m_removedColorButton->setColor(ViewSettings::default_removeColor);
0159     m_appliedColorButton->setColor(ViewSettings::default_appliedColor);
0160     m_snolSpinBox->setValue(3);
0161     m_tabSpinBox->setValue(4);
0162 
0163     // TODO: port
0164     // m_fontCombo->setCurrentFont   ( KGlobalSettings::fixedFont().family() );
0165     m_fontSizeSpinBox->setValue(10);
0166 }
0167 
0168 #include "moc_viewpage.cpp"