m_remoteNameLabel = new QLabel(this);
m_ratingLabel = new QLabel(this);
- m_ratingLabel->setText(tr("Rating"));
m_remoteNameLayout->addWidget(m_remoteNameLabel);
m_remoteNameLayout->addWidget(m_ratingLabel);
m_remoteNameLayout->addWidget(m_rateUpBtn);
m_layout->addLayout(m_btnLayout);
this->setLayout(m_layout);
- initRemote();
+ QString selectedRemote = QSettings(this).value("remoteName", "").toString();
+ if (selectedRemote == "") {
+ m_remoteNameLabel->setText("No remote selected");
+ enableRateBtns(false);
+ } else {
+ setRemote(selectedRemote);
+ m_remote.updateInfo();
+ }
}
SettingsDlg::~SettingsDlg()
void SettingsDlg::showSelectRemoteDlg()
{
SelectRemoteDlg dlg(this);
- connect(&dlg, SIGNAL(m_remoteChanged(Remote)),
+ connect(&dlg, SIGNAL(remoteChanged(Remote)),
this, SLOT(setRemote(Remote)));
- updateRemoteInfo();
dlg.exec();
}
dlg.exec();
}
-void SettingsDlg::initRemote()
+void SettingsDlg::setRemote(Remote r)
{
- QString selectedRemote = QSettings(this).value("remoteName", "").toString();
- if (selectedRemote == "") {
- m_remoteNameLabel->setText("No remote selected");
- enableRateBtns(false);
- } else {
- m_remote = Remote(selectedRemote);
- connect(&m_remote, SIGNAL(infoUpdated()),
- this, SLOT(updateRemoteInfo()));
- m_remote.updateInfo();
- enableRateBtns();
- }
+ m_remote = r;
+ processRemoteChange();
+ updateRemoteInfo();
}
-void SettingsDlg::setRemote(Remote r)
+void SettingsDlg::setRemote(const QString &name)
{
- m_remote = r;
+ m_remote = Remote(name);
+ processRemoteChange();
+ m_remote.updateInfo(); // request update from server
+}
+
+void SettingsDlg::processRemoteChange()
+{
+ connect(&m_remote, SIGNAL(infoUpdated()),
+ this, SLOT(updateRemoteInfo()));
enableRateBtns();
}
void SettingsDlg::rateUpClicked()
{
m_remote.sendRating(Rating::Up);
- enableRateBtns(false);
+ processRatingSent();
}
void SettingsDlg::rateDownClicked()
{
m_remote.sendRating(Rating::Down);
+ processRatingSent();
+}
+
+void SettingsDlg::processRatingSent()
+{
enableRateBtns(false);
+ m_remote.updateInfo();
}
void SettingsDlg::enableRateBtns(bool enable)