X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fremote.cpp;h=9e9f80e47a2aca11c1d61968450102454c9a8795;hb=66155b3e3612301cbd37a42e1197e3ba41157fad;hp=af46cda3b3384ad69f9e1be12978e1c290d9de92;hpb=d9e905fe0a9ad37dcadb5d23529a377f47755e3a;p=irwi diff --git a/src/remote.cpp b/src/remote.cpp index af46cda..9e9f80e 100644 --- a/src/remote.cpp +++ b/src/remote.cpp @@ -1,14 +1,20 @@ #include "remote.h" +#include + #include #include +#include #include #include +#include #include Remote::Remote(const QString &name) : m_name(name) { + init(); + updateInfo(); } Remote::Remote(const QString &name, const QString &mfg, @@ -16,20 +22,38 @@ Remote::Remote(const QString &name, const QString &mfg, : m_name(name), m_mfg(mfg), m_rating(rating), m_voteCount(voteCount) { + init(); +} + +void Remote::init() +{ + connect(&m_remoteNAM, SIGNAL(finished(QNetworkReply*)), + this, SLOT(remoteDownloadFinished(QNetworkReply*))); + connect(&m_infoNAM, SIGNAL(finished(QNetworkReply*)), + this, SLOT(infoRequestFinished(QNetworkReply *reply))); } void Remote::saveToFile() { + QSettings settings; + if (!m_name.isEmpty()) { + QString url = settings.value("remoteUrl", + "http://mercury.wipsl.com/irwi/uploaded/").toString() + + m_name; + m_remoteNAM.get(QNetworkRequest(QUrl(url))); + settings.setValue("remoteName", m_name); + } } void Remote::updateInfo() { QSettings settings; - if (m_name != "") { - m_infoNAM.get(QNetworkRequest(QUrl( - settings.value("baseUrl").toString() - + "vote/get?name=" - + m_name ))); + if (!m_name.isEmpty()) { + QString url = settings.value("baseUrl", + "http://mercury.wipsl.com/irwi/").toString() + + "vote/get?name=" + + m_name; + m_infoNAM.get(QNetworkRequest(QUrl(url))); } } @@ -44,6 +68,36 @@ void Remote::sendRating(Rating::Rating r) + ((r == Rating::Up) ? "up" : "down") + "?name=" + m_name))); + } +} + +void Remote::remoteDownloadFinished(QNetworkReply *reply) +{ + if (reply->error() == QNetworkReply::NoError) { + QFile file(settings->value("lircConf", "/etc/lircd.conf").toString()); + if(file.open(QIODevice::WriteOnly)) + { + file.write(reply->readAll()); + file.close(); + } + } + reply->close(); + reply->deleteLater(); + + std::system("sudo /etc/init.d/lirc reload"); + + //emit remoteDownloaded(); +} + +void Remote::infoRequestFinished(QNetworkReply *reply) +{ + if (reply->error() == QNetworkReply::NoError) { + m_rating = QString(reply->readline(20)).toInt(); + m_voteCount = QString(reply->readline(20)).toInt(); } + reply->close(); + reply->deleteLater(); + + emit infoUpdated(); }