[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [libkvkontakte] libkvkontakte: PhotoPostJob: Support uploading either to Albums or to Wall or to Pro
From: Alexander Potashev <aspotashev () gmail ! com>
Date: 2012-06-30 20:52:40
Message-ID: 20120630205240.DDE3DA60C6 () git ! kde ! org
[Download RAW message or body]
Git commit 0f88b85d972c617c0f020be1ea5d35f0e2d93bfa by Alexander Potashev.
Committed on 30/06/2012 at 20:25.
Pushed by aspotashev into branch 'master'.
PhotoPostJob: Support uploading either to Albums or to Wall or to Profile
PhotoPostJob: uploads files; form item names depend on "dest":
* -> Album
-> "file1-file5"
<- {"server": '1', "photos_list": '2,3,4', "aid": '5', "hash": '12345abcde'}
* -> Profile
-> "photo"
<- {"server": '1', "photos": '1', "hash": '12345abcde'}
* -> Wall
-> "photo"
<- {"server": "4753", "photo": "2041c53171:w|402x600^200^299", "hash": \
"76a17dce73ccb6edf9d7382c7787d53a"}
* -> Private Message [TBD]
-> "photo"
<- {"server": "10432", "photo": "5f3d5830a9:z|402x600^200^299", "hash": \
"261bc1e21ebe02e43d22365c96f9b321"}
M +24 -8 libkvkontakte/photopostjob.cpp
M +3 -1 libkvkontakte/photopostjob.h
M +4 -1 libkvkontakte/uploadphotosjob.cpp
http://commits.kde.org/libkvkontakte/0f88b85d972c617c0f020be1ea5d35f0e2d93bfa
diff --git a/libkvkontakte/photopostjob.cpp b/libkvkontakte/photopostjob.cpp
index 94271bd..cad27ce 100644
--- a/libkvkontakte/photopostjob.cpp
+++ b/libkvkontakte/photopostjob.cpp
@@ -27,10 +27,12 @@
namespace Vkontakte
{
-PhotoPostJob::PhotoPostJob(const QString &url, const QStringList &files)
- : m_url(url)
- , m_files(files)
+PhotoPostJob::PhotoPostJob(Vkontakte::UploadPhotosJob::Dest dest, const QString \
&url, const QStringList &files) {
+ m_url = url;
+ m_files = files;
+ m_dest = dest;
+
setCapabilities(KJob::Killable);
m_ok = true;
@@ -61,13 +63,27 @@ void PhotoPostJob::start()
}
MPForm form;
- // file1 .. file5
- for (int i = 0; i < m_files.size(); i ++)
- if (!form.addFile(QString("file%1").arg(i + 1), m_files[i]))
- {
+ switch (m_dest)
+ {
+ case Vkontakte::UploadPhotosJob::DEST_ALBUM:
+ // "file1" .. "file5"
+ for (int i = 0; i < m_files.size(); i ++)
+ if (!form.addFile(QString("file%1").arg(i + 1), m_files[i]))
+ {
+ m_ok = false;
+ break;
+ }
+ break;
+ case Vkontakte::UploadPhotosJob::DEST_PROFILE:
+ case Vkontakte::UploadPhotosJob::DEST_WALL:
+ // "photo"
+ if (!form.addFile(QString("photo"), m_files[0]))
+ m_ok = false;
+ break;
+ default:
m_ok = false;
break;
- }
+ }
form.finish();
if (!m_ok)
diff --git a/libkvkontakte/photopostjob.h b/libkvkontakte/photopostjob.h
index 0c1b464..ebb18fa 100644
--- a/libkvkontakte/photopostjob.h
+++ b/libkvkontakte/photopostjob.h
@@ -23,6 +23,7 @@
#include <QtCore/QVariantMap>
#include "vkontaktejobs.h"
+#include "uploadphotosjob.h"
namespace Vkontakte
{
@@ -35,7 +36,7 @@ class PhotoPostJob : public KJobWithSubjob
Q_OBJECT
public:
// files.size <= 5
- PhotoPostJob(const QString &url, const QStringList &files);
+ PhotoPostJob(Vkontakte::UploadPhotosJob::Dest dest, const QString &url, const \
QStringList &files);
virtual void start();
QVariantMap response() const;
@@ -50,6 +51,7 @@ private Q_SLOTS:
void jobFinished(KJob *kjob);
private:
+ UploadPhotosJob::Dest m_dest;
QString m_url;
QStringList m_files;
bool m_ok;
diff --git a/libkvkontakte/uploadphotosjob.cpp b/libkvkontakte/uploadphotosjob.cpp
index 130aaa5..86a0d2f 100644
--- a/libkvkontakte/uploadphotosjob.cpp
+++ b/libkvkontakte/uploadphotosjob.cpp
@@ -38,6 +38,8 @@ public:
int gid;
bool saveBig;
+ UploadPhotosJob::Dest dest;
+
QString uploadUrl;
QList<PhotoInfoPtr> list;
@@ -56,6 +58,7 @@ UploadPhotosJob::UploadPhotosJob(const QString &accessToken,
d->gid = gid;
d->saveBig = saveBig;
d->workingPostJobs = 0;
+ d->dest = Vkontakte::UploadPhotosJob::DEST_ALBUM;
}
UploadPhotosJob::~UploadPhotosJob()
@@ -112,7 +115,7 @@ bool UploadPhotosJob::mayStartPostJob()
void UploadPhotosJob::startPostJob(int offset, int count)
{
- PhotoPostJob *job = new PhotoPostJob(d->uploadUrl, d->files.mid(offset, count));
+ PhotoPostJob *job = new PhotoPostJob(d->dest, d->uploadUrl, d->files.mid(offset, \
count)); m_jobs.append(job);
connect(job, SIGNAL(result(KJob*)), this, SLOT(postJobFinished(KJob*)));
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic