1 #include "settingsdlg.h"
7 #include <QListWidgetItem>
9 #include <QtNetwork/QNetworkAccessManager>
10 #include <QtNetwork/QNetworkReply>
14 SettingsDlg::SettingsDlg(QWidget *parent)
17 this->setWindowTitle(tr("Settings"));
20 netAM = new QNetworkAccessManager(this);
22 settings = new QSettings(this);
24 layout = new QHBoxLayout(this);
26 alphabetList = new QListWidget(this);
27 for (char c = 'a'; c <= 'z'; ++c)
29 alphabetList->addItem(QString(c));
31 layout->addWidget(alphabetList);
32 connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
33 this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*)));
35 mfgList = new QListWidget(this);
36 layout->addWidget(mfgList);
37 connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
38 this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*)));
40 modelList = new QListWidget(this);
41 layout->addWidget(modelList);
42 connect(modelList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
43 this, SLOT(modelItemChanged(QListWidgetItem*, QListWidgetItem*)));
45 this->setLayout(layout);
48 SettingsDlg::~SettingsDlg()
55 void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
57 QNetworkReply* reply = netAM->get(
62 "http://mercury.wipsl.com/irwi/remotes/"
63 ).toString() + current->text() + ".txt"
67 connect(netAM, SIGNAL(finished(QNetworkReply*)),
68 this, SLOT(mfgListDownloadFinished(QNetworkReply*)));
72 void SettingsDlg::mfgListDownloadFinished(QNetworkReply *reply)
75 QByteArray ba = reply->readAll();
76 QBuffer buf(&ba, this);
77 buf.open(QIODevice::ReadOnly);
79 qDebug() << buf.canReadLine();
80 while (buf.canReadLine())
82 QString str(buf.readLine());
84 mfgList->addItem(str);
89 void SettingsDlg::mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
93 void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
97 settings->setValue("remoteName", current->text());
98 //TODO save remote from server to /etc/lircd.conf
99 //maybe lirc needs restart after that?