Complete rewrite. Does not work yet.
[irwi] / src / selectremotedlg.cpp
index 898c6e1..a74c8b5 100644 (file)
@@ -1,7 +1,8 @@
 #include "selectremotedlg.h"
 
-#include "remotelist.h"
+#include "remotedbparser.h"
 #include "model.h"
+#include "iengine.h"
 
 #include <cstdlib>
 
 #include <QListWidgetItem>
 #include <QDomDocument>
 
-SelectRemoteDlg::SelectRemoteDlg(QWidget *parent)
+SelectRemoteDlg::SelectRemoteDlg(QWidget *parent, IEngine *engine)
     : QDialog(parent)
 {
-    this->setWindowTitle(tr("Select remote"));
-    this->setMinimumHeight(320);
-
-    deviceNameMap = new QMap<QString, QString>();
-    settings = new QSettings(this);
-    remoteList = NULL;
-
-    layout = new QHBoxLayout(this);
-
-    alphabetList = new QListWidget(this);
-    alphabetList->setMaximumWidth(96);
-    layout->addWidget(alphabetList);
-    connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
-                this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*)));
-    
-    mfgList = new QListWidget(this);
-    layout->addWidget(mfgList);
-    connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
-                this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*)));
-
-    modelList = new QListWidget(this);
-    layout->addWidget(modelList);
-
-    downloadBtn = new QPushButton(tr("Download"), this);
-    layout->addWidget(downloadBtn);
-    connect(downloadBtn, SIGNAL(clicked()), 
-            this, SLOT(downloadRemote()));
-
-    this->setLayout(layout);
-
-    //TODO caching?
-    listNetAM = new QNetworkAccessManager(this);
-    connect(listNetAM, SIGNAL(finished(QNetworkReply*)), 
-            this,  SLOT(listDownloadFinished(QNetworkReply*)));
-
-    remoteNetAM = new QNetworkAccessManager(this);
-    connect(remoteNetAM, SIGNAL(finished(QNetworkReply*)), 
-            this,  SLOT(remoteDownloadFinished(QNetworkReply*)));
-    beginDownload(settings->value("dbUrl", 
-                "http://mercury.wipsl.com/irwi/db.xml").toString(), listNetAM); 
+//    this->setWindowTitle(tr("Select remote"));
+//    this->setMinimumHeight(320);
+//
+//    deviceNameMap = new QMap<QString, QString>();
+//    settings = new QSettings(this);
+//    remoteList = NULL;
+//
+//    layout = new QHBoxLayout(this);
+//
+//    alphabetList = new QListWidget(this);
+//    alphabetList->setMaximumWidth(96);
+//    layout->addWidget(alphabetList);
+//    connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
+//                this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*)));
+//    
+//    mfgList = new QListWidget(this);
+//    layout->addWidget(mfgList);
+//    connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
+//                this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*)));
+//
+//    modelList = new QListWidget(this);
+//    layout->addWidget(modelList);
+//
+//    downloadBtn = new QPushButton(tr("Download"), this);
+//    layout->addWidget(downloadBtn);
+//    connect(downloadBtn, SIGNAL(clicked()), 
+//            this, SLOT(downloadRemote()));
+//
+//    this->setLayout(layout);
+//
+//    //TODO caching?
+//    listNetAM = new QNetworkAccessManager(this);
+//    connect(listNetAM, SIGNAL(finished(QNetworkReply*)), 
+//            this,  SLOT(listDownloadFinished(QNetworkReply*)));
+//
+//    remoteNetAM = new QNetworkAccessManager(this);
+//    connect(remoteNetAM, SIGNAL(finished(QNetworkReply*)), 
+//            this,  SLOT(remoteDownloadFinished(QNetworkReply*)));
+//    beginDownload(settings->value("dbUrl", 
+//                "http://mercury.wipsl.com/irwi/db.xml").toString(), listNetAM); 
 }
 
+
 SelectRemoteDlg::~SelectRemoteDlg()
 {
-    delete layout;
-    delete settings;
-    delete listNetAM;
-    delete remoteNetAM;
-    delete deviceNameMap;
-    if (remoteList)
-    {
-        delete remoteList;
-    }
+//    delete layout;
+//    delete settings;
+//    delete listNetAM;
+//    delete remoteNetAM;
+//    delete deviceNameMap;
+//    if (remoteList)
+//    {
+//        delete remoteList;
+//    }
 }
 
 void SelectRemoteDlg::setBusy(bool busy)
 {
-    setAttribute(Qt::WA_Maemo5ShowProgressIndicator, busy);
-    setEnabled(!busy);
+//    setAttribute(Qt::WA_Maemo5ShowProgressIndicator, busy);
+//    setEnabled(!busy);
 }
 
 void SelectRemoteDlg::beginDownload(const QString &url,
@@ -98,91 +100,92 @@ void SelectRemoteDlg::beginDownload(const QString &url,
 void SelectRemoteDlg::alphabetItemChanged(QListWidgetItem *current,
                                       QListWidgetItem * /*previous*/)
 {
-    mfgList->clear();
-    modelList->clear();
-    if (current)
-    {
-        mfgList->addItems(remoteList->manufacturers(current->text()));
-    }
+//    mfgList->clear();
+//    modelList->clear();
+//    if (current)
+//    {
+//        mfgList->addItems(remoteList->manufacturers(current->text()));
+//    }
 }
 
 void SelectRemoteDlg::listDownloadFinished(QNetworkReply *reply)
 {
-    if (reply->error() == QNetworkReply::NoError) {
-        QByteArray ba = reply->readAll();
-        QBuffer buf(&ba, this);
-        buf.open(QIODevice::ReadOnly);
-        buf.seek(0);
-        QDomDocument doc;
-        doc.setContent(&buf);
-        remoteList = new RemoteList(doc);
-        QStringList alist = remoteList->letters();
-        for (int i = 0; i < alist.size(); ++i)
-        {
-            alphabetList->addItem(QString(alist[i]));
-        }
-    } else {
-        //qDebug() << (int)reply->error();
-    }
-    reply->close();
-    reply->deleteLater();
-    setBusy(false);
+//    if (reply->error() == QNetworkReply::NoError) {
+//        QByteArray ba = reply->readAll();
+//        QBuffer buf(&ba, this);
+//        buf.open(QIODevice::ReadOnly);
+//        buf.seek(0);
+//        QDomDocument doc;
+//        doc.setContent(&buf);
+//        remoteList = new RemoteList(doc);
+//        QStringList alist = remoteList->letters();
+//        for (int i = 0; i < alist.size(); ++i)
+//        {
+//            alphabetList->addItem(QString(alist[i]));
+//        }
+//    } else {
+//        //qDebug() << (int)reply->error();
+//    }
+//    reply->close();
+//    reply->deleteLater();
+//    setBusy(false);
 }
 
 void SelectRemoteDlg::mfgItemChanged(QListWidgetItem *current,
                                      QListWidgetItem * /*previous*/)
 {
-    modelList->clear();
-    deviceNameMap->clear();
-    if (current)
-    {
-        QList<Model> models = remoteList->models(current->text());
-        for (int i = 0; i < models.size(); ++i)
-        {
-            modelList->addItem(models[i].name);
-            deviceNameMap->insert(models[i].name, models[i].file);
-        }
-
-    }
+//    modelList->clear();
+//    deviceNameMap->clear();
+//    if (current)
+//    {
+//        QList<Model> models = remoteList->models(current->text());
+//        for (int i = 0; i < models.size(); ++i)
+//        {
+//            modelList->addItem(models[i].name);
+//            deviceNameMap->insert(models[i].name, models[i].file);
+//        }
+//
+//    }
 }
 
 void SelectRemoteDlg::downloadRemote()
 {
-    QListWidgetItem *currentModel = modelList->currentItem();
-    if (currentModel)
-    {
-        QString name = currentModel->text();
-        if (!name.isEmpty()) {
-            QString url = settings->value(
-                    "remoteUrl",
-                    "http://mercury.wipsl.com/irwi/uploaded/").toString() 
-                    + (*deviceNameMap)[name];
-            beginDownload(url, remoteNetAM);
-            settings->setValue("remoteName", name);
-        }
-    }
+//    QListWidgetItem *currentModel = modelList->currentItem();
+//    if (currentModel)
+//    {
+//        QString name = currentModel->text();
+//        if (!name.isEmpty()) {
+//            QString url = settings->value(
+//                    "remoteUrl",
+//                    "http://mercury.wipsl.com/irwi/uploaded/").toString() 
+//                    + (*deviceNameMap)[name];
+//            beginDownload(url, remoteNetAM);
+//            settings->setValue("remoteName", name);
+//        }
+//    }
 }
 
 void SelectRemoteDlg::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();
-    setBusy(false);
-    QMessageBox mbox(QMessageBox::Information, tr("Success"),
-            tr("Remote downloaded"), QMessageBox::Ok, this);
-    mbox.exec();
-    this->close();
+//    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();
+//    setBusy(false);
+//    QMessageBox mbox(QMessageBox::Information, tr("Success"),
+//            tr("Remote downloaded"), QMessageBox::Ok, this);
+//    mbox.exec();
+//    this->close();
 }
 
+