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()
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();
- updateRemoteInfo();
}
void SettingsDlg::updateRemoteInfo()
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)