#include <QtNetwork/QNetworkReply>
#include <QBuffer>
#include <QByteArray>
+#include <QFile>
SettingsDlg::SettingsDlg(QWidget *parent)
: QDialog(parent)
modelNetAM = new QNetworkAccessManager(this);
connect(modelNetAM, SIGNAL(finished(QNetworkReply*)),
this, SLOT(modelListDownloadFinished(QNetworkReply*)));
+
+ remoteNetAM = new QNetworkAccessManager(this);
+ connect(remoteNetAM, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(remoteDownloadFinished(QNetworkReply*)));
settings = new QSettings(this);
void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
- QNetworkReply* reply = mfgNetAM->get(
+ mfgNetAM->get(
QNetworkRequest(
QUrl(
settings->value(
"remoteUrl",
"http://mercury.wipsl.com/irwi/remotes/"
- ).toString() + current->text() + ".txt"
+ ).toString()
+ + current->text() + ".txt"
)
)
);
void SettingsDlg::mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
if (mfgList->currentItem() != NULL) {
- QNetworkReply* reply = modelNetAM->get(
- QNetworkRequest(
- QUrl(
- settings->value(
- "remoteUrl",
- "http://mercury.wipsl.com/irwi/remotes/"
- ).toString() + alphabetList->currentItem()->text()
- + "/" + current->text() + ".txt"
+ modelNetAM->get(
+ QNetworkRequest(
+ QUrl(
+ settings->value(
+ "remoteUrl",
+ "http://mercury.wipsl.com/irwi/remotes/"
+ ).toString()
+ + alphabetList->currentItem()->text()
+ + "/" + current->text() + ".txt"
+ )
)
- )
- );
+ );
}
}
while (buf.canReadLine())
{
QString str(buf.readLine());
+ str.chop(1);
modelList->addItem(str);
}
} else {
{
if (current)
{
- settings->setValue("remoteName", current->text());
- //TODO save remote from server to /etc/lircd.conf
- //maybe lirc needs restart after that?
+ if (!current->text().isEmpty()) {
+ remoteNetAM->get(
+ QNetworkRequest(
+ QUrl(
+ settings->value(
+ "remoteUrl",
+ "http://mercury.wipsl.com/irwi/remotes/"
+ ).toString()
+ + alphabetList->currentItem()->text()
+ + "/" + mfgList->currentItem->text()
+ + "/" + current->text()
+ )
+ )
+ );
+ settings->setValue("remoteName", current->text());
+ }
}
}
+void SettingsDlg::remoteDownloadFinished(QNetworkReply *reply)
+{
+ if (reply->error() == QNetworkReply::NoError) {
+ QFile file("/etc/lircd.conf");
+ if(file.open(QIODevice::WriteOnly))
+ {
+ file.write(reply->readAll());
+ file.close();
+ }
+ }
+ reply->close();
+ reply->deleteLater();
+
+ system("lircctl restart");
+}
+