asdf, more stuff to settings
authorTorste Aikio <zokier@zokier.laptop>
Fri, 21 May 2010 13:17:08 +0000 (16:17 +0300)
committerTorste Aikio <zokier@zokier.laptop>
Fri, 21 May 2010 13:17:08 +0000 (16:17 +0300)
src/main.cpp
src/settingsdlg.cpp
src/settingsdlg.h

index 1ce11ac..7e9ba2d 100644 (file)
@@ -10,6 +10,9 @@ int main(int argc, char *argv[])
     QApplication::setGraphicsSystem("native");
 
     QApplication app(argc, argv);
+    app.setOrganizationName("Foobar");
+    app.setOrganizationDomain("mercury.wipsl.com");
+    app.setApplicationName("irwi");
 
     MainWidget w;
     QMaemo5HomescreenAdaptor *adaptor = new QMaemo5HomescreenAdaptor(&w);
index 1c8ecd1..5d3c3ca 100644 (file)
@@ -11,6 +11,7 @@
 #include <QtNetwork/QNetworkReply>
 #include <QBuffer>
 #include <QByteArray>
+#include <QFile>
 
 SettingsDlg::SettingsDlg(QWidget *parent)
     : QDialog(parent)
@@ -25,6 +26,10 @@ SettingsDlg::SettingsDlg(QWidget *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);
 
@@ -62,13 +67,14 @@ SettingsDlg::~SettingsDlg()
 
 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"
             )
         )
     );
@@ -98,17 +104,18 @@ void SettingsDlg::mfgListDownloadFinished(QNetworkReply *reply)
 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"
+                )
             )
-        )
-    );
+        );
     }
 }
 
@@ -123,6 +130,7 @@ void SettingsDlg::modelListDownloadFinished(QNetworkReply *reply)
         while (buf.canReadLine())
         {
             QString str(buf.readLine());
+            str.chop(1);
             modelList->addItem(str);
         }
     } else {
@@ -136,9 +144,38 @@ void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *pr
 {
     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");
+}
+
index 000e30a..0a66f41 100644 (file)
@@ -27,6 +27,8 @@ private slots:
     void modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
     void modelListDownloadFinished(QNetworkReply *reply);
 
+    void remoteDownloadFinished(QNetworkReply *reply);
+
 private:
     QHBoxLayout *layout;
     QListWidget *alphabetList;
@@ -35,6 +37,7 @@ private:
     QSettings *settings;
     QNetworkAccessManager *mfgNetAM;
     QNetworkAccessManager *modelNetAM;
+    QNetworkAccessManager *remoteNetAM;
 };
 
 #endif