X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fsettingsdlg.cpp;h=a5a0d16b33a58ef836d2ca2011ba1c37c29ebfe6;hb=0ce05ff625db94358b473b5df187c0d9174b0c1e;hp=c88da36290346b8dec68ec3fbfee947ade10b57e;hpb=69acdc9b27f4c01a707a431a5d8120a3797a9a73;p=irwi diff --git a/src/settingsdlg.cpp b/src/settingsdlg.cpp index c88da36..a5a0d16 100644 --- a/src/settingsdlg.cpp +++ b/src/settingsdlg.cpp @@ -10,6 +10,7 @@ #include #include #include +#include SettingsDlg::SettingsDlg(QWidget *parent) : QDialog(parent) @@ -61,13 +62,20 @@ SettingsDlg::SettingsDlg(QWidget *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); } } @@ -83,6 +91,7 @@ SettingsDlg::~SettingsDlg() delete m_btnLayout; delete m_remoteNameLayout; delete m_layout; + delete m_netConfMan; } void SettingsDlg::setBusy(bool busy) @@ -114,23 +123,19 @@ void SettingsDlg::showAboutDlg() 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()