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()
68 void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
75 "http://mercury.wipsl.com/irwi/remotes/"
77 + current->text() + ".txt"
83 void SettingsDlg::mfgListDownloadFinished(QNetworkReply *reply)
86 if (reply->error() == QNetworkReply::NoError) {
87 QByteArray ba = reply->readAll();
88 QBuffer buf(&ba, this);
89 buf.open(QIODevice::ReadOnly);
91 while (buf.canReadLine())
93 QString str(buf.readLine());
95 mfgList->addItem(str);
98 //qDebug() << (int)reply->error();
101 reply->deleteLater();
104 void SettingsDlg::mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
106 if (mfgList->currentItem() != NULL) {
112 "http://mercury.wipsl.com/irwi/remotes/"
114 + alphabetList->currentItem()->text()
115 + "/" + current->text() + ".txt"
122 void SettingsDlg::modelListDownloadFinished(QNetworkReply *reply)
125 if (reply->error() == QNetworkReply::NoError) {
126 QByteArray ba = reply->readAll();
127 QBuffer buf(&ba, this);
128 buf.open(QIODevice::ReadOnly);
130 while (buf.canReadLine())
132 QString str(buf.readLine());
134 modelList->addItem(str);
137 //qDebug() << (int)reply->error();
140 reply->deleteLater();
143 void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
147 if (!current->text().isEmpty()) {
153 "http://mercury.wipsl.com/irwi/remotes/"
155 + alphabetList->currentItem()->text()
156 + "/" + mfgList->currentItem()->text()
157 + "/" + current->text()
161 settings->setValue("remoteName", current->text());
166 void SettingsDlg::remoteDownloadFinished(QNetworkReply *reply)
168 if (reply->error() == QNetworkReply::NoError) {
169 QFile file("/etc/lircd.conf");
170 if(file.open(QIODevice::WriteOnly))
172 file.write(reply->readAll());
177 reply->deleteLater();
179 system("lircctl restart");