[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdepim-runtime/KDE/4.12] resources/imap: Don't bother IMAP servers with not supported flags - part
From:       Andre Woebbeking <Woebbeking () kde ! org>
Date:       2013-11-30 14:45:31
Message-ID: E1VmlnX-0000TS-IV () scm ! kde ! org
[Download RAW message or body]

Git commit 23662faa4f6684ea6a327b44b242ec9c28390e19 by Andre Woebbeking.
Committed on 30/11/2013 at 14:44.
Pushed by woebbe into branch 'KDE/4.12'.

Don't bother IMAP servers with not supported flags - part II

Added a Akonadi collection as parameter to \
ResourceTask::fromAkonadiToSupportedImapFlags() to make sure that the method has \
always a collection to work with. Therefore the method can also be static.

E.g. "forward" at least doesn't result in an error anymore.


CCBUG:309946
REVIEW:114108

M  +1    -1    resources/imap/additemtask.cpp
M  +2    -2    resources/imap/changeitemsflagstask.cpp
M  +2    -2    resources/imap/changeitemtask.cpp
M  +3    -2    resources/imap/resourcetask.cpp
M  +1    -1    resources/imap/resourcetask.h

http://commits.kde.org/kdepim-runtime/23662faa4f6684ea6a327b44b242ec9c28390e19

diff --git a/resources/imap/additemtask.cpp b/resources/imap/additemtask.cpp
index af427ff..1440cb9 100644
--- a/resources/imap/additemtask.cpp
+++ b/resources/imap/additemtask.cpp
@@ -64,7 +64,7 @@ void AddItemTask::doStart( KIMAP::Session *session )
   KIMAP::AppendJob *job = new KIMAP::AppendJob( session );
   job->setMailBox( mailBox );
   job->setContent( msg->encodedContent( true ) );
-  job->setFlags( fromAkonadiToSupportedImapFlags( item().flags().toList() ) );
+  job->setFlags( fromAkonadiToSupportedImapFlags( item().flags().toList(), \
collection() ) );  connect( job, SIGNAL(result(KJob*)), \
SLOT(onAppendMessageDone(KJob*)) );  job->start();
 }
diff --git a/resources/imap/changeitemsflagstask.cpp \
b/resources/imap/changeitemsflagstask.cpp index d7eb183..9be27ae 100644
--- a/resources/imap/changeitemsflagstask.cpp
+++ b/resources/imap/changeitemsflagstask.cpp
@@ -91,7 +91,7 @@ KIMAP::StoreJob* ChangeItemsFlagsTask::prepareJob( KIMAP::Session \
*session )  void ChangeItemsFlagsTask::triggerAppendFlagsJob(KIMAP::Session* session)
 {
   KIMAP::StoreJob *store = prepareJob( session );
-  store->setFlags( fromAkonadiToSupportedImapFlags( addedFlags().toList() ) );
+  store->setFlags( fromAkonadiToSupportedImapFlags( addedFlags().toList(), \
items().first().parentCollection() ) );  store->setMode( KIMAP::StoreJob::AppendFlags \
);  connect( store, SIGNAL(result(KJob*)), SLOT(onAppendFlagsDone(KJob*)) );
   store->start();
@@ -100,7 +100,7 @@ void ChangeItemsFlagsTask::triggerAppendFlagsJob(KIMAP::Session* \
session)  void ChangeItemsFlagsTask::triggerRemoveFlagsJob(KIMAP::Session* session)
 {
   KIMAP::StoreJob *store = prepareJob( session );
-  store->setFlags( fromAkonadiToSupportedImapFlags( removedFlags().toList() ) );
+  store->setFlags( fromAkonadiToSupportedImapFlags( removedFlags().toList(), \
items().first().parentCollection() ) );  store->setMode( KIMAP::StoreJob::RemoveFlags \
);  connect( store, SIGNAL(result(KJob*)), SLOT(onRemoveFlagsDone(KJob*)) );
   store->start();
diff --git a/resources/imap/changeitemtask.cpp b/resources/imap/changeitemtask.cpp
index 242e202..6334938 100644
--- a/resources/imap/changeitemtask.cpp
+++ b/resources/imap/changeitemtask.cpp
@@ -66,7 +66,7 @@ void ChangeItemTask::doStart( KIMAP::Session *session )
 
     job->setMailBox( mailBox );
     job->setContent( msg->encodedContent( true ) );
-    job->setFlags( fromAkonadiToSupportedImapFlags( item().flags().toList() ) );
+    job->setFlags( fromAkonadiToSupportedImapFlags( item().flags().toList(), \
item().parentCollection() ) );  
     connect( job, SIGNAL(result(KJob*)),
              this, SLOT(onAppendMessageDone(KJob*)) );
@@ -104,7 +104,7 @@ void ChangeItemTask::onPreStoreSelectDone( KJob *job )
 
 void ChangeItemTask::triggerStoreJob()
 {
-  QList<QByteArray> flags = fromAkonadiToSupportedImapFlags( item().flags().toList() \
); +  QList<QByteArray> flags = fromAkonadiToSupportedImapFlags( \
item().flags().toList(), item().parentCollection() );  
   KIMAP::StoreJob *store = new KIMAP::StoreJob( m_session );
 
diff --git a/resources/imap/resourcetask.cpp b/resources/imap/resourcetask.cpp
index bba0c47..3154e28 100644
--- a/resources/imap/resourcetask.cpp
+++ b/resources/imap/resourcetask.cpp
@@ -354,11 +354,12 @@ void ResourceTask::showInformationDialog( const QString \
&message, const QString  m_resource->showInformationDialog( message, title, \
dontShowAgainName );  }
 
-QList<QByteArray> ResourceTask::fromAkonadiToSupportedImapFlags( const \
QList<QByteArray> &flags ) const +QList<QByteArray> \
ResourceTask::fromAkonadiToSupportedImapFlags( const QList<QByteArray> &flags, +      \
const Akonadi::Collection &collection )  {
   QList<QByteArray> imapFlags = fromAkonadiFlags( flags );
 
-  const Akonadi::CollectionFlagsAttribute *flagAttr = \
collection().attribute<Akonadi::CollectionFlagsAttribute>(); +  const \
Akonadi::CollectionFlagsAttribute *flagAttr = \
collection.attribute<Akonadi::CollectionFlagsAttribute>();  // the server does not \
support arbitrary flags, so filter out those it can't handle  if ( flagAttr && \
                !flagAttr->flags().isEmpty() && !flagAttr->flags().contains( "\\*" ) \
                ) {
     for ( QList< QByteArray >::iterator it = imapFlags.begin(); it != \
                imapFlags.end(); ) {
diff --git a/resources/imap/resourcetask.h b/resources/imap/resourcetask.h
index 7a9b107..71cd0a2 100644
--- a/resources/imap/resourcetask.h
+++ b/resources/imap/resourcetask.h
@@ -126,7 +126,7 @@ protected:
   const QChar separatorCharacter() const;
   void setSeparatorCharacter( const QChar &separator );
 
-  QList<QByteArray> fromAkonadiToSupportedImapFlags( const QList<QByteArray> &flags \
) const; +  static QList<QByteArray> fromAkonadiToSupportedImapFlags( const \
QList<QByteArray> &flags, const Akonadi::Collection &collection );  
   static QList<QByteArray> toAkonadiFlags( const QList<QByteArray> &flags );
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic