Button label will now be updated to reflect downloaded remote
[irwi] / src / selectremotedlg.h
1 #ifndef SELECTREMOTEDLG_H
2 #define SELECTREMOTEDLG_H
3
4 #include <QDialog>
5 #include <QString>
6 #include <QMap>
7
8 class QHBoxLayout;
9 class QListWidget;
10 class QListWidgetItem;
11 class QSettings;
12 class QNetworkAccessManager;
13 class QNetworkReply;
14 class QWidget;
15
16 class SelectRemoteDlg : public QDialog
17 {
18     Q_OBJECT
19 public:
20     SelectRemoteDlg(QWidget *parent = 0);
21     ~SelectRemoteDlg();
22
23 public signals:
24     void remoteDownloaded();
25
26 private slots:
27     void alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
28     
29     void mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
30     void mfgListDownloadFinished(QNetworkReply *reply);
31
32     void modelItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
33     void modelListDownloadFinished(QNetworkReply *reply);
34
35     void remoteDownloadFinished(QNetworkReply *reply);
36
37 private:
38     QHBoxLayout *layout;
39     QListWidget *alphabetList;
40     QListWidget *mfgList;
41     QListWidget *modelList;
42     QSettings *settings;
43     QNetworkAccessManager *mfgNetAM;
44     QNetworkAccessManager *modelNetAM;
45     QNetworkAccessManager *remoteNetAM;
46     QMap<QString, QString> *deviceNameMap;
47
48     void beginDownload(const QString &url, QNetworkAccessManager *nam);
49     void setBusy(bool busy = true);
50 };
51
52 #endif
53