#include "settingsdlg.h"
+#include <QDebug>
#include <QHBoxLayout>
#include <QLabel>
#include <QString>
this->setWindowTitle(tr("Settings"));
//TODO caching?
- netAM = new QNetworkAccessManager(this);
+ mfgNetAM = new QNetworkAccessManager(this);
+ connect(mfgNetAM, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(mfgListDownloadFinished(QNetworkReply*)));
+
+ modelNetAM = new QNetworkAccessManager(this);
+ connect(modelNetAM, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(modelListDownloadFinished(QNetworkReply*)));
settings = new QSettings(this);
this, SLOT(modelItemChanged(QListWidgetItem*, QListWidgetItem*)));
this->setLayout(layout);
-
- connect(netAM, SIGNAL(finished(QNetworkReply*)),
- this, SLOT(mfgListDownloadFinished(QNetworkReply*)));
}
SettingsDlg::~SettingsDlg()
{
delete layout;
delete settings;
- delete netAM;
+ delete mfgNetAM;
+ delete modelNetAM;
}
void SettingsDlg::alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
- QNetworkReply* reply = netAM->get(
+ QNetworkReply* reply = mfgNetAM->get(
QNetworkRequest(
QUrl(
settings->value(
while (buf.canReadLine())
{
QString str(buf.readLine());
+ str.chop(1);
mfgList->addItem(str);
}
} else {
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"
+ )
+ )
+ );
+ }
+}
+
+void SettingsDlg::modelListDownloadFinished(QNetworkReply *reply)
+{
+ modelList->clear();
+ if (reply->error() == QNetworkReply::NoError) {
+ QByteArray ba = reply->readAll();
+ QBuffer buf(&ba, this);
+ buf.open(QIODevice::ReadOnly);
+ buf.seek(0);
+ while (buf.canReadLine())
+ {
+ QString str(buf.readLine());
+ modelList->addItem(str);
+ }
+ } else {
+ //qDebug() << (int)reply->error();
+ }
+ reply->close();
+ reply->deleteLater();
}
void SettingsDlg::modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
private slots:
void alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
+
void mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
- void modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
void mfgListDownloadFinished(QNetworkReply *reply);
+ void modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
+ void modelListDownloadFinished(QNetworkReply *reply);
+
private:
QHBoxLayout *layout;
QListWidget *alphabetList;
QListWidget *mfgList;
QListWidget *modelList;
QSettings *settings;
- QNetworkAccessManager *netAM;
+ QNetworkAccessManager *mfgNetAM;
+ QNetworkAccessManager *modelNetAM;
};
#endif