Fixed bug mixing remote name and its filename
authorTorste Aikio <zokier@zokier.laptop>
Fri, 21 May 2010 15:25:51 +0000 (18:25 +0300)
committerTorste Aikio <zokier@zokier.laptop>
Fri, 21 May 2010 15:25:51 +0000 (18:25 +0300)
src/settingsdlg.cpp
src/settingsdlg.h

index febbddc..6dc5287 100644 (file)
 #include <QBuffer>
 #include <QByteArray>
 #include <QFile>
+#include <QMap>
 
 SettingsDlg::SettingsDlg(QWidget *parent)
     : QDialog(parent)
 {
     this->setWindowTitle(tr("Settings"));
 
+    deviceNameMap = new QMap<QString, QString>();
+
     //TODO caching?
     mfgNetAM = new QNetworkAccessManager(this);
     connect(mfgNetAM, SIGNAL(finished(QNetworkReply*)), 
@@ -66,6 +69,7 @@ SettingsDlg::~SettingsDlg()
     delete mfgNetAM;
     delete modelNetAM;
     delete remoteNetAM;
+    delete deviceNameMap;
 }
 
 void SettingsDlg::beginDownload(const QString &url, QNetworkAccessManager *nam)
@@ -120,11 +124,16 @@ void SettingsDlg::modelListDownloadFinished(QNetworkReply *reply)
         QBuffer buf(&ba, this);
         buf.open(QIODevice::ReadOnly);
         buf.seek(0);
+        deviceNameMap->clear();
         while (buf.canReadLine())
         {
             QString str(buf.readLine());
             str.chop(1);
-            modelList->addItem(str);
+            QStringList strlist = str.split(":");
+            if (strlist.count() == 2) {
+                modelList->addItem(strlist[1]);
+                deviceNameMap->insert(strlist[1], strlist[0]);
+            }
         }
     } else {
         //qDebug() << (int)reply->error();
@@ -142,7 +151,7 @@ void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *pr
                     "remoteUrl", "http://mercury.wipsl.com/irwi/remotes/").toString() 
                 + alphabetList->currentItem()->text()
                 + "/" + mfgList->currentItem()->text()
-                + "/" + current->text();
+                + "/" + (*deviceNameMap)[current->text()];
             beginDownload(url, remoteNetAM);
             settings->setValue("remoteName", current->text());
         }
index 5147eb7..74eecaf 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <QDialog>
 #include <QString>
+#include <QMap>
 
 class QHBoxLayout;
 class QListWidget;
@@ -38,6 +39,7 @@ private:
     QNetworkAccessManager *mfgNetAM;
     QNetworkAccessManager *modelNetAM;
     QNetworkAccessManager *remoteNetAM;
+    QMap<QString, QString> *deviceNameMap;
 
     void beginDownload(const QString &url, QNetworkAccessManager *nam);
 };