1 #include "settingsdlg.h"
8 #include <QListWidgetItem>
10 #include <QtNetwork/QNetworkAccessManager>
11 #include <QtNetwork/QNetworkReply>
16 SettingsDlg::SettingsDlg(QWidget *parent)
19 this->setWindowTitle(tr("Settings"));
22 mfgNetAM = new QNetworkAccessManager(this);
23 connect(mfgNetAM, SIGNAL(finished(QNetworkReply*)),
24 this, SLOT(mfgListDownloadFinished(QNetworkReply*)));
26 modelNetAM = new QNetworkAccessManager(this);
27 connect(modelNetAM, SIGNAL(finished(QNetworkReply*)),
28 this, SLOT(modelListDownloadFinished(QNetworkReply*)));
30 remoteNetAM = new QNetworkAccessManager(this);
31 connect(remoteNetAM, SIGNAL(finished(QNetworkReply*)),
32 this, SLOT(remoteDownloadFinished(QNetworkReply*)));
34 settings = new QSettings(this);
36 layout = new QHBoxLayout(this);
38 alphabetList = new QListWidget(this);
39 for (char c = 'a'; c <= 'z'; ++c)
41 alphabetList->addItem(QString(c));
43 layout->addWidget(alphabetList);
44 connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
45 this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*)));
47 mfgList = new QListWidget(this);
48 layout->addWidget(mfgList);
49 connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
50 this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*)));
52 modelList = new QListWidget(this);
53 layout->addWidget(modelList);
54 connect(modelList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
55 this, SLOT(modelItemChanged(QListWidgetItem*, QListWidgetItem*)));
57 this->setLayout(layout);
60 SettingsDlg::~SettingsDlg()
69 void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
76 "http://mercury.wipsl.com/irwi/remotes/"
78 + current->text() + ".txt"
84 void SettingsDlg::mfgListDownloadFinished(QNetworkReply *reply)
87 if (reply->error() == QNetworkReply::NoError) {
88 QByteArray ba = reply->readAll();
89 QBuffer buf(&ba, this);
90 buf.open(QIODevice::ReadOnly);
92 while (buf.canReadLine())
94 QString str(buf.readLine());
96 mfgList->addItem(str);
99 //qDebug() << (int)reply->error();
102 reply->deleteLater();
105 void SettingsDlg::mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
107 if (mfgList->currentItem() != NULL) {
113 "http://mercury.wipsl.com/irwi/remotes/"
115 + alphabetList->currentItem()->text()
116 + "/" + current->text() + ".txt"
123 void SettingsDlg::modelListDownloadFinished(QNetworkReply *reply)
126 if (reply->error() == QNetworkReply::NoError) {
127 QByteArray ba = reply->readAll();
128 QBuffer buf(&ba, this);
129 buf.open(QIODevice::ReadOnly);
131 while (buf.canReadLine())
133 QString str(buf.readLine());
135 modelList->addItem(str);
138 //qDebug() << (int)reply->error();
141 reply->deleteLater();
144 void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
148 if (!current->text().isEmpty()) {
154 "http://mercury.wipsl.com/irwi/remotes/"
156 + alphabetList->currentItem()->text()
157 + "/" + mfgList->currentItem()->text()
158 + "/" + current->text()
162 settings->setValue("remoteName", current->text());
167 void SettingsDlg::remoteDownloadFinished(QNetworkReply *reply)
169 if (reply->error() == QNetworkReply::NoError) {
170 QFile file("/etc/lircd.conf");
171 if(file.open(QIODevice::WriteOnly))
173 file.write(reply->readAll());
178 reply->deleteLater();
180 system("lircctl restart");