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"