#include "settingsdlg.h"
#include "advsettingsdlg.h"
#include "selectremotedlg.h"
+#include "aboutdlg.h"
+#include "iengine.h"
+#include "iremote.h"
#include <QHBoxLayout>
+#include <QVBoxLayout>
#include <QWidget>
#include <QDialog>
#include <QPushButton>
#include <QSettings>
+#include <QLabel>
+#include <QDebug>
-SettingsDlg::SettingsDlg(QWidget *parent)
+SettingsDlg::SettingsDlg(QWidget *parent, IEngine *engine)
: QDialog(parent)
+ , engine(engine)
{
- layout = new QHBoxLayout(this);
+ layout = new QVBoxLayout(this);
+ btnLayout = new QHBoxLayout(this);
+ remoteNameLayout = new QHBoxLayout(this);
QSettings settings(this);
- advSettingsBtn = new QPushButton(tr("Advanced..."), this);
- selectRemoteBtn = new QPushButton(
- settings.value("remoteName", tr("Select remote")).toString(), this);
+ advSettingsBtn = new QPushButton(tr("Advanced"), this);
+ selectRemoteBtn = new QPushButton(tr("Select remote"), this);
+ aboutBtn = new QPushButton(tr("About"), this);
- layout->addWidget(advSettingsBtn);
- layout->addWidget(selectRemoteBtn);
+ rateUpBtn = new QPushButton(
+ QIcon(settings.value("rateUpIcon",
+ "/usr/share/icons/hicolor/48x48/hildon/chat_smiley_happy.png").
+ toString()),
+ "", this);
+ rateDownBtn = new QPushButton(
+ QIcon(settings.value("rateDownIcon",
+ "/usr/share/icons/hicolor/48x48/hildon/chat_smiley_sad.png").
+ toString()),
+ "", this);
+ rateUpBtn->setMaximumSize(72, 72);
+ rateDownBtn->setMaximumSize(72, 72);
+
+ btnLayout->addWidget(advSettingsBtn);
+ btnLayout->addWidget(selectRemoteBtn);
+ btnLayout->addWidget(aboutBtn);
connect(advSettingsBtn, SIGNAL(clicked()),
this, SLOT(showAdvSettingsDlg()));
connect(selectRemoteBtn, SIGNAL(clicked()),
this, SLOT(showSelectRemoteDlg()));
+ connect(aboutBtn, SIGNAL(clicked()),
+ this, SLOT(showAboutDlg()));
+
+ remoteNameLabel = new QLabel(
+ settings.value("remoteName",
+ tr("<no remote selected>")).toString(), this);
+ remoteNameLayout->addWidget(new QLabel(tr("Remote name: "), this));
+ remoteNameLayout->addWidget(remoteNameLabel);
+ remoteNameLayout->addWidget(rateUpBtn);
+ remoteNameLayout->addWidget(rateDownBtn);
+ layout->addLayout(remoteNameLayout);
+ layout->addLayout(btnLayout);
this->setLayout(layout);
+
+ updateRemoteName();
+
+ connect(engine->remote(), SIGNAL(ratingChanged(int)),
+ this, SLOT(setRating(int)));
+ engine->remote()->updateRating();
}
SettingsDlg::~SettingsDlg()
{
delete advSettingsBtn;
delete selectRemoteBtn;
+ delete aboutBtn;
+ delete rateUpBtn;
+ delete rateDownBtn;
+ delete remoteNameLabel;
+ delete remoteNameLayout;
+ delete btnLayout;
delete layout;
}
void SettingsDlg::showAdvSettingsDlg()
{
- AdvSettingsDlg dlg(this);
+ AdvSettingsDlg dlg(this, engine);
dlg.exec();
+ updateRemoteName();
}
void SettingsDlg::showSelectRemoteDlg()
{
- SelectRemoteDlg dlg(this);
+ SelectRemoteDlg dlg(this, engine);
connect(&dlg, SIGNAL(remoteDownloaded()),
this, SLOT(updateRemoteName()));
dlg.exec();
}
+void SettingsDlg::showAboutDlg()
+{
+ AboutDlg dlg(this);
+ dlg.exec();
+}
+
void SettingsDlg::updateRemoteName()
{
- selectRemoteBtn->setText(settings.value("remoteName",
- tr("Select remote")).toString());
+ QSettings settings(this);
+ remoteNameLabel->setText(settings.value("remoteName",
+ tr("Select remote")).toString());
+}
+
+void SettingsDlg::setRating(int rating)
+{
+ qDebug() << rating;
}