void OptionDialog::setEngine(int selected) { Brewtarget::DBTypes newEngine = (Brewtarget::DBTypes)selected; setDbDialog(newEngine); testRequired(); }
void OptionDialog::setEngine(int selected) { Brewtarget::DBTypes newEngine = (Brewtarget::DBTypes)selected; groupBox_dbConfig->setEnabled(newEngine != Brewtarget::SQLITE); testRequired(); }
OptionDialog::OptionDialog(QWidget* parent) { int i; // I need a lot of control over what is displayed on the DbConfig dialog. // Maybe designer can do it? No idea. So I did this hybrid model, and I // think it will end up biting my ... // anyway. It isn't pretty setupUi(this); createPostgresElements(); createSQLiteElements(); if( parent != 0 ) { setWindowIcon(parent->windowIcon()); } ndxToLangCode << "ca" << "cs" << "da" << "de" << "el" << "en" << "es" << "et" << "eu" << "fr" << "gl" << "hu" << "it" << "lv" << "nb" << "nl" << "pl" << "pt" << "ru" << "sr" << "sv" << "tr" << "zh"; // Do this just to have model indices to set icons. comboBox_lang->addItems(ndxToLangCode); // MUST correspond to ndxToLangCode. langIcons << /*ca*/ QIcon(":images/flagCatalonia.svg") << /*cs*/ QIcon(":images/flagCzech.svg") << /*da*/ QIcon() << /*de*/ QIcon(":images/flagGermany.svg") << /*el*/ QIcon(":images/flagGreece.svg") << /*en*/ QIcon(":images/flagUK.svg") << /*es*/ QIcon(":images/flagSpain.svg") << /*et*/ QIcon() << /*eu*/ QIcon() << /*fr*/ QIcon(":images/flagFrance.svg") << /*gl*/ QIcon() << /*hu*/ QIcon() << /*it*/ QIcon(":images/flagItaly.svg") << /*lv*/ QIcon() << /*nb*/ QIcon() << /*nl*/ QIcon(":images/flagNetherlands.svg") << /*pl*/ QIcon(":images/flagPoland.svg") << /*pt*/ QIcon(":images/flagBrazil.svg") << /*ru*/ QIcon(":images/flagRussia.svg") << /*sr*/ QIcon() << /*sv*/ QIcon() << /*tr*/ QIcon() << /*zh*/ QIcon(":images/flagChina.svg"); // Set icons. for( i = 0; i < langIcons.size(); ++i ) comboBox_lang->setItemIcon(i, langIcons[i]); // Call this here to set up translatable strings. retranslate(); // Populate combo boxes on the "Units" tab weightComboBox->addItem(tr("SI units"), QVariant(SI)); weightComboBox->addItem(tr("US traditional units"), QVariant(USCustomary)); weightComboBox->addItem(tr("British imperial units"), QVariant(Imperial)); temperatureComboBox->addItem(tr("Celsius"), QVariant(Celsius)); temperatureComboBox->addItem(tr("Fahrenheit"), QVariant(Fahrenheit)); volumeComboBox->addItem(tr("SI units"), QVariant(SI)); volumeComboBox->addItem(tr("US traditional units"), QVariant(USCustomary)); volumeComboBox->addItem(tr("British imperial units"), QVariant(Imperial)); gravityComboBox->addItem(tr("20C/20C Specific Gravity"), QVariant(Brewtarget::SG)); gravityComboBox->addItem(tr("Plato/Brix/Balling"), QVariant(Brewtarget::PLATO)); dateComboBox->addItem(tr("mm-dd-YYYY"), QVariant(Unit::displayUS)); dateComboBox->addItem(tr("dd-mm-YYYY"), QVariant(Unit::displayImp)); dateComboBox->addItem(tr("YYYY-mm-dd"), QVariant(Unit::displaySI)); colorComboBox->addItem(tr("SRM"), QVariant(Brewtarget::SRM)); colorComboBox->addItem(tr("EBC"), QVariant(Brewtarget::EBC)); // Populate combo boxes on the "Formulas" tab ibuFormulaComboBox->addItem(tr("Tinseth's approximation"), QVariant(Brewtarget::TINSETH)); ibuFormulaComboBox->addItem(tr("Rager's approximation"), QVariant(Brewtarget::RAGER)); ibuFormulaComboBox->addItem(tr("Noonan's approximation"), QVariant(Brewtarget::NOONAN)); colorFormulaComboBox->addItem(tr("Mosher's approximation"), QVariant(Brewtarget::MOSHER)); colorFormulaComboBox->addItem(tr("Daniel's approximation"), QVariant(Brewtarget::DANIEL)); colorFormulaComboBox->addItem(tr("Morey's approximation"), QVariant(Brewtarget::MOREY)); connect( buttonBox, SIGNAL( accepted() ), this, SLOT( saveAndClose() ) ); connect( buttonBox, SIGNAL( rejected() ), this, SLOT( cancel() ) ); // database panel stuff comboBox_engine->addItem( tr("SQLite (default)"), QVariant(Brewtarget::SQLITE)); comboBox_engine->addItem( tr("PostgreSQL"), QVariant(Brewtarget::PGSQL)); connect( comboBox_engine, SIGNAL( currentIndexChanged(int) ), this, SLOT( setEngine(int) ) ); connect( pushButton_testConnection, SIGNAL( clicked() ), this, SLOT(testConnection())); // figure out which database we have setDbDialog((Brewtarget::DBTypes)Brewtarget::option("dbType", Brewtarget::SQLITE).toInt()); // Set the signals connect( checkBox_savePassword, SIGNAL(clicked(bool)), this, SLOT(savePassword(bool))); connect( btStringEdit_hostname, SIGNAL( textModified() ), this, SLOT(testRequired())); connect( btStringEdit_portnum, SIGNAL( textModified() ), this, SLOT(testRequired())); connect( btStringEdit_schema, SIGNAL( textModified() ), this, SLOT(testRequired())); connect( btStringEdit_dbname, SIGNAL( textModified() ), this, SLOT(testRequired())); connect( btStringEdit_username, SIGNAL( textModified() ), this, SLOT(testRequired())); connect( btStringEdit_password, SIGNAL( textModified() ), this, SLOT(testRequired())); connect( pushButton_browseDataDir, SIGNAL( clicked() ), this, SLOT( setDataDir() ) ); connect( pushButton_browseBackupDir, SIGNAL( clicked() ), this, SLOT( setBackupDir() ) ); connect( pushButton_resetToDefault, SIGNAL( clicked() ), this, SLOT( resetToDefault() ) ); pushButton_testConnection->setEnabled(false); }