#include "preferencesdialog.h" #include "ui_preferencesdialog.h" #include "mainwindow.h" #include "eeprominterface.h" #include "splashlibrary.h" #include "helpers.h" #ifdef JOYSTICKS #include "joystick.h" #include "joystickdialog.h" #endif #include #include preferencesDialog::preferencesDialog(QWidget *parent) : QDialog(parent), ui(new Ui::preferencesDialog), updateLock(false) { ui->setupUi(this); setWindowIcon(CompanionIcon("preferences.png")); ui->splashLibraryButton->setIcon(CompanionIcon("library.png")); ui->clearImageButton->setIcon(CompanionIcon("clear.png")); QCheckBox * OptionCheckBox[]= { ui->optionCheckBox_1, ui->optionCheckBox_2, ui->optionCheckBox_3, ui->optionCheckBox_4, ui->optionCheckBox_5, ui->optionCheckBox_6, ui->optionCheckBox_7, ui->optionCheckBox_8, ui->optionCheckBox_9, ui->optionCheckBox_10, ui->optionCheckBox_11, ui->optionCheckBox_12, ui->optionCheckBox_13, ui->optionCheckBox_14, ui->optionCheckBox_15,ui->optionCheckBox_16, ui->optionCheckBox_17, ui->optionCheckBox_18, ui->optionCheckBox_19, ui->optionCheckBox_20, ui->optionCheckBox_21, ui->optionCheckBox_22, ui->optionCheckBox_23, ui->optionCheckBox_24, ui->optionCheckBox_25, ui->optionCheckBox_26, ui->optionCheckBox_27, ui->optionCheckBox_28, ui->optionCheckBox_29, ui->optionCheckBox_30, ui->optionCheckBox_31, ui->optionCheckBox_32, ui->optionCheckBox_33, ui->optionCheckBox_34, ui->optionCheckBox_35, ui->optionCheckBox_36, ui->optionCheckBox_37, ui->optionCheckBox_38, ui->optionCheckBox_39, ui->optionCheckBox_40, ui->optionCheckBox_41, ui->optionCheckBox_42, NULL }; voice=NULL; connect(ui->langCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(firmwareLangChanged())); connect(ui->voiceCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(firmwareLangChanged())); for (int i=0; OptionCheckBox[i]; i++) { optionsCheckBoxes.push_back(OptionCheckBox[i]); connect(OptionCheckBox[i], SIGNAL(toggled(bool)), this, SLOT(firmwareOptionChanged(bool))); } populateLocale(); initSettings(); connect(ui->downloadVerCB, SIGNAL(currentIndexChanged(int)), this, SLOT(baseFirmwareChanged())); connect(this, SIGNAL(accepted()), this, SLOT(writeValues())); #ifndef JOYSTICKS ui->joystickCB->hide(); ui->joystickCB->setDisabled(true); ui->joystickcalButton->hide(); ui->joystickChkB->hide(); ui->label_11->hide(); #endif resize(0,0); } preferencesDialog::~preferencesDialog() { delete ui; } void preferencesDialog::baseFirmwareChanged() { QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex()); voice=NULL; foreach(FirmwareInfo * firmware, firmwares) { if (firmware->id == selected_firmware) { if (firmware->voice) { ui->voiceLabel->show(); ui->voiceCombo->show(); ui->voice_dnld->show(); ui->sdPathButton->show(); ui->sdPath->show(); ui->sdPathLabel->show(); ui->voiceLabel->setEnabled(true); ui->voiceCombo->setEnabled(true); ui->voice_dnld->setEnabled(true); ui->sdPathButton->setEnabled(true); ui->sdPath->setEnabled(true); ui->ge_label->show(); ui->ge_lineedit->show(); ui->ge_pathButton->show(); } else { ui->voiceLabel->hide(); ui->voiceCombo->hide(); ui->voice_dnld->hide(); ui->sdPathButton->hide(); ui->sdPath->hide(); ui->sdPathLabel->hide(); ui->ge_label->hide(); ui->ge_lineedit->hide(); ui->ge_pathButton->hide(); } populateFirmwareOptions(firmware); int width=firmware->eepromInterface->getCapability(LCDWidth); ui->imageLabel->setFixedWidth(width); break; } } firmwareChanged(); } FirmwareVariant preferencesDialog::getFirmwareVariant() { QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex()); bool voice=false; foreach(FirmwareInfo * firmware, firmwares) { if (firmware->id == selected_firmware) { QString id = firmware->id; foreach(QCheckBox *cb, optionsCheckBoxes) { if (cb->isChecked()) { if (cb->text()=="voice" && cb->isChecked()) voice=true; id += QString("-") + cb->text(); } } if (! firmware->eepromInterface->getCapability(MultiLangVoice)) { if (ui->voiceCombo->count() && (voice || firmware->voice)) id += QString("-tts") + ui->voiceCombo->currentText(); } if (ui->langCombo->count()) id += QString("-") + ui->langCombo->currentText(); return GetFirmwareVariant(id); } } // Should never occur... return default_firmware_variant; } void preferencesDialog::firmwareLangChanged() { firmwareChanged(); } void preferencesDialog::firmwareOptionChanged(bool state) { QCheckBox *cb = qobject_cast(sender()); FirmwareInfo * firmware=NULL; if (cb && state) { QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex()); foreach(firmware, firmwares) { if (firmware->id == selected_firmware) { foreach(QList