1 #include "settingsdlg.h"
2 #include "advsettingsdlg.h"
3 #include "selectremotedlg.h"
10 #include <QPushButton>
13 #include <QNetworkConfiguration>
16 SettingsDlg::SettingsDlg(QWidget *parent)
21 QSettings settings(this);
22 m_layout = new QVBoxLayout(this);
23 m_btnLayout = new QHBoxLayout();
24 m_remoteNameLayout = new QHBoxLayout();
26 m_advSettingsBtn = new QPushButton(tr("Advanced"), this);
27 m_selectRemoteBtn = new QPushButton(tr("Select remote"), this);
28 m_aboutBtn = new QPushButton(tr("About"), this);
29 m_rateUpBtn = new QPushButton(
30 QIcon(settings.value("symbolPath",
31 "/usr/share/irwi/symbols/").
32 toString() + "symbol_thumbs_up.png"),
34 m_rateDownBtn = new QPushButton(
35 QIcon(settings.value("symbolPath",
36 "/usr/share/irwi/symbols/").
37 toString() + "symbol_thumbs_down.png"),
39 m_rateUpBtn->setMaximumSize(72, 72);
40 m_rateDownBtn->setMaximumSize(72, 72);
42 m_btnLayout->addWidget(m_advSettingsBtn);
43 m_btnLayout->addWidget(m_selectRemoteBtn);
44 m_btnLayout->addWidget(m_aboutBtn);
46 m_remoteNameLabel = new QLabel(this);
47 m_ratingLabel = new QLabel(this);
48 m_remoteNameLayout->addWidget(m_remoteNameLabel);
49 m_remoteNameLayout->addWidget(m_ratingLabel);
50 m_remoteNameLayout->addWidget(m_rateUpBtn);
51 m_remoteNameLayout->addWidget(m_rateDownBtn);
53 connect(m_advSettingsBtn, SIGNAL(clicked()),
54 this, SLOT(showAdvSettingsDlg()));
55 connect(m_selectRemoteBtn, SIGNAL(clicked()),
56 this, SLOT(showSelectRemoteDlg()));
57 connect(m_aboutBtn, SIGNAL(clicked()),
58 this, SLOT(showAboutDlg()));
59 connect(m_rateUpBtn, SIGNAL(clicked()),
60 this, SLOT(rateUpClicked()));
61 connect(m_rateDownBtn, SIGNAL(clicked()),
62 this, SLOT(rateDownClicked()));
64 m_layout->addLayout(m_remoteNameLayout);
65 m_layout->addLayout(m_btnLayout);
66 this->setLayout(m_layout);
68 QString remoteName = settings.value("remoteName", "").toString();
69 if (remoteName == "") {
70 m_remoteNameLabel->setText(tr("No remote selected"));
72 // Create remote by name and update it's info if online
73 m_remote = Remote(remoteName);
74 connect(&m_remote, SIGNAL(infoUpdated()),
75 this, SLOT(updateRemoteInfo()));
76 m_remoteNameLabel->setText(settings.value("remoteMfg", "").toString()
79 m_netConfMan = new QTM_PREPEND_NAMESPACE(
80 QNetworkConfigurationManager)(this);
81 connect(m_netConfMan, SIGNAL(updateCompleted()),
82 this, SLOT(onNetworkStatusUpdate()));
83 m_netConfMan->updateConfigurations();
84 enableRateBtns(false);
87 SettingsDlg::~SettingsDlg()
89 delete m_advSettingsBtn;
90 delete m_selectRemoteBtn;
94 delete m_remoteNameLabel;
97 delete m_remoteNameLayout;
102 void SettingsDlg::setBusy(bool busy)
104 setAttribute(Qt::WA_Maemo5ShowProgressIndicator, busy);
108 void SettingsDlg::showAdvSettingsDlg()
112 if (QSettings(this).value("remoteName", "").toString() == "") {
113 m_remoteNameLabel->setText(tr("No remote selected"));
114 m_ratingLabel->setText("");
115 enableRateBtns(false);
119 void SettingsDlg::showSelectRemoteDlg()
122 connect(&dlg, SIGNAL(remoteChanged(Remote)),
123 this, SLOT(setRemote(Remote)));
124 if (dlg.exec() == QDialog::Rejected) {
125 onNetworkStatusUpdate();
129 void SettingsDlg::showAboutDlg()
135 void SettingsDlg::setRemote(Remote r)
138 connect(&m_remote, SIGNAL(infoUpdated()),
139 this, SLOT(updateRemoteInfo()));
144 void SettingsDlg::onNetworkStatusUpdate()
146 if (m_netConfMan->isOnline() &&
147 QSettings(this).value("remoteName", "").toString() != "") {
149 m_remote.updateInfo();
151 } else if (!m_netConfMan->isOnline()) {
152 m_ratingLabel->setText(tr("Offline"));
159 void SettingsDlg::updateRemoteInfo()
162 m_remoteNameLabel->setText(m_remote.mfg() + " " + m_remote.name());
163 m_ratingLabel->setText(tr("Rating") + ": "
164 + QString::number(m_remote.rating()));
167 void SettingsDlg::rateUpClicked()
170 m_remote.sendRating(Rating::Up);
173 void SettingsDlg::rateDownClicked()
176 m_remote.sendRating(Rating::Down);
179 void SettingsDlg::processRatingSent()
182 enableRateBtns(false);
185 void SettingsDlg::enableRateBtns(bool enable)
187 m_rateUpBtn->setEnabled(enable);
188 m_rateDownBtn->setEnabled(enable);
191 void SettingsDlg::showEvent(QShowEvent *event)
194 QDialog::showEvent(event);