Unit tests for RemoteList are now ready
[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 class QPushButton;
16 class QLabel;
17 class RemoteList;
18
19 class SelectRemoteDlg : public QDialog
20 {
21     Q_OBJECT
22 public:
23     SelectRemoteDlg(QWidget *parent = 0);
24     ~SelectRemoteDlg();
25
26 signals:
27     void remoteDownloaded();
28
29 private slots:
30     void alphabetItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
31     
32     void mfgItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
33     void listDownloadFinished(QNetworkReply *reply);
34
35     void downloadRemote();
36     void remoteDownloadFinished(QNetworkReply *reply);
37
38 private:
39     QHBoxLayout *layout;
40     QListWidget *alphabetList;
41     QListWidget *mfgList;
42     QListWidget *modelList;
43     QSettings *settings;
44     QNetworkAccessManager *listNetAM;
45     QNetworkAccessManager *remoteNetAM;
46     QMap<QString, QString> *deviceNameMap;
47     QPushButton *downloadBtn;
48     QLabel *remoteNameLabel;
49
50     RemoteList *remoteList;
51
52     void beginDownload(const QString &url, QNetworkAccessManager *nam);
53     void setBusy(bool busy = true);
54 };
55
56 #endif
57