1 #include "settingsdlg.h"
8 #include <QListWidgetItem>
10 #include <QtNetwork/QNetworkAccessManager>
11 #include <QtNetwork/QNetworkReply>
15 SettingsDlg::SettingsDlg(QWidget *parent)
18 this->setWindowTitle(tr("Settings"));
21 mfgNetAM = new QNetworkAccessManager(this);
22 connect(mfgNetAM, SIGNAL(finished(QNetworkReply*)),
23 this, SLOT(mfgListDownloadFinished(QNetworkReply*)));
25 modelNetAM = new QNetworkAccessManager(this);
26 connect(modelNetAM, SIGNAL(finished(QNetworkReply*)),
27 this, SLOT(modelListDownloadFinished(QNetworkReply*)));
29 settings = new QSettings(this);
31 layout = new QHBoxLayout(this);
33 alphabetList = new QListWidget(this);
34 for (char c = 'a'; c <= 'z'; ++c)
36 alphabetList->addItem(QString(c));
38 layout->addWidget(alphabetList);
39 connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
40 this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*)));
42 mfgList = new QListWidget(this);
43 layout->addWidget(mfgList);
44 connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
45 this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*)));
47 modelList = new QListWidget(this);
48 layout->addWidget(modelList);
49 connect(modelList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
50 this, SLOT(modelItemChanged(QListWidgetItem*, QListWidgetItem*)));
52 this->setLayout(layout);
55 SettingsDlg::~SettingsDlg()
63 void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
65 QNetworkReply* reply = mfgNetAM->get(
70 "http://mercury.wipsl.com/irwi/remotes/"
71 ).toString() + current->text() + ".txt"
77 void SettingsDlg::mfgListDownloadFinished(QNetworkReply *reply)
80 if (reply->error() == QNetworkReply::NoError) {
81 QByteArray ba = reply->readAll();
82 QBuffer buf(&ba, this);
83 buf.open(QIODevice::ReadOnly);
85 while (buf.canReadLine())
87 QString str(buf.readLine());
89 mfgList->addItem(str);
92 //qDebug() << (int)reply->error();
98 void SettingsDlg::mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
100 if (mfgList->currentItem() != NULL) {
101 QNetworkReply* reply = modelNetAM->get(
106 "http://mercury.wipsl.com/irwi/remotes/"
107 ).toString() + alphabetList->currentItem()->text()
108 + "/" + current->text() + ".txt"
115 void SettingsDlg::modelListDownloadFinished(QNetworkReply *reply)
118 if (reply->error() == QNetworkReply::NoError) {
119 QByteArray ba = reply->readAll();
120 QBuffer buf(&ba, this);
121 buf.open(QIODevice::ReadOnly);
123 while (buf.canReadLine())
125 QString str(buf.readLine());
126 modelList->addItem(str);
129 //qDebug() << (int)reply->error();
132 reply->deleteLater();
135 void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
139 settings->setValue("remoteName", current->text());
140 //TODO save remote from server to /etc/lircd.conf
141 //maybe lirc needs restart after that?