Hello community,

here is the log from the commit of package kdepim4-runtime for openSUSE:Factory 
checked in at 2014-10-16 18:11:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdepim4-runtime (Old)
 and      /work/SRC/openSUSE:Factory/.kdepim4-runtime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdepim4-runtime"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdepim4-runtime/kdepim4-runtime.changes  
2014-09-18 07:57:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdepim4-runtime.new/kdepim4-runtime.changes     
2014-10-16 18:11:43.000000000 +0200
@@ -1,0 +2,16 @@
+Sun Oct 12 12:00:37 UTC 2014 - [email protected]
+
+- Update to 4.14.2
+   * KDE 4.14.2 SC Bugfix Release
+   * See http://www.kde.org/announcements/announce-4.14.2.php
+- Drop upstream patches split_large_store_commands.patch and
+  use_changeitemsflagstask.patch due to upstream inclusion
+
+-------------------------------------------------------------------
+Fri Oct  3 09:24:07 UTC 2014 - [email protected]
+
+- Add upstream patches split_large_store_commands.patch and
+  use_changeitemsflagstask.patch to resolve issues when deleting 
+  several thousands of emails (bko#339565)
+
+-------------------------------------------------------------------

Old:
----
  kdepim-runtime-4.14.1.tar.xz

New:
----
  kdepim-runtime-4.14.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdepim4-runtime.spec ++++++
--- /var/tmp/diff_new_pack.bDJDTZ/_old  2014-10-16 18:11:44.000000000 +0200
+++ /var/tmp/diff_new_pack.bDJDTZ/_new  2014-10-16 18:11:44.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           kdepim4-runtime
-Version:        4.14.1
+Version:        4.14.2
 Release:        0
 Summary:        Base package of kdepim
 License:        LGPL-2.1+

++++++ kdepim-runtime-4.14.1.tar.xz -> kdepim-runtime-4.14.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepim-runtime-4.14.1/CMakeLists.txt 
new/kdepim-runtime-4.14.2/CMakeLists.txt
--- old/kdepim-runtime-4.14.1/CMakeLists.txt    2014-09-10 10:22:05.000000000 
+0200
+++ new/kdepim-runtime-4.14.2/CMakeLists.txt    2014-10-09 18:42:34.000000000 
+0200
@@ -36,7 +36,7 @@
     set(KDEPIM_RUNTIME_DEV_VERSION "")
 endif()
 
-set(KDEPIM_RUNTIME_VERSION "4.14.1${KDEPIM_RUNTIME_DEV_VERSION}")
+set(KDEPIM_RUNTIME_VERSION "4.14.2${KDEPIM_RUNTIME_DEV_VERSION}")
 
 configure_file(kdepim-runtime-version.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/kdepim-runtime-version.h @ONLY)
 
@@ -53,7 +53,7 @@
 include(KDE4Defaults)
 
 # KdepimLibs
-find_package(KdepimLibs 4.14.1)
+find_package(KdepimLibs 4.14.2)
 set_package_properties(KdepimLibs PROPERTIES DESCRIPTION "The KDEPIM 
libraries" URL "http://www.kde.org"; TYPE REQUIRED)
 
 #Boost
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepim-runtime-4.14.1/accountwizard/providerpage.cpp 
new/kdepim-runtime-4.14.2/accountwizard/providerpage.cpp
--- old/kdepim-runtime-4.14.1/accountwizard/providerpage.cpp    2014-09-10 
10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/accountwizard/providerpage.cpp    2014-10-09 
18:42:34.000000000 +0200
@@ -40,6 +40,7 @@
   ui.searchLine->setProxy( proxy );
 
   m_fetchItem = new QStandardItem( i18n( "Fetching provider list..." ) );
+  m_fetchItem->setFlags(Qt::NoItemFlags);
   m_model->appendRow( m_fetchItem );
 
   // we can start the search, whenever the user reaches this page, chances
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/agents/newmailnotifier/CMakeLists.txt 
new/kdepim-runtime-4.14.2/agents/newmailnotifier/CMakeLists.txt
--- old/kdepim-runtime-4.14.1/agents/newmailnotifier/CMakeLists.txt     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/agents/newmailnotifier/CMakeLists.txt     
2014-10-09 18:42:34.000000000 +0200
@@ -15,6 +15,7 @@
   newmailnotifierattribute.cpp
   specialnotifierjob.cpp
   newmailnotifierselectcollectionwidget.cpp
+  newmailnotifiershowmessagejob.cpp
   util.cpp
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/agents/newmailnotifier/newmailnotifiershowmessagejob.cpp
 
new/kdepim-runtime-4.14.2/agents/newmailnotifier/newmailnotifiershowmessagejob.cpp
--- 
old/kdepim-runtime-4.14.1/agents/newmailnotifier/newmailnotifiershowmessagejob.cpp
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/kdepim-runtime-4.14.2/agents/newmailnotifier/newmailnotifiershowmessagejob.cpp
  2014-10-09 18:42:34.000000000 +0200
@@ -0,0 +1,57 @@
+/*
+  Copyright (c) 2014 Montel Laurent <[email protected]>
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms of the GNU General Public License, version 2, as
+  published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, write to the Free Software Foundation, Inc.,
+  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include "newmailnotifiershowmessagejob.h"
+
+#include <QDBusConnection>
+#include <QDBusInterface>
+#include <QDBusReply>
+#include <QDBusConnectionInterface>
+#include <ktoolinvocation.h>
+
+NewMailNotifierShowMessageJob::NewMailNotifierShowMessageJob(Akonadi::Item::Id 
id, QObject *parent)
+    : KJob(parent),
+      mId(id)
+{
+}
+
+NewMailNotifierShowMessageJob::~NewMailNotifierShowMessageJob()
+{
+}
+
+void NewMailNotifierShowMessageJob::start()
+{
+    if (mId < 0) {
+        Q_EMIT emitResult();
+        return;
+    }
+    const QString kmailInterface = QLatin1String("org.kde.kmail");
+    QDBusReply<bool> reply = 
QDBusConnection::sessionBus().interface()->isServiceRegistered(kmailInterface);
+    if (!reply.isValid() || !reply.value()) {
+        // Program is not already running, so start it
+        QString errmsg;
+        if 
(KToolInvocation::startServiceByDesktopName(QLatin1String("kmail2"), QString(), 
&errmsg)) {
+            qDebug()<<" Can not start kmail"<<errmsg;
+            setError( UserDefinedError );
+            Q_EMIT emitResult();
+            return;
+        }
+    }
+    QDBusInterface kmail(kmailInterface, QLatin1String("/KMail"), 
QLatin1String("org.kde.kmail.kmail"));
+    kmail.call(QLatin1String("showMail"), mId);
+    Q_EMIT emitResult();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/agents/newmailnotifier/newmailnotifiershowmessagejob.h
 
new/kdepim-runtime-4.14.2/agents/newmailnotifier/newmailnotifiershowmessagejob.h
--- 
old/kdepim-runtime-4.14.1/agents/newmailnotifier/newmailnotifiershowmessagejob.h
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/kdepim-runtime-4.14.2/agents/newmailnotifier/newmailnotifiershowmessagejob.h
    2014-10-09 18:42:34.000000000 +0200
@@ -0,0 +1,39 @@
+/*
+  Copyright (c) 2014 Montel Laurent <[email protected]>
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms of the GNU General Public License, version 2, as
+  published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, write to the Free Software Foundation, Inc.,
+  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef NEWMAILNOTIFIERSHOWMESSAGEJOB_H
+#define NEWMAILNOTIFIERSHOWMESSAGEJOB_H
+
+#include <KJob>
+#include <Akonadi/Item>
+
+class NewMailNotifierShowMessageJob : public KJob
+{
+    Q_OBJECT
+public:
+    explicit NewMailNotifierShowMessageJob(Akonadi::Item::Id id, QObject 
*parent=0);
+    ~NewMailNotifierShowMessageJob();
+
+    void start();
+
+private:
+    Akonadi::Item::Id mId;
+
+};
+
+
+#endif // NEWMAILNOTIFIERSHOWMESSAGEJOB_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/agents/newmailnotifier/specialnotifierjob.cpp 
new/kdepim-runtime-4.14.2/agents/newmailnotifier/specialnotifierjob.cpp
--- old/kdepim-runtime-4.14.1/agents/newmailnotifier/specialnotifierjob.cpp     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/agents/newmailnotifier/specialnotifierjob.cpp     
2014-10-09 18:42:34.000000000 +0200
@@ -15,6 +15,7 @@
   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
+#include "newmailnotifiershowmessagejob.h"
 #include "specialnotifierjob.h"
 #include "util.h"
 #include "newmailnotifieragentsettings.h"
@@ -28,16 +29,14 @@
 #include <KPIMUtils/Email>
 
 #include <KMime/Message>
-#include <KToolInvocation>
 
 #include <KLocalizedString>
 
 #include <QTextDocument>
-#include <QDBusInterface>
 #include <QDBusConnection>
+#include <QDBusInterface>
 #include <QDBusConnectionInterface>
 
-
 SpecialNotifierJob::SpecialNotifierJob(const QStringList &listEmails, const 
QString &path, Akonadi::Item::Id id, QObject *parent)
     : QObject(parent),
       mListEmails(listEmails),
@@ -175,16 +174,6 @@
 
 void SpecialNotifierJob::slotOpenMail()
 {
-    const QString kmailInterface = QLatin1String("org.kde.kmail");
-    QDBusReply<bool> reply = 
QDBusConnection::sessionBus().interface()->isServiceRegistered(kmailInterface);
-    if (!reply.isValid() || !reply.value()) {
-        // Program is not already running, so start it
-        QString errmsg;
-        if 
(KToolInvocation::startServiceByDesktopName(QLatin1String("kmail2"), QString(), 
&errmsg)) {
-            qDebug()<<" Can not start kmail"<<errmsg;
-            return;
-        }
-    }
-    QDBusInterface kmail(kmailInterface, QLatin1String("/KMail"), 
QLatin1String("org.kde.kmail.kmail"));
-    kmail.call(QLatin1String("showMail"), mItemId);
+    NewMailNotifierShowMessageJob *job = new 
NewMailNotifierShowMessageJob(mItemId);
+    job->start();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/akonotes/akonotesresource.cpp 
new/kdepim-runtime-4.14.2/resources/akonotes/akonotesresource.cpp
--- old/kdepim-runtime-4.14.1/resources/akonotes/akonotesresource.cpp   
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/akonotes/akonotesresource.cpp   
2014-10-09 18:42:34.000000000 +0200
@@ -43,3 +43,8 @@
   synchronize(); // heavy to do it in the MaildirResource method, which 
already has sync on demand working properly
 }
 
+QString AkonotesResource::defaultResourceType()
+{
+    return QLatin1String("notes");
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/akonotes/akonotesresource.h 
new/kdepim-runtime-4.14.2/resources/akonotes/akonotesresource.h
--- old/kdepim-runtime-4.14.1/resources/akonotes/akonotesresource.h     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/akonotes/akonotesresource.h     
2014-10-09 18:42:34.000000000 +0200
@@ -30,7 +30,8 @@
     explicit AkonotesResource( const QString &id );
     ~AkonotesResource();
 
-  public Q_SLOTS:
+    virtual QString defaultResourceType();
+public Q_SLOTS:
     virtual void configure( WId windowId );
 
   protected:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/dav/common/davitemcreatejob.cpp 
new/kdepim-runtime-4.14.2/resources/dav/common/davitemcreatejob.cpp
--- old/kdepim-runtime-4.14.1/resources/dav/common/davitemcreatejob.cpp 
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/dav/common/davitemcreatejob.cpp 
2014-10-09 18:42:34.000000000 +0200
@@ -28,7 +28,7 @@
 #include <QtCore/QDebug>
 
 DavItemCreateJob::DavItemCreateJob( const DavUtils::DavUrl &url, const DavItem 
&item, QObject *parent )
-  : DavJobBase( parent ), mUrl( url ), mItem( item )
+  : DavJobBase( parent ), mUrl( url ), mItem( item ), mRedirectCount( 0 )
 {
 }
 
@@ -44,6 +44,7 @@
   job->addMetaData( QLatin1String("customHTTPHeader"), headers );
   job->addMetaData( QLatin1String("cookies"), QLatin1String("none") );
   job->addMetaData( QLatin1String("no-auth-prompt"), QLatin1String("true") );
+  job->setRedirectionHandlingEnabled( false );
 
   connect( job, SIGNAL(result(KJob*)), this, SLOT(davJobFinished(KJob*)) );
 }
@@ -56,12 +57,12 @@
 void DavItemCreateJob::davJobFinished( KJob *job )
 {
   KIO::StoredTransferJob *storedJob = qobject_cast<KIO::StoredTransferJob*>( 
job );
+  const int responseCode = storedJob->queryMetaData( 
QLatin1String("responsecode") ).isEmpty() ?
+                            0 :
+                            storedJob->queryMetaData( 
QLatin1String("responsecode") ).toInt();
 
-  if ( storedJob->error() ) {
-    const int responseCode = storedJob->queryMetaData( 
QLatin1String("responsecode") ).isEmpty() ?
-                              0 :
-                              storedJob->queryMetaData( 
QLatin1String("responsecode") ).toInt();
 
+  if ( storedJob->error() ) {
     QString err;
     if ( storedJob->error() != KIO::ERR_SLAVE_DEFINED )
       err = KIO::buildErrorString( storedJob->error(), storedJob->errorText() 
);
@@ -90,10 +91,29 @@
     url = storedJob->url();
   else if ( location.startsWith( QLatin1Char('/') ) ) {
     url = storedJob->url();
-    url.setPath( location );
+    url.setEncodedPath( location.toLatin1() );
   } else
     url = location;
 
+  if ( responseCode == 301 || responseCode == 302 || responseCode == 307 || 
responseCode == 308 ) {
+    if ( mRedirectCount > 4 ) {
+      setLatestResponseCode( responseCode );
+      setError( UserDefinedError + responseCode );
+      emitResult();
+    }
+    else {
+      KUrl itemUrl( url );
+      itemUrl.setUser( mUrl.url().user() );
+      itemUrl.setPassword( mUrl.url().password() );
+      mUrl.setUrl( itemUrl );
+
+      ++mRedirectCount;
+      start();
+    }
+
+    return;
+  }
+
   url.setUser( QString() );
   mItem.setUrl( url.prettyUrl() );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/dav/common/davitemcreatejob.h 
new/kdepim-runtime-4.14.2/resources/dav/common/davitemcreatejob.h
--- old/kdepim-runtime-4.14.1/resources/dav/common/davitemcreatejob.h   
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/dav/common/davitemcreatejob.h   
2014-10-09 18:42:34.000000000 +0200
@@ -58,6 +58,7 @@
   private:
     DavUtils::DavUrl mUrl;
     DavItem mItem;
+    int mRedirectCount;
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/dav/common/davitemmodifyjob.cpp 
new/kdepim-runtime-4.14.2/resources/dav/common/davitemmodifyjob.cpp
--- old/kdepim-runtime-4.14.1/resources/dav/common/davitemmodifyjob.cpp 
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/dav/common/davitemmodifyjob.cpp 
2014-10-09 18:42:34.000000000 +0200
@@ -87,7 +87,7 @@
     url = storedJob->url();
   else if ( location.startsWith( QLatin1Char('/') ) ) {
     url = storedJob->url();
-    url.setPath( location );
+    url.setEncodedPath( location.toLatin1() );
   } else
     url = location;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/dav/protocols/caldavprotocol.cpp 
new/kdepim-runtime-4.14.2/resources/dav/protocols/caldavprotocol.cpp
--- old/kdepim-runtime-4.14.1/resources/dav/protocols/caldavprotocol.cpp        
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/dav/protocols/caldavprotocol.cpp        
2014-10-09 18:42:34.000000000 +0200
@@ -31,7 +31,7 @@
 CaldavProtocol::CaldavProtocol()
 {
   // Only fetch items for the last 3 months
-  QString startTime = QDateTime::currentDateTimeUtc().addMonths( -3 
).toString( "yyyyMMddTHHMMss" );
+  QString startTime = QDateTime::currentDateTimeUtc().addMonths( -3 
).toString( "yyyyMMddTHHMMssZ" );
 
   /*
    * Create a document like the following:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/dav/resource/davgroupwareresource.cpp 
new/kdepim-runtime-4.14.2/resources/dav/resource/davgroupwareresource.cpp
--- old/kdepim-runtime-4.14.1/resources/dav/resource/davgroupwareresource.cpp   
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/dav/resource/davgroupwareresource.cpp   
2014-10-09 18:42:34.000000000 +0200
@@ -834,11 +834,13 @@
   item.setRemoteRevision( davItem.etag() );
   mEtagCache.setEtag( item.remoteId(), davItem.etag() );
 
-  for ( int i = 0; i < extraItems.size(); ++i )
-    mEtagCache.setEtag( extraItems.at( i ).remoteId(), davItem.etag() );
+  if ( !extraItems.isEmpty() ) {
+    for ( int i = 0; i < extraItems.size(); ++i )
+      mEtagCache.setEtag( extraItems.at( i ).remoteId(), davItem.etag() );
 
-  Akonadi::ItemModifyJob *j = new Akonadi::ItemModifyJob( extraItems );
-  j->setIgnorePayload( true );
+    Akonadi::ItemModifyJob *j = new Akonadi::ItemModifyJob( extraItems );
+    j->setIgnorePayload( true );
+  }
 
   if ( updateType == ItemUpdateChange )
     changeCommitted( item );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/gmail/gmailresource.desktop 
new/kdepim-runtime-4.14.2/resources/gmail/gmailresource.desktop
--- old/kdepim-runtime-4.14.1/resources/gmail/gmailresource.desktop     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/gmail/gmailresource.desktop     
2014-10-09 18:42:34.000000000 +0200
@@ -11,6 +11,7 @@
 Name[hu]=Gmail
 Name[it]=Gmail
 Name[ko]=GMail
+Name[nb]=Gmail
 Name[nds]=GMail
 Name[nl]=Gmail
 Name[pl]=Gmail
@@ -38,6 +39,7 @@
 Comment[hu]=Csatlakozik a Gmail fiókjához
 Comment[it]=Connette al tuo account Gmail
 Comment[ko]=내 GMail 계정에 연결
+Comment[nb]=Kobler til Gmail-kontoen din
 Comment[nds]=Koppelt sik Dien GMail-Konto to
 Comment[nl]=Verbindt met uw Gmail account
 Comment[pl]=Łączy z kontem Gmail
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepim-runtime-4.14.1/resources/imap/CMakeLists.txt 
new/kdepim-runtime-4.14.2/resources/imap/CMakeLists.txt
--- old/kdepim-runtime-4.14.1/resources/imap/CMakeLists.txt     2014-09-10 
10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/CMakeLists.txt     2014-10-09 
18:42:34.000000000 +0200
@@ -32,7 +32,6 @@
   noinferiorsattribute.cpp
   passwordrequesterinterface.cpp
   removecollectionrecursivetask.cpp
-  removeitemstask.cpp
   resourcestateinterface.cpp
   resourcetask.cpp
   retrievecollectionmetadatatask.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/changeitemsflagstask.cpp 
new/kdepim-runtime-4.14.2/resources/imap/changeitemsflagstask.cpp
--- old/kdepim-runtime-4.14.1/resources/imap/changeitemsflagstask.cpp   
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/changeitemsflagstask.cpp   
2014-10-09 18:42:34.000000000 +0200
@@ -25,7 +25,8 @@
 #include <kimap/storejob.h>
 
 ChangeItemsFlagsTask::ChangeItemsFlagsTask( ResourceStateInterface::Ptr 
resource, QObject* parent ):
-    ResourceTask( ResourceTask::DeferIfNoSession, resource, parent )
+    ResourceTask( ResourceTask::DeferIfNoSession, resource, parent ),
+    m_processedItems(0)
 {
 
 }
@@ -82,8 +83,14 @@
 KIMAP::StoreJob* ChangeItemsFlagsTask::prepareJob( KIMAP::Session *session )
 {
   KIMAP::ImapSet set;
-  foreach( const Akonadi::Item &item, items() ) {
-    set.add( item.remoteId().toLong() );
+  const Akonadi::Item::List &allItems = items();
+  // Split the request to multiple smaller requests of 2000 UIDs each - 
various IMAP
+  // servers have various limits on maximum size of a request
+  // 2000 is a random number that sounds like a good compromise between 
performance
+  // and functionality (i.e. 2000 UIDs should be supported by any server out 
there)
+  for (int i = 0, count = qMin(2000, allItems.count() - m_processedItems); i < 
count; ++i) {
+      set.add( allItems[m_processedItems].remoteId().toLong() );
+      ++m_processedItems;
   }
 
   KIMAP::StoreJob *store = new KIMAP::StoreJob( session );
@@ -117,12 +124,15 @@
     kWarning() << "Flag append failed: " << job->errorString();
     cancelTask( job->errorString() );
   } else {
-    kDebug(5327) << removedFlags();
-    if ( removedFlags().isEmpty() ) {
-      changeProcessed();
+    KIMAP::Session *session = qobject_cast<KIMAP::Job*>(job)->session();
+    if ( m_processedItems < items().count() ) {
+        triggerAppendFlagsJob( session );
+    } else if ( removedFlags().isEmpty() ) {
+        changeProcessed();
     } else {
-      KIMAP::StoreJob *storeJob = qobject_cast<KIMAP::StoreJob*>( job );
-      triggerRemoveFlagsJob( storeJob->session() );
+        kDebug(5327) << removedFlags();
+        m_processedItems = 0;
+        triggerRemoveFlagsJob( session );
     }
   }
 }
@@ -133,7 +143,11 @@
     kWarning() << "Flag remove failed: " << job->errorString();
     cancelTask( job->errorString() );
   } else {
-    changeProcessed();
+    if ( m_processedItems < items().count() ) {
+        triggerRemoveFlagsJob( qobject_cast<KIMAP::Job*>(job)->session() );
+    } else {
+        changeProcessed();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/changeitemsflagstask.h 
new/kdepim-runtime-4.14.2/resources/imap/changeitemsflagstask.h
--- old/kdepim-runtime-4.14.1/resources/imap/changeitemsflagstask.h     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/changeitemsflagstask.h     
2014-10-09 18:42:34.000000000 +0200
@@ -48,6 +48,9 @@
   virtual void triggerAppendFlagsJob( KIMAP::Session *session );
   virtual void triggerRemoveFlagsJob( KIMAP::Session *session );
 
+protected:
+  int m_processedItems;
+
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/imapresourcebase.cpp 
new/kdepim-runtime-4.14.2/resources/imap/imapresourcebase.cpp
--- old/kdepim-runtime-4.14.1/resources/imap/imapresourcebase.cpp       
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/imapresourcebase.cpp       
2014-10-09 18:42:34.000000000 +0200
@@ -70,7 +70,6 @@
 #include "movecollectiontask.h"
 #include "moveitemstask.h"
 #include "removecollectionrecursivetask.h"
-#include "removeitemstask.h"
 #include "retrievecollectionmetadatatask.h"
 #include "retrievecollectionstask.h"
 #include "retrieveitemtask.h"
@@ -80,6 +79,7 @@
 #include "settingspasswordrequester.h"
 #include "sessionpool.h"
 #include "sessionuiproxy.h"
+#include "imapflags.h"
 
 #include "resourceadaptor.h"
 
@@ -392,7 +392,7 @@
 
   emit status( AgentBase::Running, i18nc( "@info:status", "Removing items" ) );
 
-  startTask(new RemoveItemsTask( createResourceState(TaskArguments(items)), 
this ));
+  startTask(new ChangeItemsFlagsTask( createResourceState(TaskArguments(items, 
QSet<QByteArray>() << ImapFlags::Deleted, QSet<QByteArray>())), this ));
 }
 
 void ImapResourceBase::itemsMoved( const Akonadi::Item::List &items, const 
Akonadi::Collection &source,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/removeitemstask.cpp 
new/kdepim-runtime-4.14.2/resources/imap/removeitemstask.cpp
--- old/kdepim-runtime-4.14.1/resources/imap/removeitemstask.cpp        
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/removeitemstask.cpp        
1970-01-01 01:00:00.000000000 +0100
@@ -1,106 +0,0 @@
-/*
-    Copyright (c) 2010 Klarälvdalens Datakonsult AB,
-                       a KDAB Group company <[email protected]>
-    Author: Kevin Ottens <[email protected]>
-
-    This library is free software; you can redistribute it and/or modify it
-    under the terms of the GNU Library General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    This library is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
-    License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    along with this library; see the file COPYING.LIB.  If not, write to the
-    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.
-*/
-
-#include "removeitemstask.h"
-
-#include <KDE/KDebug>
-#include <KDE/KLocale>
-
-#include <kimap/selectjob.h>
-#include <kimap/session.h>
-#include <kimap/storejob.h>
-
-#include "imapflags.h"
-
-RemoveItemsTask::RemoveItemsTask( ResourceStateInterface::Ptr resource, 
QObject *parent )
-  : ResourceTask( DeferIfNoSession, resource, parent )
-{
-
-}
-
-RemoveItemsTask::~RemoveItemsTask()
-{
-}
-
-void RemoveItemsTask::doStart( KIMAP::Session *session )
-{
-  // The imap specs do not allow for a single message to be deleted. We can 
only
-  // set the \Deleted flag. The message will actually be deleted when EXPUNGE 
will
-  // be issued on the next retrieveItems().
-
-  const QString mailBox = mailBoxForCollection( 
items().first().parentCollection() );
-
-  kDebug(5327) << "Deleting " << items().size() << " messages from " << 
mailBox;
-
-  if ( session->selectedMailBox() != mailBox ) {
-    KIMAP::SelectJob *select = new KIMAP::SelectJob( session );
-    select->setMailBox( mailBox );
-
-    connect( select, SIGNAL(result(KJob*)),
-             this, SLOT(onSelectDone(KJob*)) );
-
-    select->start();
-
-  } else {
-    triggerStoreJob( session );
-  }
-}
-
-void RemoveItemsTask::onSelectDone( KJob *job )
-{
-  if ( job->error() ) {
-    kWarning() << "Failed to select mailbox: " << job->errorString();
-    cancelTask( job->errorString() );
-  } else {
-    KIMAP::SelectJob *select = static_cast<KIMAP::SelectJob*>( job );
-    triggerStoreJob( select->session() );
-  }
-}
-
-void RemoveItemsTask::triggerStoreJob( KIMAP::Session *session )
-{
-  KIMAP::ImapSet set;
-  foreach( const Akonadi::Item &item, items() ) {
-    set.add( item.remoteId().toLong() );
-  }
-
-  KIMAP::StoreJob *store = new KIMAP::StoreJob( session );
-  store->setUidBased( true );
-  store->setSequenceSet( set );
-  store->setFlags( QList<QByteArray>() << ImapFlags::Deleted );
-  store->setMode( KIMAP::StoreJob::AppendFlags );
-  connect( store, SIGNAL(result(KJob*)), SLOT(onStoreFlagsDone(KJob*)) );
-  store->start();
-}
-
-void RemoveItemsTask::onStoreFlagsDone( KJob *job )
-{
-  //TODO use UID EXPUNGE if available
-  if ( job->error() ) {
-    kWarning() << "Failed to append flags: " << job->errorString();
-    cancelTask( job->errorString() );
-  } else {
-    changeProcessed();
-  }
-}
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/removeitemstask.h 
new/kdepim-runtime-4.14.2/resources/imap/removeitemstask.h
--- old/kdepim-runtime-4.14.1/resources/imap/removeitemstask.h  2014-09-10 
10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/removeitemstask.h  1970-01-01 
01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-/*
-    Copyright (c) 2010 Klarälvdalens Datakonsult AB,
-                       a KDAB Group company <[email protected]>
-    Author: Kevin Ottens <[email protected]>
-
-    This library is free software; you can redistribute it and/or modify it
-    under the terms of the GNU Library General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    This library is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
-    License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    along with this library; see the file COPYING.LIB.  If not, write to the
-    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.
-*/
-
-#ifndef REMOVEITEMSTASK_H
-#define REMOVEITEMSTASK_H
-
-#include "resourcetask.h"
-
-class RemoveItemsTask : public ResourceTask
-{
-  Q_OBJECT
-
-public:
-  explicit RemoveItemsTask( ResourceStateInterface::Ptr resource, QObject 
*parent = 0 );
-  virtual ~RemoveItemsTask();
-
-private slots:
-  void onSelectDone( KJob *job );
-  void onStoreFlagsDone( KJob *job );
-
-protected:
-  virtual void doStart( KIMAP::Session *session );
-
-private:
-  void triggerStoreJob( KIMAP::Session *session );
-};
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/tests/CMakeLists.txt 
new/kdepim-runtime-4.14.2/resources/imap/tests/CMakeLists.txt
--- old/kdepim-runtime-4.14.1/resources/imap/tests/CMakeLists.txt       
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/tests/CMakeLists.txt       
2014-10-09 18:42:34.000000000 +0200
@@ -32,7 +32,6 @@
     testmovecollectiontask
     testmoveitemstask
     testremovecollectionrecursivetask
-    testremoveitemstask
     testretrievecollectionmetadatatask
     testretrievecollectionstask
     testretrieveitemtask
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/imap/tests/testremoveitemstask.cpp 
new/kdepim-runtime-4.14.2/resources/imap/tests/testremoveitemstask.cpp
--- old/kdepim-runtime-4.14.1/resources/imap/tests/testremoveitemstask.cpp      
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/imap/tests/testremoveitemstask.cpp      
1970-01-01 01:00:00.000000000 +0100
@@ -1,105 +0,0 @@
-/*
-   Copyright (c) 2010 Klarälvdalens Datakonsult AB, a KDAB Group company 
<[email protected]>
-   Author: Kevin Ottens <[email protected]>
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public
-   License as published by the Free Software Foundation; either
-   version 2 of the License, or ( at your option ) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 
USA.
-*/
-
-#include "imaptestbase.h"
-
-#include "removeitemstask.h"
-
-class TestRemoveItemsTask : public ImapTestBase
-{
-  Q_OBJECT
-
-private slots:
-  void shouldAppendMessage_data()
-  {
-    QTest::addColumn<Akonadi::Item>( "item" );
-    QTest::addColumn< QList<QByteArray> >( "scenario" );
-    QTest::addColumn<QStringList>( "callNames" );
-
-    Akonadi::Collection collection;
-    Akonadi::Item item;
-    QSet<QByteArray> parts;
-    QString messageContent;
-    QList<QByteArray> scenario;
-    QStringList callNames;
-
-    collection = createCollectionChain( QLatin1String("/INBOX/Foo") );
-    item = Akonadi::Item( 2 );
-    item.setParentCollection( collection );
-    item.setRemoteId( "5" );
-
-    scenario.clear();
-    scenario << defaultPoolConnectionScenario()
-             << "C: A000003 SELECT \"INBOX/Foo\""
-             << "S: A000003 OK select done"
-             << "C: A000004 UID STORE 5 +FLAGS (\\Deleted)"
-             << "S: A000004 OK store done";
-
-    callNames.clear();
-    callNames << "changeProcessed";
-
-    QTest::newRow( "modifying mail content" ) << item << scenario << callNames;
-  }
-
-  void shouldAppendMessage()
-  {
-    QFETCH( Akonadi::Item, item );
-    QFETCH( QList<QByteArray>, scenario );
-    QFETCH( QStringList, callNames );
-
-    FakeServer server;
-    server.setScenario( scenario );
-    server.startAndWait();
-
-    SessionPool pool( 1 );
-
-    pool.setPasswordRequester( createDefaultRequester() );
-    QVERIFY( pool.connect( createDefaultAccount() ) );
-    QVERIFY( waitForSignal( &pool, SIGNAL(connectDone(int,QString)) ) );
-
-    DummyResourceState::Ptr state = DummyResourceState::Ptr(new 
DummyResourceState);
-    state->setItem( item );
-    RemoveItemsTask *task = new RemoveItemsTask( state );
-    task->start( &pool );
-
-    QTRY_COMPARE( state->calls().count(), callNames.size() );
-    for ( int i = 0; i < callNames.size(); i++ ) {
-      QString command = QString::fromUtf8(state->calls().at( i ).first);
-      QVariant parameter = state->calls().at( i ).second;
-
-      if ( command == "cancelTask" && callNames[i] != "cancelTask" ) {
-        kDebug() << "Got a cancel:" << parameter.toString();
-      }
-
-      QCOMPARE( command, callNames[i] );
-
-      if ( command == "cancelTask" ) {
-        QVERIFY( !parameter.toString().isEmpty() );
-      }
-    }
-
-    QVERIFY( server.isAllScenarioDone() );
-
-    server.quit();
-  }
-};
-
-QTEST_KDEMAIN_CORE( TestRemoveItemsTask )
-
-#include "testremoveitemstask.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolab/kolabresource.cpp 
new/kdepim-runtime-4.14.2/resources/kolab/kolabresource.cpp
--- old/kdepim-runtime-4.14.1/resources/kolab/kolabresource.cpp 2014-09-10 
10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolab/kolabresource.cpp 2014-10-09 
18:42:34.000000000 +0200
@@ -46,7 +46,7 @@
 
 }
 
-QString KolabResource::defaultName()
+QString KolabResource::defaultName() const
 {
     return i18n("Kolab Resource");
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolab/kolabresource.desktop 
new/kdepim-runtime-4.14.2/resources/kolab/kolabresource.desktop
--- old/kdepim-runtime-4.14.1/resources/kolab/kolabresource.desktop     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolab/kolabresource.desktop     
2014-10-09 18:42:34.000000000 +0200
@@ -57,6 +57,7 @@
 Comment[hu]=Hozzáférést biztosít a Kolab csoportmunka-mappákhoz és e-mailekhez 
egy Kolab IMAP kiszolgálón.
 Comment[it]=Fornisce l'accesso a cartelle e messaggi di posta di groupware 
Kolab su un server Kolab IMAP.
 Comment[ko]=Kolab 그룹웨어 폴더 및 Kolab IMAP 서버에 접근합니다
+Comment[nb]=Gir tilgang til Kolab gruppevaremapper og e-post på en KOLAB 
IMAP-tjener.
 Comment[nds]=Stellt Togriep op Kolab-Arbeitkoppelornern un Nettpost op en 
Kolab-IMAP-Server praat.
 Comment[nl]=Levert toegang tot Kolab groupwaremappen en e-mail op een Kolab 
IMAP-server.
 Comment[pl]=Zapewnia dostęp do katalogów do pracy grupowej Kolab i poczty 
elektronicznej na serwerze Kolab IMAP.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolab/kolabresource.h 
new/kdepim-runtime-4.14.2/resources/kolab/kolabresource.h
--- old/kdepim-runtime-4.14.1/resources/kolab/kolabresource.h   2014-09-10 
10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolab/kolabresource.h   2014-10-09 
18:42:34.000000000 +0200
@@ -50,7 +50,7 @@
     virtual void collectionChanged(const Akonadi::Collection &collection, 
const QSet<QByteArray> &parts);
     //collectionRemoved & collectionMoved do not require adjustments since 
they don't change the annotations
 
-    virtual QString defaultName();
+    virtual QString defaultName() const;
 
 private Q_SLOTS:
     void onItemRetrievalCollectionFetchDone(KJob *job);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolabproxy/itemaddedjob.cpp 
new/kdepim-runtime-4.14.2/resources/kolabproxy/itemaddedjob.cpp
--- old/kdepim-runtime-4.14.1/resources/kolabproxy/itemaddedjob.cpp     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolabproxy/itemaddedjob.cpp     
2014-10-09 18:42:34.000000000 +0200
@@ -20,6 +20,7 @@
 #include "itemaddedjob.h"
 #include <Akonadi/ItemCreateJob>
 #include <Akonadi/KMime/MessageFlags>
+#include <klocale.h>
 
 ItemAddedJob::ItemAddedJob(const Akonadi::Item& kolabItem, const 
Akonadi::Collection& col, KolabHandler& handler, QObject* parent)
     :KJob(parent),
@@ -43,6 +44,7 @@
     if (!mHandler.toKolabFormat(mKolabItem, imapItem)) {
         kWarning() << "Failed to convert item to kolab format: " << 
mKolabItem.id();
         setError(KJob::UserDefinedError);
+        setErrorText(i18n("Failed to convert item %1 to kolab format", 
mKolabItem.id()));
         emitResult();
         return;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolabproxy/itemchangedjob.cpp 
new/kdepim-runtime-4.14.2/resources/kolabproxy/itemchangedjob.cpp
--- old/kdepim-runtime-4.14.1/resources/kolabproxy/itemchangedjob.cpp   
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolabproxy/itemchangedjob.cpp   
2014-10-09 18:42:34.000000000 +0200
@@ -22,6 +22,7 @@
 #include <Akonadi/ItemFetchJob>
 #include <Akonadi/CollectionFetchJob>
 #include <Akonadi/ItemModifyJob>
+#include <klocale.h>
 
 ItemChangedJob::ItemChangedJob(const Akonadi::Item& kolabItem, HandlerManager& 
handler, QObject* parent)
 :   KJob(parent),
@@ -43,6 +44,7 @@
     if (job->error() || fetchjob->collections().isEmpty()) {
         kWarning() << "collection fetch job failed " << job->errorString() << 
fetchjob->collections().isEmpty();
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
         emitResult();
         return;
     }
@@ -51,6 +53,7 @@
     if (!mHandler) {
         kWarning() << "Couldn't find a handler for the collection, but we 
should have one: " << imapCollection.id();
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
         emitResult();
         return;
     }
@@ -62,7 +65,9 @@
 void ItemChangedJob::onImapItemFetchDone(KJob* job)
 {
     if ( job->error() ) {
+        kWarning() << job->error() << job->errorString();
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
         emitResult();
         return;
     }
@@ -81,6 +86,7 @@
         if (!mHandler->toKolabFormat(mKolabItem, imapItem)) {
             kWarning() << "Failed to convert item to kolab format: " << 
mKolabItem.id();
             setError(KJob::UserDefinedError);
+            setErrorText(i18n("Failed to convert item %1 to kolab format", 
mKolabItem.id()));
             emitResult();
             return;
         }
@@ -95,6 +101,7 @@
     if ( job->error() || fetchJob->collections().isEmpty() ) {
         kWarning() << "Collection fetch job failed" << fetchJob->errorString();
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
         emitResult();
         return;
     }
@@ -109,6 +116,7 @@
 {
     if (job->error()) {
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
     }
     emitResult();
 }
@@ -117,6 +125,7 @@
 {
     if (job->error()) {
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
     }
     emitResult();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolabproxy/kolabproxyresource.desktop 
new/kdepim-runtime-4.14.2/resources/kolabproxy/kolabproxyresource.desktop
--- old/kdepim-runtime-4.14.1/resources/kolabproxy/kolabproxyresource.desktop   
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolabproxy/kolabproxyresource.desktop   
2014-10-09 18:42:34.000000000 +0200
@@ -11,6 +11,7 @@
 Name[hu]=Kolab csoportmunka-kiszolgáló (örökölt)
 Name[it]=Server di groupware Kolab (legacy)
 Name[ko]=Kolab 그룹웨어 서버(레거시)
+Name[nb]=Kolab groupware-tjener (gammeldags)
 Name[nds]=Kolab-Arbeitkoppel-Server (öller)
 Name[nl]=Kolab groupwareserver (oude versie)
 Name[pl]=Serwer Kolab Groupware (przestarzały)
@@ -37,6 +38,7 @@
 Comment[hu]=Hozzáférést biztosít a Kolab csoportmunka-mappákhoz egy IMAP 
kiszolgálón (külön IMAP azonosítók beállítása szükséges). Ez az erőforrás 
elavult, használja helyette a Kolab csoportmunka-kiszolgálót.
 Comment[it]=Fornisce l'accesso a cartelle di groupware Kolab su un server IMAP 
(gli account IMAP devono essere impostati separatamente). Questa risorsa è 
obsoleta, usa invece la risorsa «Server di groupware Kolab».
 Comment[ko]=IMAP 서버에 있는 Kolab 그룹웨어 폴더에 접근합니다(IMAP 계정은 별도로 설정해야 함). 이 자원은 
오래되었으므로 Kolab 그룹웨어 서버 자원을 사용하십시오.
+Comment[nb]=Gir tilgang til Kolab gruppevaremapper på en IMAP-tjener 
(IMAP-kontoer må settes opp separat). Denne ressursen er utdatert, bruk i 
stedet ressursen Kolab groupware-tjener.
 Comment[nds]=Stellt Togriep op Kolab-Arbeitkoppel-Ornern op en IMAP-Server 
praat (IMAP-Kontos mööt enkelt inricht warrn). Disse Ressource is överhaalt, 
bruuk ansteed bitte de Kolab-Arbeitkoppelserver-Ressource.
 Comment[nl]=Levert toegang tot Kolab groupwaremappen op een IMAP-server (het 
is nodig om IMAP-accounts separaat in te stellen). Deze hulpbron is verouderd, 
gebruik in plaats daarvan de Kolab groupwareserver.
 Comment[pl]=Zapewnia dostęp do katalogów do pracy grupowej Kolab na serwerze 
IMAP (konta IMAP muszą zostać ustawione osobno). Zasób ten jest przestarzały, 
zamiast niego użyj Serwera Kolab Groupware.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolabproxy/revertitemchangesjob.cpp 
new/kdepim-runtime-4.14.2/resources/kolabproxy/revertitemchangesjob.cpp
--- old/kdepim-runtime-4.14.1/resources/kolabproxy/revertitemchangesjob.cpp     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolabproxy/revertitemchangesjob.cpp     
2014-10-09 18:42:34.000000000 +0200
@@ -42,6 +42,7 @@
 {
     if ( job->error() ) {
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
         emitResult();
         return;
     }
@@ -80,6 +81,7 @@
 {
     if (job->error()) {
         setError(KJob::UserDefinedError);
+        setErrorText(job->errorText());
     }
     emitResult();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/kolabproxy/setupkolab.cpp 
new/kdepim-runtime-4.14.2/resources/kolabproxy/setupkolab.cpp
--- old/kdepim-runtime-4.14.1/resources/kolabproxy/setupkolab.cpp       
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/kolabproxy/setupkolab.cpp       
2014-10-09 18:42:34.000000000 +0200
@@ -48,6 +48,7 @@
 SetupKolab::~SetupKolab()
 {
   delete m_ui;
+  delete m_versionUi;
 }
 
 KConfigGroup SetupKolab::getConfigGroup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/maildir/maildirresource.cpp 
new/kdepim-runtime-4.14.2/resources/maildir/maildirresource.cpp
--- old/kdepim-runtime-4.14.1/resources/maildir/maildirresource.cpp     
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/maildir/maildirresource.cpp     
2014-10-09 18:42:34.000000000 +0200
@@ -175,7 +175,11 @@
       kDebug() << "build a new path";
       const QString dataDir = componentData().dirs()->localxdgdatadir();
       // we use "id" to get an unique path
-      path = dataDir + id;
+      path = dataDir;
+      if (!defaultResourceType().isEmpty()) {
+          path += defaultResourceType()  + QLatin1Char('/');
+      }
+      path += id;
       kDebug() << "set the path" << path;
       mSettings->setPath( path );
       // set the resource into container mode for its top level
@@ -241,6 +245,11 @@
   mSettings->writeConfig();
 }
 
+QString MaildirResource::defaultResourceType()
+{
+    return QString();
+}
+
 void MaildirResource::configure( WId windowId )
 {
   ConfigDialog dlg( mSettings, identifier() );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepim-runtime-4.14.1/resources/maildir/maildirresource.h 
new/kdepim-runtime-4.14.2/resources/maildir/maildirresource.h
--- old/kdepim-runtime-4.14.1/resources/maildir/maildirresource.h       
2014-09-10 10:22:05.000000000 +0200
+++ new/kdepim-runtime-4.14.2/resources/maildir/maildirresource.h       
2014-10-09 18:42:34.000000000 +0200
@@ -43,7 +43,8 @@
     MaildirResource( const QString &id );
     ~MaildirResource();
 
-  public Q_SLOTS:
+    virtual QString defaultResourceType();
+public Q_SLOTS:
     virtual void configure( WId windowId );
 
   protected Q_SLOTS:

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to