00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef QTFLICKR_H
00022 #define QTFLICKR_H
00023
00024 #include <QtCore>
00025
00026 class QtFlickrPrivate;
00027
00035 struct QtfError{
00036 int code;
00037 QString message;
00038 };
00039
00040
00056 struct QtfMethod{
00057 QString method;
00058 QMap<QString,QString> args;
00059
00061 QtfMethod(){}
00063 QtfMethod(const QString &method):method(method){}
00064 };
00065
00066
00096 struct QtfRequest{
00097 QMap<QString,QString> requests;
00098
00100 QtfRequest(){}
00102 QtfRequest(const QString &tag, const QString &attrs = QString())
00103 {
00104 requests.insert(tag,attrs);
00105 }
00106 };
00107
00108
00129 struct QtfPhoto{
00130 QString file;
00131 QString photoId;
00132 QMap<QString,QString> args;
00133
00135 QtfPhoto(){}
00137 QtfPhoto(const QString &file, const QString &photoId = QString()):file(file),photoId(photoId){}
00138 };
00139
00140
00145 struct QtfTag{
00146 QString value;
00147 QMap<QString,QString> attrs;
00148 };
00149
00150
00174 struct QtfResponse{
00175 QMultiMap<QString,QtfTag> tags;
00176 };
00177
00178
00235 class QtFlickr : public QObject
00236 {
00237 Q_OBJECT
00238 public:
00239
00246 QtFlickr ( const QString &apiKey,
00247 const QString &apiSecret,
00248 QObject *parent = 0 );
00249
00250 ~QtFlickr();
00251
00256 void setToken ( const QString &token );
00257
00263 QUrl authorizationUrl ( const QString &frob, const QString &perms = "write" );
00264
00273 int get ( const QtfMethod &method,
00274 const QtfRequest &request = QtfRequest(),
00275 void* userData = 0 );
00276
00285 int post ( const QtfMethod &method,
00286 const QtfRequest &request = QtfRequest(),
00287 void* userData = 0 );
00288
00297 int upload ( const QtfPhoto &photo,
00298 const QtfRequest &request = QtfRequest(),
00299 void* userData = 0 );
00300
00301 signals:
00309 void requestFinished ( int reqId, QtfResponse response, QtfError err, void* userData );
00310
00316 void uploadProgress ( int percent );
00317
00318 private:
00319 QtFlickrPrivate * const d;
00320 friend class QtFlickrPrivate;
00321 };
00322
00323 #endif