-#include <QGridLayout>
-#include <QHeaderView>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
#include <QSettings>
-#include <QProgressBar>
#include <QPushButton>
#include <QMessageBox>
-#include <QTableWidget>
+#include <QFont>
#include "advsettingsdlg.h"
+#include "settingstable.h"
AdvSettingsDlg::AdvSettingsDlg(QDialog *parent)
: QDialog(parent)
, layout(NULL)
+ , btnLayout(NULL)
, settings(NULL)
, resetBtn(NULL)
, saveBtn(NULL)
, table(NULL)
{
- settings = new QSettings(this);
setWindowTitle(tr("Advanced settings"));
+ setMinimumHeight(320);
+
+ settings = new QSettings(this);
+
+ // Set default values on first startup
+ if (settings->allKeys().isEmpty())
+ setDefaults();
resetBtn = new QPushButton(tr("Defaults"), this);
saveBtn = new QPushButton(tr("Save"), this);
- table = new QTableWidget(0, 2, this);
- table->verticalHeader()->setVisible(false);
- table->horizontalHeader()->setVisible(false);
- connect(resetBtn, SIGNAL(clicked()), this, SLOT(resetToDefaults()));
+ table = new SettingsTable(this);
+ layout = new QHBoxLayout(this);
+ btnLayout = new QVBoxLayout();
+
+ connect(resetBtn, SIGNAL(clicked()), this, SLOT(showResetQuery()));
connect(saveBtn, SIGNAL(clicked()), this, SLOT(save()));
- layout = new QGridLayout(this);
- layout->addWidget(table, 0, 0, 2, 3);
- layout->addWidget(resetBtn, 0, 4);
- layout->addWidget(saveBtn, 1, 4);
- setLayout(layout);
+ btnLayout->addWidget(resetBtn);
+ btnLayout->addWidget(saveBtn);
+ layout->addWidget(table, Qt::AlignLeft);
+ layout->addLayout(btnLayout, 0);
+
+ QFont tableFont = table->font();
+ tableFont.setPointSize(20);
+ table->setFont(tableFont);
+
refreshList();
}
delete table;
}
-void AdvSettingsDlg::save()
-{
- for (int i = 0; i < table->rowCount(); ++i)
- {
- settings->setValue(table->item(i, 0)->text(),
- table->item(i, 1)->text());
- }
- this->done(0);
-}
-
-int AdvSettingsDlg::refreshList()
+void AdvSettingsDlg::refreshList()
{
- table->clear();
- table->setRowCount(0);
+ table->removeAllRows();
QStringList keys = settings->allKeys();
-
for (int i = 0; i < keys.size(); ++i)
{
- QTableWidgetItem *key = new QTableWidgetItem(keys.at(i));
- QTableWidgetItem *value = new QTableWidgetItem(
- settings->value(keys.at(i), "n/a").toString());
- key->setFlags(Qt::NoItemFlags | Qt::ItemIsEnabled);
- value->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable);
- table->insertRow(table->rowCount());
- table->setItem(i, 0, key);
- table->setItem(i, 1, value);
+ table->appendRow(keys.at(i),
+ settings->value(keys.at(i), "n/a").toString());
}
- table->resizeColumnsToContents();
}
+void AdvSettingsDlg::setDefaults()
+{
+ settings->setValue("lircPort", 8765);
+ settings->setValue("remoteName", "No remote selected");
+ settings->setValue("lircConf", "/etc/lircd.conf");
+ settings->setValue("cmd0", "VOLUP");
+ settings->setValue("cmd1", "VOLDOWN");
+ settings->setValue("cmd2", "CHUP");
+ settings->setValue("cmd3", "CHDOWN");
+ settings->setValue("cmd4", "POWER");
+ settings->setValue("cmd5", "MUTE");
+ settings->setValue("remoteUrl",
+ "http://mercury.wipsl.com/irwi/remotes/");
+ settings->setValue("bgAlpha", 192);
+ settings->setValue("height", 147);
+ settings->setValue("width", 250);
+ settings->setValue("idleTimeout", 300);
+ settings->setValue("dbUrl", "http://mercury.wipsl.com/irwi/db.xml");
+}
-void AdvSettingsDlg::resetToDefaults()
+void AdvSettingsDlg::showResetQuery()
{
QMessageBox mbox(QMessageBox::Question, "",
- tr("All settings will be reset to defaults"),
- QMessageBox::Ok, this); // Cancel by clicking outside the
- // messagebox in maemo
- if (mbox.exec() == QMessageBox::Ok)
+ tr("Reset all settings to defaults?"),
+ QMessageBox::Cancel | QMessageBox::Yes, this);
+ if (mbox.exec() == QMessageBox::Yes)
{
- settings->setValue("lircPort", 8765);
- settings->setValue("remoteName", "No remote selected");
- settings->setValue("lircConf", "/etc/lircd.conf");
- settings->setValue("cmd0", "VOL+");
- settings->setValue("cmd1", "VOL-");
- settings->setValue("cmd2", "P+");
- settings->setValue("cmd3", "P-");
- settings->setValue("cmd4", "ON/OFF");
- settings->setValue("cmd5", "MUTE");
- settings->setValue("remoteUrl",
- "http://mercury.wipsl.com/irwi/remotes/");
- settings->setValue("bgAlpha", 192);
-
+ setDefaults();
refreshList();
}
}
+void AdvSettingsDlg::save()
+{
+ for (int i = 0; i < table->rowCount(); ++i)
+ {
+ settings->setValue(table->key(i), table->value(i));
+ }
+ done(0); // close dialog
+}
+
+