From af55637d27c287425a091ae482acff97c7f0e382 Mon Sep 17 00:00:00 2001 From: Torste Aikio Date: Fri, 18 Jun 2010 11:44:22 +0300 Subject: [PATCH] More implementation --- src/remote.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/src/remote.cpp b/src/remote.cpp index b6d623b..a10deff 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 Remote::QString &name) : m_name(name) { + init(); + updateInfo(); } Remote::Remote(const QString &name, const QString &mfg, @@ -16,28 +22,41 @@ 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))); } } void Remote::sendRating(Rating::Rating r) { QSettings settings; - if (m_name != "") { - m_ratingNAM->get(QNetworkRequest(QUrl( + if (!m_name.isEmpty()) { + m_ratingNAM.get(QNetworkRequest(QUrl( settings.value("baseUrl").toString() + "vote/" + r == Rating::Up ? "up" : "down" @@ -46,3 +65,33 @@ void Remote::sendRating(Rating::Rating r) } } +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(); +} + -- 1.7.9.5