#include <QPushButton>
#include <QLabel>
#include <QDebug>
+#include <QNetworkConfiguration>
SettingsDlg::SettingsDlg(QWidget *parent)
: QDialog(parent)
m_layout->addLayout(m_btnLayout);
this->setLayout(m_layout);
- QString selectedRemote = QSettings(this).value("remoteName", "").toString();
+ QString selectedRemote = settings.value("remoteName", "").toString();
if (selectedRemote == "") {
m_remoteNameLabel->setText("No remote selected");
enableRateBtns(false);
} else {
- setRemote(selectedRemote);
- setBusy();
+ // Create remote by name and update it's info if online
+ m_remote = Remote(selectedRemote);
+ m_remoteNameLabel->setText(selectedRemote);
+ m_netConfMan = new QTM_PREPEND_NAMESPACE(
+ QNetworkConfigurationManager)(this);
+ connect(m_netConfMan, SIGNAL(updateCompleted()),
+ this, SLOT(onNetworkStatusUpdate()));
+ m_netConfMan->updateConfigurations();
+ enableRateBtns(false);
}
}
delete m_btnLayout;
delete m_remoteNameLayout;
delete m_layout;
+ delete m_netConfMan;
}
void SettingsDlg::setBusy(bool busy)
void SettingsDlg::setRemote(Remote r)
{
m_remote = r;
- processRemoteChange();
updateRemoteInfo();
+ enableRateBtns();
}
-void SettingsDlg::setRemote(const QString &name)
-{
- setBusy();
- m_remote = Remote(name);
- processRemoteChange();
- m_remote.updateInfo(); // request update from server
-}
-
-void SettingsDlg::processRemoteChange()
+void SettingsDlg::onNetworkStatusUpdate()
{
- connect(&m_remote, SIGNAL(infoUpdated()),
- this, SLOT(updateRemoteInfo()));
- enableRateBtns();
+ if (m_netConfMan->isOnline()) {
+ setBusy();
+ connect(&m_remote, SIGNAL(infoUpdated()),
+ this, SLOT(updateRemoteInfo()));
+ m_remote.updateInfo();
+ enableRateBtns();
+ }
}
void SettingsDlg::updateRemoteInfo()
#include <QDialog>
#include <QSettings>
+#include <QNetworkConfigurationManager>
#include "remote.h"
void showSelectRemoteDlg();
void showAboutDlg();
void setRemote(Remote);
- void setRemote(const QString &name);
void updateRemoteInfo();
void rateUpClicked();
void rateDownClicked();
+ void onNetworkStatusUpdate();
private:
void enableRateBtns(bool enable = true);
- void processRemoteChange();
void processRatingSent();
void setBusy(bool busy = true);
QPushButton *m_aboutBtn;
QLabel *m_remoteNameLabel;
QLabel *m_ratingLabel;
+ QTM_PREPEND_NAMESPACE(QNetworkConfigurationManager) *m_netConfMan;
};
#endif