@@ -13,44 +13,56 @@ ConfigureDialog::ConfigureDialog(ConfigParameters& params, QWidget *parent) :
13
13
config_params(params),
14
14
xi0col(config_params.xi0color), xi1col(config_params.xi1color),
15
15
perCol(config_params.persistenceColor), perHiCol(config_params.persistenceHighlightColor),
16
- lineCol(config_params.sliceLineColor), lineHiCol(config_params.sliceLineHighlightColor)
16
+ lineCol(config_params.sliceLineColor), lineHiCol(config_params.sliceLineHighlightColor),
17
+ bettiRadius(config_params.bettiDotRadius), perRadius(config_params.persistenceDotRadius)
17
18
{
18
19
ui->setupUi (this );
19
20
21
+ // set color selectors to current colors
20
22
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (xi0col.name ());
21
23
ui->xi0colorButton ->setStyleSheet (qss);
22
24
ui->xi0colorButton ->setAutoFillBackground (true );
23
25
ui->xi0colorButton ->setFlat (true );
26
+ ui->xi0spinBox ->setValue (xi0col.alpha ());
24
27
25
28
qss = QString (" border: none; outline: none; background-color: %1;" ).arg (xi1col.name ());
26
29
ui->xi1colorButton ->setStyleSheet (qss);
27
30
ui->xi1colorButton ->setAutoFillBackground (true );
28
31
ui->xi1colorButton ->setFlat (true );
32
+ ui->xi1spinBox ->setValue (xi1col.alpha ());
29
33
30
34
qss = QString (" border: none; outline: none; background-color: %1;" ).arg (perCol.name ());
31
35
ui->persistenceColorButton ->setStyleSheet (qss);
32
36
ui->persistenceColorButton ->setAutoFillBackground (true );
33
37
ui->persistenceColorButton ->setFlat (true );
38
+ ui->persistenceSpinBox ->setValue (perCol.alpha ());
34
39
35
40
qss = QString (" border: none; outline: none; background-color: %1;" ).arg (perHiCol.name ());
36
41
ui->persistenceHighlightColorButton ->setStyleSheet (qss);
37
42
ui->persistenceHighlightColorButton ->setAutoFillBackground (true );
38
43
ui->persistenceHighlightColorButton ->setFlat (true );
44
+ ui->persistenceHighlightSpinBox ->setValue (perHiCol.alpha ());
39
45
40
46
qss = QString (" border: none; outline: none; background-color: %1;" ).arg (lineCol.name ());
41
47
ui->lineColorButton ->setStyleSheet (qss);
42
48
ui->lineColorButton ->setAutoFillBackground (true );
43
49
ui->lineColorButton ->setFlat (true );
50
+ ui->lineSpinBox ->setValue (lineCol.alpha ());
44
51
45
52
qss = QString (" border: none; outline: none; background-color: %1;" ).arg (lineHiCol.name ());
46
53
ui->lineHighlightColorButton ->setStyleSheet (qss);
47
54
ui->lineHighlightColorButton ->setAutoFillBackground (true );
48
55
ui->lineHighlightColorButton ->setFlat (true );
49
- }
56
+ ui->lineHighlightSpinBox ->setValue (lineHiCol.alpha ());
57
+
58
+ // set size selectors to current sizes
59
+ ui->bettiDotSpinBox ->setValue (bettiRadius);
60
+ ui->persistenceDotSpinBox ->setValue (perRadius);
61
+
62
+ }// end constructor
50
63
51
64
ConfigureDialog::~ConfigureDialog ()
52
65
{
53
- qDebug () << " deleting ConfigureDialog" ;
54
66
delete ui;
55
67
}
56
68
@@ -61,18 +73,18 @@ void ConfigureDialog::on_cancelButton_clicked()
61
73
62
74
void ConfigureDialog::on_okButton_clicked ()
63
75
{
64
- // save selected configuration
65
- config_params.xi0color .setRgb (xi0col.red (), xi0col.green (), xi0col.blue (), config_params.xi0color .alpha ());
66
- config_params.xi1color .setRgb (xi1col.red (), xi1col.green (), xi1col.blue (), config_params.xi1color .alpha ());
67
- config_params.persistenceColor .setRgb (perCol.red (), perCol.green (), perCol.blue (), config_params.persistenceColor .alpha ());
68
- config_params.persistenceHighlightColor .setRgb (perHiCol.red (), perHiCol.green (), perHiCol.blue (), config_params.persistenceHighlightColor .alpha ());
69
- config_params.sliceLineColor .setRgb (lineCol.red (), lineCol.green (), lineCol.blue (), config_params.sliceLineColor .alpha ());
70
- config_params.sliceLineHighlightColor .setRgb (lineHiCol.red (), lineHiCol.green (), lineHiCol.blue (), config_params.sliceLineHighlightColor .alpha ());
76
+ // update config_params to the selected parameters
77
+ config_params.xi0color = xi0col;
78
+ config_params.xi1color = xi1col;
79
+ config_params.persistenceColor = perCol;
80
+ config_params.persistenceHighlightColor = perHiCol;
81
+ config_params.sliceLineColor = lineCol;
82
+ config_params.sliceLineHighlightColor = lineHiCol;
83
+ config_params.bettiDotRadius = bettiRadius;
84
+ config_params.persistenceDotRadius = perRadius;
71
85
72
86
// redraw the diagrams
73
87
emit configuration_changed ();
74
- // /TODO: FINISH THIS
75
- // / also think about how to best set opacity of colors
76
88
77
89
// close the dialog box
78
90
close ();
@@ -85,6 +97,7 @@ void ConfigureDialog::on_xi0colorButton_clicked()
85
97
if (color.isValid ())
86
98
{
87
99
xi0col = color;
100
+ xi0col.setAlpha (ui->xi0spinBox ->value ());
88
101
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (color.name ());
89
102
ui->xi0colorButton ->setStyleSheet (qss);
90
103
ui->xi0colorButton ->setAutoFillBackground (true );
@@ -99,6 +112,7 @@ void ConfigureDialog::on_xi1colorButton_clicked()
99
112
if (color.isValid ())
100
113
{
101
114
xi1col = color;
115
+ xi1col.setAlpha (ui->xi1spinBox ->value ());
102
116
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (color.name ());
103
117
ui->xi1colorButton ->setStyleSheet (qss);
104
118
ui->xi1colorButton ->setAutoFillBackground (true );
@@ -113,6 +127,7 @@ void ConfigureDialog::on_persistenceColorButton_clicked()
113
127
if (color.isValid ())
114
128
{
115
129
perCol = color;
130
+ perCol.setAlpha (ui->persistenceSpinBox ->value ());
116
131
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (color.name ());
117
132
ui->persistenceColorButton ->setStyleSheet (qss);
118
133
ui->persistenceColorButton ->setAutoFillBackground (true );
@@ -127,6 +142,7 @@ void ConfigureDialog::on_persistenceHighlightColorButton_clicked()
127
142
if (color.isValid ())
128
143
{
129
144
perHiCol = color;
145
+ perHiCol.setAlpha (ui->persistenceHighlightSpinBox ->value ());
130
146
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (color.name ());
131
147
ui->persistenceHighlightColorButton ->setStyleSheet (qss);
132
148
ui->persistenceHighlightColorButton ->setAutoFillBackground (true );
@@ -141,6 +157,7 @@ void ConfigureDialog::on_lineColorButton_clicked()
141
157
if (color.isValid ())
142
158
{
143
159
lineCol = color;
160
+ lineCol.setAlpha (ui->lineSpinBox ->value ());
144
161
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (color.name ());
145
162
ui->lineColorButton ->setStyleSheet (qss);
146
163
ui->lineColorButton ->setAutoFillBackground (true );
@@ -155,10 +172,97 @@ void ConfigureDialog::on_lineHighlightColorButton_clicked()
155
172
if (color.isValid ())
156
173
{
157
174
lineHiCol = color;
175
+ lineHiCol.setAlpha (ui->lineHighlightSpinBox ->value ());
158
176
QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (color.name ());
159
177
ui->lineHighlightColorButton ->setStyleSheet (qss);
160
178
ui->lineHighlightColorButton ->setAutoFillBackground (true );
161
179
ui->lineHighlightColorButton ->setFlat (true );
162
180
}
163
181
}
164
182
183
+
184
+ void ConfigureDialog::on_xi0spinBox_valueChanged (int arg1)
185
+ {
186
+ xi0col.setAlpha (arg1);
187
+ }
188
+
189
+ void ConfigureDialog::on_xi1spinBox_valueChanged (int arg1)
190
+ {
191
+ xi1col.setAlpha (arg1);
192
+ }
193
+
194
+ void ConfigureDialog::on_persistenceSpinBox_valueChanged (int arg1)
195
+ {
196
+ perCol.setAlpha (arg1);
197
+ }
198
+
199
+ void ConfigureDialog::on_persistenceHighlightSpinBox_valueChanged (int arg1)
200
+ {
201
+ perHiCol.setAlpha (arg1);
202
+ }
203
+
204
+ void ConfigureDialog::on_lineSpinBox_valueChanged (int arg1)
205
+ {
206
+ lineCol.setAlpha (arg1);
207
+ }
208
+
209
+ void ConfigureDialog::on_lineHighlightSpinBox_valueChanged (int arg1)
210
+ {
211
+ lineHiCol.setAlpha (arg1);
212
+ }
213
+
214
+ void ConfigureDialog::on_defaultColorsButton_clicked ()
215
+ {
216
+ ConfigParameters defaults;
217
+
218
+ xi0col = defaults.xi0color ;
219
+ QString qss = QString (" border: none; outline: none; background-color: %1;" ).arg (xi0col.name ());
220
+ ui->xi0colorButton ->setStyleSheet (qss);
221
+ ui->xi0spinBox ->setValue (xi0col.alpha ());
222
+
223
+ xi1col = defaults.xi1color ;
224
+ qss = QString (" border: none; outline: none; background-color: %1;" ).arg (xi1col.name ());
225
+ ui->xi1colorButton ->setStyleSheet (qss);
226
+ ui->xi1spinBox ->setValue (xi1col.alpha ());
227
+
228
+ perCol = defaults.persistenceColor ;
229
+ qss = QString (" border: none; outline: none; background-color: %1;" ).arg (perCol.name ());
230
+ ui->persistenceColorButton ->setStyleSheet (qss);
231
+ ui->persistenceSpinBox ->setValue (perCol.alpha ());
232
+
233
+ perHiCol = defaults.persistenceHighlightColor ;
234
+ qss = QString (" border: none; outline: none; background-color: %1;" ).arg (perHiCol.name ());
235
+ ui->persistenceHighlightColorButton ->setStyleSheet (qss);
236
+ ui->persistenceHighlightSpinBox ->setValue (perHiCol.alpha ());
237
+
238
+ lineCol = defaults.sliceLineColor ;
239
+ qss = QString (" border: none; outline: none; background-color: %1;" ).arg (lineCol.name ());
240
+ ui->lineColorButton ->setStyleSheet (qss);
241
+ ui->lineSpinBox ->setValue (lineCol.alpha ());
242
+
243
+ lineHiCol = defaults.sliceLineHighlightColor ;
244
+ qss = QString (" border: none; outline: none; background-color: %1;" ).arg (lineHiCol.name ());
245
+ ui->lineHighlightColorButton ->setStyleSheet (qss);
246
+ ui->lineHighlightSpinBox ->setValue (lineHiCol.alpha ());
247
+ }
248
+
249
+ void ConfigureDialog::on_bettiDotSpinBox_valueChanged (int arg1)
250
+ {
251
+ bettiRadius = arg1;
252
+ }
253
+
254
+ void ConfigureDialog::on_persistenceDotSpinBox_valueChanged (int arg1)
255
+ {
256
+ perRadius = arg1;
257
+ }
258
+
259
+ void ConfigureDialog::on_defaultSizesButton_clicked ()
260
+ {
261
+ ConfigParameters defaults;
262
+
263
+ bettiRadius = defaults.bettiDotRadius ;
264
+ ui->bettiDotSpinBox ->setValue (bettiRadius);
265
+
266
+ perRadius = defaults.persistenceDotRadius ;
267
+ ui->persistenceDotSpinBox ->setValue (perRadius);
268
+ }
0 commit comments