X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fsettingsdlg.cpp;h=2b1b1953ce2f4af49fd8b080a9e7ae4e281cb532;hb=af55637d27c287425a091ae482acff97c7f0e382;hp=de5077700d59b3c0dbfb939955c8610f5aa40936;hpb=b0ebe2cef22ab7d57785b7d167f58556de63f331;p=irwi diff --git a/src/settingsdlg.cpp b/src/settingsdlg.cpp index de50777..2b1b195 100644 --- a/src/settingsdlg.cpp +++ b/src/settingsdlg.cpp @@ -1,92 +1,119 @@ #include "settingsdlg.h" +#include "advsettingsdlg.h" +#include "selectremotedlg.h" +#include "aboutdlg.h" +#include "iengine.h" +#include "iremote.h" #include -#include -#include -#include -#include +#include +#include +#include +#include #include -#include -#include +#include +#include -SettingsDlg::SettingsDlg(QWidget *parent) +SettingsDlg::SettingsDlg(QWidget *parent, IEngine *engine) : QDialog(parent) + , engine(engine) { - this->setWindowTitle(tr("Settings")); - - //TODO caching? - netAM = new QNetworkAccessManager(this); - - settings = new QSettings(this); - - layout = new QHBoxLayout(this); - - alphabetList = new QListWidget(this); - for (char c = 'a'; c <= 'z'; ++c) - { - alphabetList->addItem(QString(c)); - } - layout->addWidget(alphabetList); - connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), - this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*))); + layout = new QVBoxLayout(this); + btnLayout = new QHBoxLayout(this); + remoteNameLayout = new QHBoxLayout(this); - mfgList = new QListWidget(this); - layout->addWidget(mfgList); - connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), - this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*))); + QSettings settings(this); + advSettingsBtn = new QPushButton(tr("Advanced"), this); + selectRemoteBtn = new QPushButton(tr("Select remote"), this); + aboutBtn = new QPushButton(tr("About"), this); + + rateUpBtn = new QPushButton( + QIcon(settings.value("rateUpIcon", + "/usr/share/icons/hicolor/48x48/hildon/chat_smiley_happy.png"). + toString()), + "", this); + rateDownBtn = new QPushButton( + QIcon(settings.value("rateDownIcon", + "/usr/share/icons/hicolor/48x48/hildon/chat_smiley_sad.png"). + toString()), + "", this); + rateUpBtn->setMaximumSize(72, 72); + rateDownBtn->setMaximumSize(72, 72); + + btnLayout->addWidget(advSettingsBtn); + btnLayout->addWidget(selectRemoteBtn); + btnLayout->addWidget(aboutBtn); + + connect(advSettingsBtn, SIGNAL(clicked()), + this, SLOT(showAdvSettingsDlg())); + connect(selectRemoteBtn, SIGNAL(clicked()), + this, SLOT(showSelectRemoteDlg())); + connect(aboutBtn, SIGNAL(clicked()), + this, SLOT(showAboutDlg())); - modelList = new QListWidget(this); - layout->addWidget(modelList); - connect(modelList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), - this, SLOT(modelItemChanged(QListWidgetItem*, QListWidgetItem*))); + remoteNameLabel = new QLabel( + settings.value("remoteName", + tr("")).toString(), this); + remoteNameLayout->addWidget(new QLabel(tr("Remote name: "), this)); + remoteNameLayout->addWidget(remoteNameLabel); + remoteNameLayout->addWidget(rateUpBtn); + remoteNameLayout->addWidget(rateDownBtn); + layout->addLayout(remoteNameLayout); + layout->addLayout(btnLayout); this->setLayout(layout); + + updateRemoteName(); + + connect(engine->remote(), SIGNAL(ratingChanged(int)), + this, SLOT(setRating(int))); + engine->remote()->updateRating(); } SettingsDlg::~SettingsDlg() { + delete advSettingsBtn; + delete selectRemoteBtn; + delete aboutBtn; + delete rateUpBtn; + delete rateDownBtn; + delete remoteNameLabel; + delete remoteNameLayout; + delete btnLayout; delete layout; - delete settings; - delete netAM; } -void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous) +void SettingsDlg::showAdvSettingsDlg() +{ + AdvSettingsDlg dlg(this, engine); + dlg.exec(); + updateRemoteName(); +} + +void SettingsDlg::showSelectRemoteDlg() { - QNetworkReply* reply = netAM->get( - QNetworkRequest( - QUrl( - settings->value( - "remoteUrl", - "http://mercury.wipsl.com/irwi/remotes/" - ).toString() + current->text() + ".txt" - ) - ) - ); - connect(netAM, SIGNAL(finished(QNetworkReply*)), - this, SLOT(mfgListDownloadFinished(QNetworkReply*))); + SelectRemoteDlg dlg(this, engine); + connect(&dlg, SIGNAL(remoteDownloaded()), + this, SLOT(updateRemoteName())); + dlg.exec(); } -void SettingsDlg::mfgListDownloadFinished(QNetworkReply *reply) +void SettingsDlg::showAboutDlg() { - mfgList->clear(); - while (reply->canReadLine()) - { - mfgList->addItem(QString(reply->readLine())); - } - reply->deleteLater(); + AboutDlg dlg(this); + dlg.exec(); } -void SettingsDlg::mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous) +void SettingsDlg::updateRemoteName() { + QSettings settings(this); + remoteNameLabel->setText(settings.value("remoteName", + tr("Select remote")).toString()); } -void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous) +void SettingsDlg::setRating(int rating) { - if (current) - { - settings->setValue("remoteName", current->text()); - //TODO save remote from server to /etc/lircd.conf - //maybe lirc needs restart after that? - } + qDebug() << rating; } +