9f23019f1bb3f7eebd4033f423ed69d4c4b43079
[irwi] / src / remote.h
1 #ifndef REMOTE_H
2 #define REMOTE_H
3
4 #include <QObject>
5 #include <QString>
6 #include <QNetworkReply>
7 #include <QNetworkAccessManager>
8 #include <QSettings>
9
10 #include "rating.h"
11
12 class Remote : public QObject
13 {
14     Q_OBJECT
15 public:
16     Remote(const QString &name);
17     Remote(const QString &name, const QString &mfg,
18             int rating, int voteCount);
19     Remote(const Remote &);
20     Remote &operator=(const Remote &);
21
22     //getters
23     QString name()  const { return m_name; }
24     QString mfg()   const { return m_mfg; }
25     int rating()    const { return m_rating; }
26     int voteCount() const { return m_voteCount; }
27
28 public slots:
29     void saveToFile();
30     void updateInfo();
31     void sendRating(Rating::Rating);
32
33 signals:
34     void infoUpdated();
35
36 private:
37     QString m_name;
38     QString m_mfg;
39     int m_rating;
40     int m_voteCount;
41
42     QSettings m_settings;
43     QNetworkAccessManager m_infoNAM;
44     QNetworkAccessManager m_remoteNAM;
45     QNetworkAccessManager m_ratingNAM;
46
47     void init();
48     void remoteDownloadFinished(QNetworkReply *reply);
49     void infoRequestFinished(QNetworkReply *reply);
50 };
51
52 #endif
53