1 #ifndef TWITTERAPI_H
2 #define TWITTERAPI_H
3 
4 #include <QAbstractListModel>
5 #include <QObject>
6 #include <QNetworkAccessManager>
7 
8 #include "o1twitter.h"
9 
10 #include "tweetmodel.h"
11 
12 /// Mini Twitter API
13 class TwitterApi: public QObject {
14     Q_OBJECT
15 
16 public:
17     /// List of tweets
18     Q_PROPERTY(TweetModel *tweetModel READ tweetModel NOTIFY tweetModelChanged)
19     TweetModel *tweetModel() ;
20 
21     /// OAuth authenticator
22     Q_PROPERTY(O1Twitter *authenticator READ authenticator WRITE setAuthenticator)
23     O1Twitter *authenticator() const;
24     void setAuthenticator(O1Twitter *v) ;
25 
26     explicit TwitterApi(QObject *parent = 0);
27     virtual ~TwitterApi();
28 
29 public slots:
30     Q_INVOKABLE virtual void requestTweets();
31 
32 signals:
33     void tweetModelChanged();
34 
35 protected:
36     O1Twitter *authenticator_;
37     TweetModel *tweetModel_;
38     QNetworkAccessManager *manager_;
39 
40 protected slots:
41     void tweetsReceived();
42     void requestFailed(QNetworkReply::NetworkError error);
43 };
44 
45 #endif // TWITTERAPI_H
46