Advanced Settings Panel
[pierogi] / pirpreferencesform.cpp
1 #include "pirpreferencesform.h"
2 #include "ui_pirpreferencesform.h"
3 #include "pirkeysetmanager.h"
4
5 #include "mainwindow.h"
6
7 #include <QSettings>
8 #include <QComboBox>
9
10 //#include <iostream>
11
12 PIRPreferencesForm::PIRPreferencesForm(
13   QWidget *parent,
14   const PIRKeysetManager *keysetManager)
15   : QWidget(parent),
16     ui(new Ui::PIRPreferencesForm),
17     defaultKeyset(0),
18     useDefaultForVolume(false)
19 {
20   ui->setupUi(this);
21
22   mainWindow = dynamic_cast<MainWindow *>(parent);
23
24   setAttribute(Qt::WA_Maemo5StackedWindow);
25   setWindowFlags(windowFlags() | Qt::Window);
26
27   setupMacroComboBox(ui->macroKbdComboBox);
28   setupMacroComboBox(ui->macroBtnComboBox);
29
30   QSettings settings("pietrzak.org", "Pierogi");
31
32   settings.beginGroup("Preferences");
33
34   if (settings.contains("defaultKeysetName"))
35   {
36     keysetManager->findKeysetID(
37       settings.value("defaultKeysetMake").toString(),
38       settings.value("defaultKeysetName").toString(),
39       defaultKeyset);
40
41     QString displayName = settings.value("defaultKeysetMake").toString();
42     displayName.append(" ");
43     displayName.append(settings.value("defaultKeysetName").toString());
44
45     ui->defaultKeysetNameLabel->setText(displayName);
46     ui->useDefaultCheckBox->setEnabled(true);
47   }
48
49   if (settings.contains("useDefaultForVolume"))
50   {
51     useDefaultForVolume = settings.value("useDefaultForVolume").toBool();
52
53     if (useDefaultForVolume)
54     {
55       ui->useDefaultCheckBox->setChecked(true);
56     }
57   }
58
59   if (settings.contains("useAltMain"))
60   {
61     if (settings.value("useAltMain").toBool())
62     {
63       ui->altMainCheckBox->setChecked(true);
64       mainWindow->useAltMainPanel();
65     }
66   }
67
68   if (settings.contains("macroKbdFocus"))
69   {
70 /*
71     int index = mainWindow->findMacroPack(
72       settings.value("macroKbdFocus").toString());
73 */
74     int index = settings.value("macroKbdFocus").toInt();
75
76     ui->macroKbdComboBox->setCurrentIndex(index);
77     mainWindow->setMacroKbdFocus(index);
78   }
79   else
80   {
81     mainWindow->setMacroKbdFocus(0);
82   }
83
84   if (settings.contains("macroBtnFocus"))
85   {
86 /*
87     int index = mainWindow->findMacroPack(
88       settings.value("macroBtnFocus").toString());
89 */
90     int index = settings.value("macroBtnFocus").toInt();
91
92     ui->macroBtnComboBox->setCurrentIndex(index);
93     mainWindow->setMacroBtnFocus(index);
94   }
95   else
96   {
97     mainWindow->setMacroBtnFocus(0);
98   }
99
100   settings.endGroup();
101 }
102
103
104 PIRPreferencesForm::~PIRPreferencesForm()
105 {
106   delete ui;
107 }
108
109
110 void PIRPreferencesForm::on_setDefaultButton_clicked()
111 {
112   QString make = mainWindow->getCurrentMake();
113   QString name = mainWindow->getCurrentName();
114   defaultKeyset = mainWindow->getCurrentKeyset();
115   ui->useDefaultCheckBox->setEnabled(true);
116
117   QString displayName = make;
118   displayName.append(" ");
119   displayName.append(name);
120   ui->defaultKeysetNameLabel->setText(displayName);
121
122   QSettings settings("pietrzak.org", "Pierogi");
123   settings.beginGroup("Preferences");
124   settings.setValue("defaultKeysetMake", make);
125   settings.setValue("defaultKeysetName", name);
126   settings.endGroup();
127
128   mainWindow->enableButtons();
129 }
130
131 void PIRPreferencesForm::on_clearDefaultButton_clicked()
132 {
133   defaultKeyset = 0;
134   ui->defaultKeysetNameLabel->setText("None");
135   ui->useDefaultCheckBox->setEnabled(false);
136
137   QSettings settings("pietrzak.org", "Pierogi");
138   settings.beginGroup("Preferences");
139   settings.remove("defaultKeysetMake");
140   settings.remove("defaultKeysetName");
141   settings.endGroup();
142
143   mainWindow->enableButtons();
144 }
145
146
147 void PIRPreferencesForm::on_useDefaultCheckBox_stateChanged(int arg1)
148 {
149   QSettings settings("pietrzak.org", "Pierogi");
150   settings.beginGroup("Preferences");
151
152   if (arg1 == Qt::Checked)
153   {
154     useDefaultForVolume = true;
155     settings.setValue("useDefaultForVolume", true);
156   }
157   else
158   {
159     useDefaultForVolume = false;
160     settings.setValue("useDefaultForVolume", false);
161   }
162
163   settings.endGroup();
164
165   mainWindow->enableButtons();
166 }
167
168
169 void PIRPreferencesForm::on_altMainCheckBox_stateChanged(
170   int arg1)
171 {
172   QSettings settings("pietrzak.org", "Pierogi");
173
174   settings.beginGroup("Preferences");
175
176   if (arg1 == Qt::Checked)
177   {
178     settings.setValue("useAltMain", true);
179
180     mainWindow->useAltMainPanel();
181   }
182   else
183   {
184     settings.setValue("useAltMain", false);
185
186     mainWindow->useMainPanel();
187   }
188
189   settings.endGroup();
190 }
191
192
193 void PIRPreferencesForm::on_macroKbdComboBox_activated(int index)
194 {
195   QSettings settings("pietrzak.org", "Pierogi");
196   settings.beginGroup("Preferences");
197   settings.setValue("macroKbdFocus", index);
198   settings.endGroup();
199
200   mainWindow->setMacroKbdFocus(index);
201 }
202
203
204 void PIRPreferencesForm::on_macroBtnComboBox_activated(int index)
205 {
206   QSettings settings("pietrzak.org", "Pierogi");
207   settings.beginGroup("Preferences");
208   settings.setValue("macroBtnFocus", index);
209   settings.endGroup();
210
211   mainWindow->setMacroBtnFocus(index);
212   mainWindow->updateUserButtons();
213 }
214
215
216 void PIRPreferencesForm::setupMacroComboBox(
217   QComboBox *cb)
218 {
219   // Crappy hardcoded list.  Need to replace this...
220   cb->addItem("Standard Controls");
221   cb->addItem("User Defined Keyboard Macros");
222   cb->addItem("Reverse Multitap Keboard Macros");
223 }