[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/pim/kblogger/src/backend
From: Christian Weilbach <christian () whiletaker ! homeip ! net>
Date: 2008-02-01 0:30:46
Message-ID: 1201825846.367948.1837.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 769279 by weilbach:
Move the waitMessage stuff to the BlogJobQueue and add LIST_BLOGS support to the job.
M +2 -2 backend.cpp
M +1 -1 backend.h
M +47 -20 blogjob.cpp
M +6 -5 blogjob.h
M +3 -2 blogjob_p.h
M +26 -1 blogjobqueue.cpp
--- trunk/playground/pim/kblogger/src/backend/backend.cpp #769278:769279
@@ -170,7 +170,7 @@
if (!caller)
caller = qobject_cast<QWidget*>(mMainWindow);
QVariant n(0);
- BlogJob *mJob = createBlogJob(blog,BlogJob::FETCH_CATEGORIES,n);
+ BlogJob *mJob = createBlogJob(blog,BlogJob::LIST_CATEGORIES,n);
connect( mJob, SIGNAL(listedCategories(const QList<QMap<QString, QString> >&)),
this, SLOT(slotListedCategories(const QList<QMap<QString, QString> >& \
)));
@@ -379,7 +379,7 @@
return blogsMap.values();
}
-BlogJob* Backend::createBlogJob( BlogServer &blogServer, BlogJob::BlogActions \
action, QVariant& arg ) +BlogJob* Backend::createBlogJob( BlogServer &blogServer, \
BlogJob::BlogAction action, QVariant& arg ) {
kDebug();
kDebug() << "BlogServer blogname=" << blogServer.blogname() << endl;
--- trunk/playground/pim/kblogger/src/backend/backend.h #769278:769279
@@ -92,7 +92,7 @@
//Default Costructor
Backend( QObject* parent = 0);
void initialize();
- BlogJob* createBlogJob( BlogServer&, BlogJob::BlogActions, QVariant& );
+ BlogJob* createBlogJob( BlogServer&, BlogJob::BlogAction, QVariant& );
//Vars
static Backend *s_self;
--- trunk/playground/pim/kblogger/src/backend/blogjob.cpp #769278:769279
@@ -51,9 +51,9 @@
namespace KBlogger
{
-//TODO check for more member functions for BlogAPI and BlogActions
+//TODO check for more member functions for BlogAPI and BlogAction
BlogJob::BlogJob( BlogAPI api, KUrl& url,
- BlogActions action,
+ BlogAction action,
QVariant& arg,
QObject* parent ): KJob ( parent )
// mItemsManager( ItemsManager::self() )
@@ -65,7 +65,7 @@
d_ptr->mArg = arg;
d_ptr->mKBlog = 0;
d_ptr->mUrl = url;
- d_ptr->createKBlog(api);
+ d_ptr->mApi = api;
}
BlogJob::~BlogJob()
@@ -74,6 +74,18 @@
delete d_ptr;
}
+BlogJob::BlogAPI BlogJob::api()
+{
+ kDebug();
+ return d_ptr->mApi;
+}
+
+BlogJob::BlogAction BlogJob::action()
+{
+ kDebug();
+ return d_ptr->mAction;
+}
+
void BlogJob::setUsername(const QString& username)
{
kDebug();
@@ -96,6 +108,8 @@
{
kDebug();
+ d_ptr->createKBlog(d_ptr->mApi);
+
connect(d_ptr->mKBlog, SIGNAL( error( KBlog::Blog::ErrorType, const QString& ) \
),
this, SLOT( slotExitError( KBlog::Blog::ErrorType, const QString&) ) );
@@ -116,6 +130,28 @@
switch (d_ptr->mAction) {
+ case LIST_BLOGS: {
+ // NOTE: not all apis, e.g. GData, require authentication, still we use a \
sane default + if ( !d_ptr->setKBlogAuthentication() ){
+ kError() << "You need to authenticate for this task.";
+ return;
+ }
+
+ // NOTE: Currently both Blogger1(as a base to all derived classes) and GData \
support this call + connect(d_ptr->mKBlog, SIGNAL( listedBlogs( const \
QList<QMap<QString,QString> >& ) ), + this, SLOT( slotListedBlogs( \
const QList<QMap<QString,QString> >& ) ) ); + \
if(qobject_cast<KBlog::Blogger1*>(d_ptr->mKBlog)){ + KBlog::Blogger1* \
blogger1 = qobject_cast<KBlog::Blogger1*>(d_ptr->mKBlog); + \
blogger1->listBlogs(); + }
+ else if(qobject_cast<KBlog::GData*>(d_ptr->mKBlog)){
+ KBlog::GData* gdata = qobject_cast<KBlog::GData*>(d_ptr->mKBlog);
+ gdata->listBlogs();
+ }
+ else {
+ kError() << "Could not convert mKBlog to the fitting API for a blog \
listing."; + }
+ }
case LIST_RECENT_POSTS: {
int postsToDownload;
@@ -130,7 +166,6 @@
return;
}
- d_ptr->mWaitMessage = i18n("Listing recent posts.");
postsToDownload = d_ptr->mArg.toInt();
connect(d_ptr->mKBlog, SIGNAL( listedRecentPosts( const \
QList<KBlog::BlogPost>& ) ),
this, SLOT( slotListedRecentPosts( const QList<KBlog::BlogPost>& ) ) \
); @@ -154,7 +189,6 @@
return;
}
- d_ptr->mWaitMessage = i18n("Fetching post.");
post = d_ptr->mArg.value<KBlog::BlogPost*>();
connect(d_ptr->mKBlog, SIGNAL( fetchedPost( KBlog::BlogPost *) ),
this, SLOT( slotFetchedPost( KBlog::BlogPost *)) );
@@ -176,7 +210,6 @@
return;
}
- d_ptr->mWaitMessage = i18n("Modifying post.");
post = d_ptr->mArg.value<KBlog::BlogPost*>();
connect(d_ptr->mKBlog, SIGNAL( modifiedPost( KBlog::BlogPost *) ),
this, SLOT( slotModifiedPost( KBlog::BlogPost *) ));
@@ -200,7 +233,6 @@
post = d_ptr->mArg.value<KBlog::BlogPost*>();
- d_ptr->mWaitMessage = i18n("Creating post.");
post = d_ptr->mArg.value<KBlog::BlogPost*>();
connect(d_ptr->mKBlog, SIGNAL( createdPost( KBlog::BlogPost *) ),
this, SLOT( slotCreatedPost( KBlog::BlogPost *) ));
@@ -223,7 +255,6 @@
return;
}
- d_ptr->mWaitMessage = i18n("Removing post.");
post = d_ptr->mArg.value<KBlog::BlogPost*>();
connect(d_ptr->mKBlog, SIGNAL( removedPost( KBlog::BlogPost *) ),
this, SLOT( slotRemovedPost( KBlog::BlogPost *) ));
@@ -232,7 +263,7 @@
}
break;
- case FETCH_CATEGORIES: {
+ case LIST_CATEGORIES: {
// NOTE we have to add casts for other KBlog types with category support \
here, e.g. Atom API when it comes out
// we can assume MetaWeblog for now, since all others in the Blogger1 \
hierarchy use it infact
KBlog::MetaWeblog* mMetaWeblog = \
qobject_cast<KBlog::MetaWeblog*>(d_ptr->mKBlog); @@ -242,7 +273,6 @@
return;
}
- d_ptr->mWaitMessage = i18n("Fetching categories.");
connect(mMetaWeblog, SIGNAL( listedCategories( const QList<QMap<QString, \
QString> >& )),
this, SLOT( slotListedCategories( const QList<QMap<QString, QString> \
>& ) ));
kDebug() << "Running " << mMetaWeblog << "->listCategories" << endl;
@@ -266,7 +296,6 @@
return;
}
- d_ptr->mWaitMessage = i18n("Creating media.");
media = d_ptr->mArg.value<KBlog::BlogMedia*>();
connect(mMetaWeblog, SIGNAL( createdMedia( KBlog::BlogMedia* ) ),
this, SLOT( slotCreatedMedia( KBlog::BlogMedia* ) ));
@@ -278,17 +307,8 @@
}
}
-const QString BlogJob::waitMessage()
-{
- kDebug() << "backendJobs::getWaitMessage message" << d_ptr->mWaitMessage << \
endl;
- return d_ptr->mWaitMessage;
-};
-
-
-
-
BlogJobPrivate::BlogJobPrivate():
q_ptr(0),mKBlog(0)
{
@@ -354,6 +374,13 @@
q_ptr->emitResult();
}
+void BlogJobPrivate::slotListBlogs( const QList<QMap<QString,QString> >& list)
+{
+ kDebug();
+ slotExitSuccess();
+}
+
+
void BlogJobPrivate::slotListRecentPosts( const QList<KBlog::BlogPost>& posts)
{
kDebug();
--- trunk/playground/pim/kblogger/src/backend/blogjob.h #769278:769279
@@ -52,21 +52,22 @@
Q_OBJECT
friend class BlogJobPrivate;
public:
- enum BlogActions{ LIST_RECENT_POSTS, FETCH_POST, MODIFY_POST,
- CREATE_POST, REMOVE_POST, FETCH_CATEGORIES, CREATE_MEDIA
+ enum BlogAction{ LIST_BLOGS, LIST_RECENT_POSTS, FETCH_POST, MODIFY_POST,
+ CREATE_POST, REMOVE_POST, LIST_CATEGORIES, CREATE_MEDIA
};
enum BlogAPI{ BLOGGER1, METAWEBLOG, MOVABLETYPE, WORDPRESSBUGGY, GDATA };
- explicit BlogJob( BlogAPI api, KUrl& url, BlogActions action, QVariant& arg,
+ explicit BlogJob( BlogAPI api, KUrl& url, BlogAction action, QVariant& arg,
QObject* parent = 0 );
virtual ~BlogJob();
void start();
+ BlogAPI api();
+ BlogAction action();
void setUsername(const QString& username);
void setPassword(const QString& password);
void setBlogId(const QString& blogId);
- const QString waitMessage();
private:
BlogJobPrivate* d_ptr;
@@ -74,7 +75,7 @@
// Q_PRIVATE_SLOT( d_ptr, void slotFetchUserInfo( const \
QList<QVariant> &, const QVariant & ) ) Q_PRIVATE_SLOT( d_ptr, void \
slotExitSuccess() )
Q_PRIVATE_SLOT( d_ptr, void slotExitError( KBlog::Blog::ErrorType type, const \
QString& message) )
-
+ Q_PRIVATE_SLOT( d_ptr, void slotListBlogs( const QList<QMap<QString,QString> >& \
list) )
Q_PRIVATE_SLOT( d_ptr, void slotListRecentPosts( const QList<KBlog::BlogPost>& \
posts) )
Q_PRIVATE_SLOT( d_ptr, void slotListCategories( const QList<QMap<QString, \
QString> >& categories ) ) Q_PRIVATE_SLOT( d_ptr, void slotCreatePost( \
KBlog::BlogPost *post) )
--- trunk/playground/pim/kblogger/src/backend/blogjob_p.h #769278:769279
@@ -33,7 +33,7 @@
public Q_SLOTS:
void slotExitSuccess();
void slotExitError( KBlog::Blog::ErrorType type, const QString& message);
-
+ void slotListBlogs( const QList<QMap<QString,QString> >&);
void slotListRecentPosts( const QList<KBlog::BlogPost>& posts);
void slotListCategories( const QList<QMap<QString, QString> >& categories );
void slotCreatePost( KBlog::BlogPost *post);
@@ -49,7 +49,8 @@
void createKBlog(BlogJob::BlogAPI);
bool setKBlogAuthentication();
- BlogJob::BlogActions mAction;
+ BlogJob::BlogAction mAction;
+ BlogJob::BlogAPI mApi;
QVariant mArg;
KBlog::Blog* mKBlog;
QList<QVariant> mResults;
--- trunk/playground/pim/kblogger/src/backend/blogjobqueue.cpp #769278:769279
@@ -107,7 +107,32 @@
BlogJob* currentJob = mPendingJobs.takeFirst();
Q_ASSERT(currentJob);
- emit waitMessage( currentJob->waitMessage() );
+ QString msg;
+ switch( currentJob->api() ){
+ case BlogJob::LIST_RECENT_POSTS:
+ msg = i18n("Listing recents posts.");
+ break;
+ case BlogJob::LIST_CATEGORIES:
+ msg = i18n("Listing Categories.");
+ break;
+ case BlogJob::CREATE_POST:
+ msg = i18n("Creating post.");
+ break;
+ case BlogJob::FETCH_POST:
+ msg = i18n("Fetching post.");
+ break;
+ case BlogJob::MODIFY_POST:
+ msg = i18n("Modifying post.");
+ break;
+ case BlogJob::REMOVE_POST:
+ msg = i18n("Removing post.");
+ break;
+ case BlogJob::CREATE_MEDIA:
+ msg = i18n("Creating media.");
+ break;
+ };
+
+ emit waitMessage( msg );
emit statusMessage( i18np("1 job left", "%1 jobs left", \
mPendingJobs.count()) );
connect(currentJob, SIGNAL( result( KJob * ) ),
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic