#include <QGridLayout>
+#include <QHeaderView>
#include <QSettings>
#include <QProgressBar>
#include <QPushButton>
#include <QMessageBox>
+#include <QTableWidget>
#include "advsettingsdlg.h"
AdvSettingsDlg::AdvSettingsDlg(QDialog *parent)
: QDialog(parent)
+ , layout(NULL)
+ , settings(NULL)
+ , resetBtn(NULL)
+ , saveBtn(NULL)
+ , table(NULL)
{
settings = new QSettings(this);
setWindowTitle(tr("Advanced settings"));
- layout = new QGridLayout(this);
- resetBtn = new QPushButton(tr("Reset to defaults"), this);
-
+ 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()));
- layout->addWidget(resetBtn);
+ 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);
+ refreshList();
}
AdvSettingsDlg::~AdvSettingsDlg()
{
delete layout;
- layout = NULL;
delete settings;
- settings = NULL;
+ delete resetBtn;
+ delete saveBtn;
+ 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()
+{
+ table->clear();
+ table->setRowCount(0);
+
+ 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->resizeColumnsToContents();
+}
+
+
void AdvSettingsDlg::resetToDefaults()
{
QMessageBox mbox(QMessageBox::Question, "",
tr("All settings will be reset to defaults"),
- QMessageBox::Ok | QMessageBox::Cancel, this);
+ QMessageBox::Ok, this); // Cancel by clicking outside the
+ // messagebox in maemo
if (mbox.exec() == QMessageBox::Ok)
{
+ 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);
+
+ refreshList();
}
}
"/usr/share/icons/hicolor/48x48/hildon/statusarea_volume_mute.png"
};
+ int bgAlpha = settings.value("bgAlpha", "192").toInt();
+
for (int i = 0; i < BUTTON_COUNT; ++i)
{
QToolButton *button = new QToolButton(this);
settings.value(QString("buttonIcon") + QString::number(i),
iconNames[i]).toString())));
buttons[i] = button;
- button->setPalette(QPalette(QColor(0, 0, 0, 192)));
+ button->setPalette(QPalette(QColor(0, 0, 0, bgAlpha)));
layout->addWidget(button, i%2, i/2);
}