1 /****************************************************************************
2 ** ui.h extension file, included from the uic-generated form implementation.
4 ** If you wish to add, delete or rename slots use Qt Designer which will
5 ** update this file, preserving your code. Create an init() slot in place of
6 ** a constructor, and a destroy() slot in place of a destructor.
7 *****************************************************************************/
9 // Basically the slider values are logarithmic (0,...,1000) whereas percent
10 // values are linear (50%,...,200%).
12 // slider = alpha * (log(percent)-log(50))
13 // with alpha = 1000/(log(200)-log(50))
15 #ifndef HADIFIXCONFIGUI_UI_H
16 #define HADIFIXCONFIGUI_UI_H
18 int percentToSlider (int percentValue
) {
19 double alpha
= 1000 / (log(200) - log(50));
20 return (int)floor (0.5 + alpha
* (log(percentValue
)-log(50)));
23 int sliderToPercent (int sliderValue
) {
24 double alpha
= 1000 / (log(200) - log(50));
25 return (int)floor(0.5 + exp (sliderValue
/alpha
+ log(50)));
28 void volumeBox_valueChanged (int percentValue
) {
29 volumeSlider
->setValue (percentToSlider (percentValue
));
32 void timeBox_valueChanged (int percentValue
) {
33 timeSlider
->setValue (percentToSlider (percentValue
));
36 void frequencyBox_valueChanged (int percentValue
) {
37 frequencySlider
->setValue (percentToSlider (percentValue
));
40 void volumeSlider_valueChanged (int sliderValue
) {
41 volumeBox
->setValue (sliderToPercent (sliderValue
));
44 void timeSlider_valueChanged (int sliderValue
) {
45 timeBox
->setValue (sliderToPercent (sliderValue
));
48 void frequencySlider_valueChanged (int sliderValue
) {
49 frequencyBox
->setValue (sliderToPercent (sliderValue
));
53 male
= KIconLoader::global()->loadIcon("male", K3Icon::Small
);
54 female
= KIconLoader::global()->loadIcon("female", K3Icon::Small
);
57 void addVoice (const QString
&filename
, bool isMale
) {
59 if (!maleVoices
.contains(filename
)) {
60 int id
= voiceCombo
->count();
61 maleVoices
.insert (filename
, id
);
62 voiceCombo
->addItem (male
, filename
);
66 if (!femaleVoices
.contains(filename
)) {
67 int id
= voiceCombo
->count();
68 femaleVoices
.insert (filename
, id
);
69 voiceCombo
->addItem (female
, filename
);
74 void addVoice (const QString
&filename
, bool isMale
, const QString
&displayname
) {
75 addVoice (filename
, isMale
);
78 defaultVoicesMap
[maleVoices
[filename
]] = filename
;
79 voiceCombo
->setItemIcon (maleVoices
[filename
], male
);
80 voiceCombo
->setItemText (maleVoices
[filename
], displayname
);
83 defaultVoicesMap
[femaleVoices
[filename
]] = filename
;
84 voiceCombo
->setItemIcon (femaleVoices
[filename
], female
);
85 voiceCombo
->setItemText (femaleVoices
[filename
], displayname
);
89 void setVoice (const QString
&filename
, bool isMale
) {
90 addVoice (filename
, isMale
);
92 voiceCombo
->setCurrentIndex (maleVoices
[filename
]);
94 voiceCombo
->setCurrentIndex (femaleVoices
[filename
]);
97 QString
getVoiceFilename() {
98 int curr
= voiceCombo
->currentIndex();
100 QString filename
= voiceCombo
->itemText(curr
);
101 if (defaultVoicesMap
.contains(curr
))
102 filename
= defaultVoicesMap
[curr
];
108 int curr
= voiceCombo
->currentIndex();
109 QString filename
= getVoiceFilename();
111 if (maleVoices
.contains(filename
))
112 return maleVoices
[filename
] == curr
;
117 void changed (const QString
&) {
121 #endif // HADIFIXCONFIGUI_UI_H