1 /*
2 SPDX-FileCopyrightText: 2001-2002 Otto Bruggeman <otto.bruggeman@home.nl>
3 SPDX-FileCopyrightText: 2001-2002 John Firebaugh <jfirebaugh@kde.org>
4 SPDX-FileCopyrightText: 2007-2011 Kevin Kofler <kevin.kofler@chello.at>
5
6 SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9 #include "viewpage.h"
10
11 #include <QCheckBox>
12 #include <QGroupBox>
13 #include <QLayout>
14 #include <QSpinBox>
15 #include <QVBoxLayout>
16 #include <QFormLayout>
17 #include <QFontComboBox>
18 #include <QTabWidget>
19
20 #include <KColorButton>
21 #include <KLocalizedString>
22 #include <KSharedConfig>
23
24 #include "viewsettings.h"
25
ViewPage()26 ViewPage::ViewPage() : QFrame()
27 {
28 QWidget* page;
29 QVBoxLayout* layout;
30 QFormLayout* formLayout;
31 QGroupBox* colorGroupBox;
32 QGroupBox* snolGroupBox;
33 QGroupBox* tabGroupBox;
34
35 m_tabWidget = new QTabWidget(this);
36 layout = new QVBoxLayout(this);
37 layout->addWidget(m_tabWidget);
38
39 page = new QWidget(m_tabWidget);
40 layout = new QVBoxLayout(page);
41
42 // add a groupbox
43 colorGroupBox = new QGroupBox(page);
44 colorGroupBox->setTitle(i18nc("@title:group", "Colors"));
45 layout->addWidget(colorGroupBox);
46 formLayout = new QFormLayout(colorGroupBox);
47
48 // add the removeColor
49 m_removedColorButton = new KColorButton(colorGroupBox);
50 formLayout->addRow(i18nc("@label:chooser", "Removed color:"), m_removedColorButton);
51
52 // add the changeColor
53 m_changedColorButton = new KColorButton(colorGroupBox);
54 formLayout->addRow(i18nc("@label:chooser", "Changed color:"), m_changedColorButton);
55
56 // add the addColor
57 m_addedColorButton = new KColorButton(colorGroupBox);
58 formLayout->addRow(i18nc("@label:chooser", "Added color:"), m_addedColorButton);
59
60 // add the appliedColor
61 m_appliedColorButton = new KColorButton(colorGroupBox);
62 formLayout->addRow(i18nc("@label:chooser", "Applied color:"), m_appliedColorButton);
63
64 // scroll number of lines (snol)
65 snolGroupBox = new QGroupBox(page);
66 snolGroupBox->setTitle(i18nc("@title:group", "Mouse Wheel"));
67 layout->addWidget(snolGroupBox);
68 QFormLayout* snolLayout = new QFormLayout(snolGroupBox);
69
70 m_snolSpinBox = new QSpinBox(snolGroupBox);
71 m_snolSpinBox->setRange(0, 50);
72 snolLayout->addRow(i18nc("@label:spinbox", "Number of lines:"), m_snolSpinBox);
73
74 // Temporarily here for testing...
75 // number of spaces for a tab character stuff
76 tabGroupBox = new QGroupBox(page);
77 tabGroupBox->setTitle(i18nc("@title:group", "Tabs to Spaces"));
78 layout->addWidget(tabGroupBox);
79 QFormLayout* tabLayout = new QFormLayout(tabGroupBox);
80
81 m_tabSpinBox = new QSpinBox(tabGroupBox);
82 m_tabSpinBox->setRange(1, 16);
83 tabLayout->addRow(i18nc("@label:spinbox", "Number of spaces to convert a tab character to:"), m_tabSpinBox);
84
85 layout->addStretch(1);
86
87 m_tabWidget->addTab(page, i18nc("@title:tab", "Appearance"));
88
89 page = new QWidget(m_tabWidget);
90 layout = new QVBoxLayout(page);
91
92 QGroupBox* gb = new QGroupBox(page);
93 QFormLayout* layfont = new QFormLayout(gb);
94 gb->setTitle(i18nc("@title:group", "Text Font"));
95 layout->addWidget(gb);
96
97 m_fontCombo = new QFontComboBox;
98 layfont->addRow(i18nc("@label:listbox", "Font:"), m_fontCombo);
99 m_fontCombo->setObjectName(QStringLiteral("fontcombo"));
100
101 m_fontSizeSpinBox = new QSpinBox(gb);
102 m_fontSizeSpinBox->setRange(6, 24);
103 layfont->addRow(i18nc("@label:spinbox", "Size:"), m_fontSizeSpinBox);
104
105 layout->addStretch(1);
106
107 m_tabWidget->addTab(page, i18nc("@title:tab", "Fonts"));
108 }
109
~ViewPage()110 ViewPage::~ViewPage()
111 {
112
113 }
114
setSettings(ViewSettings * setts)115 void ViewPage::setSettings(ViewSettings* setts)
116 {
117 m_settings = setts;
118
119 m_addedColorButton->setColor(m_settings->m_addColor);
120 m_changedColorButton->setColor(m_settings->m_changeColor);
121 m_removedColorButton->setColor(m_settings->m_removeColor);
122 m_appliedColorButton->setColor(m_settings->m_appliedColor);
123 m_snolSpinBox->setValue(m_settings->m_scrollNoOfLines);
124 m_tabSpinBox->setValue(m_settings->m_tabToNumberOfSpaces);
125
126 m_fontCombo->setCurrentFont(m_settings->m_font.family());
127 m_fontSizeSpinBox->setValue(m_settings->m_font.pointSize());
128 }
129
settings()130 ViewSettings* ViewPage::settings()
131 {
132 return m_settings;
133 }
134
restore()135 void ViewPage::restore()
136 {
137 }
138
apply()139 void ViewPage::apply()
140 {
141 m_settings->m_addColor = m_addedColorButton->color();
142 m_settings->m_changeColor = m_changedColorButton->color();
143 m_settings->m_removeColor = m_removedColorButton->color();
144 m_settings->m_appliedColor = m_appliedColorButton->color();
145 m_settings->m_scrollNoOfLines = m_snolSpinBox->value();
146 m_settings->m_tabToNumberOfSpaces = m_tabSpinBox->value();
147
148 m_settings->m_font = QFont(m_fontCombo->currentFont());
149 m_settings->m_font.setPointSize(m_fontSizeSpinBox->value());
150
151 m_settings->saveSettings(KSharedConfig::openConfig().data());
152 }
153
setDefaults()154 void ViewPage::setDefaults()
155 {
156 m_addedColorButton->setColor(ViewSettings::default_addColor);
157 m_changedColorButton->setColor(ViewSettings::default_changeColor);
158 m_removedColorButton->setColor(ViewSettings::default_removeColor);
159 m_appliedColorButton->setColor(ViewSettings::default_appliedColor);
160 m_snolSpinBox->setValue(3);
161 m_tabSpinBox->setValue(4);
162
163 // TODO: port
164 // m_fontCombo->setCurrentFont ( KGlobalSettings::fixedFont().family() );
165 m_fontSizeSpinBox->setValue(10);
166 }
167