39a6ee31c6de91983f540fa23d2acf7ae2f7be3a
[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 private slots:
34     void remoteDownloadFinished(QNetworkReply *reply);
35     void infoRequestFinished(QNetworkReply *reply);
36
37 signals:
38     void infoUpdated();
39
40 private:
41     QString m_name;
42     QString m_mfg;
43     int m_rating;
44     int m_voteCount;
45
46     QSettings m_settings;
47     QNetworkAccessManager m_infoNAM;
48     QNetworkAccessManager m_remoteNAM;
49     QNetworkAccessManager m_ratingNAM;
50
51     void init();
52 };
53
54 #endif
55