[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