1 #include "settingsdlg.h"
2 #include "advsettingsdlg.h"
3 #include "selectremotedlg.h"
10 #include <QPushButton>
14 SettingsDlg::SettingsDlg(QWidget *parent)
17 QSettings settings(this);
18 m_layout = new QVBoxLayout(this);
19 m_btnLayout = new QHBoxLayout(this);
20 m_remoteNameLayout = new QHBoxLayout(this);
22 m_advSettingsBtn = new QPushButton(tr("Advanced"), this);
23 m_selectRemoteBtn = new QPushButton(tr("Select remote"), this);
24 m_aboutBtn = new QPushButton(tr("About"), this);
25 m_rateUpBtn = new QPushButton(
26 QIcon(settings.value("rateUpIcon",
27 "/usr/share/icons/hicolor/48x48/hildon/chat_smiley_happy.png").
30 m_rateDownBtn = new QPushButton(
31 QIcon(settings.value("rateDownIcon",
32 "/usr/share/icons/hicolor/48x48/hildon/chat_smiley_sad.png").
35 m_rateUpBtn->setMaximumSize(72, 72);
36 m_rateDownBtn->setMaximumSize(72, 72);
38 m_btnLayout->addWidget(m_advSettingsBtn);
39 m_btnLayout->addWidget(m_selectRemoteBtn);
40 m_btnLayout->addWidget(m_aboutBtn);
42 m_remoteNameLabel = new QLabel(this);
43 m_ratingLabel = new QLabel(this);
44 m_remoteNameLayout->addWidget(m_remoteNameLabel);
45 m_remoteNameLayout->addWidget(m_ratingLabel);
46 m_remoteNameLayout->addWidget(m_rateUpBtn);
47 m_remoteNameLayout->addWidget(m_rateDownBtn);
49 connect(m_advSettingsBtn, SIGNAL(clicked()),
50 this, SLOT(showAdvSettingsDlg()));
51 connect(m_selectRemoteBtn, SIGNAL(clicked()),
52 this, SLOT(showSelectRemoteDlg()));
53 connect(m_aboutBtn, SIGNAL(clicked()),
54 this, SLOT(showAboutDlg()));
55 connect(m_rateUpBtn, SIGNAL(clicked()),
56 this, SLOT(rateUpClicked()));
57 connect(m_rateDownBtn, SIGNAL(clicked()),
58 this, SLOT(rateDownClicked()));
60 m_layout->addLayout(m_remoteNameLayout);
61 m_layout->addLayout(m_btnLayout);
62 this->setLayout(m_layout);
64 QString selectedRemote = QSettings(this).value("remoteName", "").toString();
65 if (selectedRemote == "") {
66 m_remoteNameLabel->setText("No remote selected");
67 enableRateBtns(false);
69 setRemote(selectedRemote);
70 m_remote.updateInfo();
75 SettingsDlg::~SettingsDlg()
77 delete m_advSettingsBtn;
78 delete m_selectRemoteBtn;
82 delete m_remoteNameLabel;
85 delete m_remoteNameLayout;
89 void SettingsDlg::setBusy(bool busy)
91 setAttribute(Qt::WA_Maemo5ShowProgressIndicator, busy);
95 void SettingsDlg::showAdvSettingsDlg()
97 AdvSettingsDlg dlg(this);
101 void SettingsDlg::showSelectRemoteDlg()
103 SelectRemoteDlg dlg(this);
104 connect(&dlg, SIGNAL(remoteChanged(Remote)),
105 this, SLOT(setRemote(Remote)));
109 void SettingsDlg::showAboutDlg()
115 void SettingsDlg::setRemote(Remote r)
118 processRemoteChange();
122 void SettingsDlg::setRemote(const QString &name)
125 m_remote = Remote(name);
126 processRemoteChange();
127 m_remote.updateInfo(); // request update from server
130 void SettingsDlg::processRemoteChange()
132 connect(&m_remote, SIGNAL(infoUpdated()),
133 this, SLOT(updateRemoteInfo()));
137 void SettingsDlg::updateRemoteInfo()
140 m_remoteNameLabel->setText(m_remote.mfg() + " " + m_remote.name());
141 m_ratingLabel->setText(tr("Rating") + ": "
142 + QString::number(m_remote.rating()));
145 void SettingsDlg::rateUpClicked()
147 m_remote.sendRating(Rating::Up);
151 void SettingsDlg::rateDownClicked()
153 m_remote.sendRating(Rating::Down);
157 void SettingsDlg::processRatingSent()
159 enableRateBtns(false);
160 m_remote.updateInfo();
163 void SettingsDlg::enableRateBtns(bool enable)
165 m_rateUpBtn->setEnabled(enable);
166 m_rateDownBtn->setEnabled(enable);