Remote class 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 class IEngine;
19
20 class SelectRemoteDlg : public QDialog
21 {
22     Q_OBJECT
23
24 public:
25     SelectRemoteDlg(QWidget *parent, IEngine *engine);
26     ~SelectRemoteDlg();
27
28 signals:
29     void remoteDownloaded();
30
31 private slots:
32     void alphabetItemChanged(QListWidgetItem *current, 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     IEngine *engine;
42     QHBoxLayout *layout;
43     QListWidget *alphabetList;
44     QListWidget *mfgList;
45     QListWidget *modelList;
46     QSettings *settings;
47     QNetworkAccessManager *listNetAM;
48     QNetworkAccessManager *remoteNetAM;
49     QMap<QString, QString> *deviceNameMap;
50     QPushButton *downloadBtn;
51     QLabel *remoteNameLabel;
52
53     RemoteList *remoteList;
54
55     void beginDownload(const QString &url, QNetworkAccessManager *nam);
56     void setBusy(bool busy = true);
57 };
58
59 #endif
60