8 #include "advsettingsdlg.h"
9 #include "settingstable.h"
12 AdvSettingsDlg::AdvSettingsDlg(QDialog *parent, IEngine *engine)
22 setWindowTitle(tr("Advanced settings"));
23 setMinimumHeight(320);
25 settings = new QSettings(this);
27 // Set default values on first startup
28 if (settings->allKeys().isEmpty())
31 resetBtn = new QPushButton(tr("Defaults"), this);
32 saveBtn = new QPushButton(tr("Save"), this);
33 table = new SettingsTable(this);
34 layout = new QHBoxLayout(this);
35 btnLayout = new QVBoxLayout();
37 connect(resetBtn, SIGNAL(clicked()), this, SLOT(showResetQuery()));
38 connect(saveBtn, SIGNAL(clicked()), this, SLOT(save()));
40 btnLayout->addWidget(resetBtn);
41 btnLayout->addWidget(saveBtn);
42 layout->addWidget(table, Qt::AlignLeft);
43 layout->addLayout(btnLayout, 0);
45 QFont tableFont = table->font();
46 tableFont.setPointSize(20);
47 table->setFont(tableFont);
52 AdvSettingsDlg::~AdvSettingsDlg()
61 void AdvSettingsDlg::refreshList()
63 table->removeAllRows();
65 QStringList keys = settings->allKeys();
66 for (int i = 0; i < keys.size(); ++i)
68 table->appendRow(keys.at(i),
69 settings->value(keys.at(i), "n/a").toString());
73 void AdvSettingsDlg::setDefaults()
75 settings->setValue("lircPort", 8765);
76 settings->setValue("remoteName", "No remote selected");
77 settings->setValue("lircConf", "/etc/lircd.conf");
78 settings->setValue("cmd0", "VOLUP");
79 settings->setValue("cmd1", "VOLDOWN");
80 settings->setValue("cmd2", "CHUP");
81 settings->setValue("cmd3", "CHDOWN");
82 settings->setValue("cmd4", "POWER");
83 settings->setValue("cmd5", "MUTE");
84 settings->setValue("remoteUrl",
85 "http://mercury.wipsl.com/irwi/remotes/");
86 settings->setValue("bgAlpha", 192);
87 settings->setValue("height", 147);
88 settings->setValue("width", 250);
89 settings->setValue("idleTimeout", 300);
90 settings->setValue("dbUrl", "http://mercury.wipsl.com/irwi/db.xml");
93 void AdvSettingsDlg::showResetQuery()
95 QMessageBox mbox(QMessageBox::Question, "",
96 tr("Reset all settings to defaults?"),
97 QMessageBox::Cancel | QMessageBox::Yes, this);
98 if (mbox.exec() == QMessageBox::Yes)
105 void AdvSettingsDlg::save()
107 for (int i = 0; i < table->rowCount(); ++i)
109 settings->setValue(table->key(i), table->value(i));
111 done(0); // close dialog