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