Hello community,

here is the log from the commit of package kdepimlibs4 for openSUSE:13.1 
checked in at 2013-10-03 15:54:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/kdepimlibs4 (Old)
 and      /work/SRC/openSUSE:13.1/.kdepimlibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdepimlibs4"

Changes:
--------
--- /work/SRC/openSUSE:13.1/kdepimlibs4/kdepimlibs4.changes     2013-09-23 
10:55:43.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.kdepimlibs4.new/kdepimlibs4.changes        
2013-10-03 15:54:36.000000000 +0200
@@ -1,0 +2,7 @@
+Sat Sep 28 15:04:56 UTC 2013 - tittiatc...@gmail.com
+
+- Update to 4.11.2
+   * KDE 4.11.2 bugfix release
+   * See http://www.kde.org/announcements/announce-4.11.2.php
+
+-------------------------------------------------------------------

Old:
----
  kdepimlibs-4.11.1.tar.xz

New:
----
  kdepimlibs-4.11.2.tar.xz

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

Other differences:
------------------
++++++ kdepimlibs4.spec ++++++
--- /var/tmp/diff_new_pack.U38Uru/_old  2013-10-03 15:54:36.000000000 +0200
+++ /var/tmp/diff_new_pack.U38Uru/_new  2013-10-03 15:54:36.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           kdepimlibs4
-Version:        4.11.1
+Version:        4.11.2
 Release:        0
 Summary:        KDE PIM Libraries
 License:        LGPL-2.1+

++++++ kdepimlibs-4.11.1.tar.xz -> kdepimlibs-4.11.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/CMakeLists.txt 
new/kdepimlibs-4.11.2/CMakeLists.txt
--- old/kdepimlibs-4.11.1/CMakeLists.txt        2013-08-29 20:34:27.000000000 
+0200
+++ new/kdepimlibs-4.11.2/CMakeLists.txt        2013-09-26 21:22:19.000000000 
+0200
@@ -7,7 +7,7 @@
 ############### The kdepimlibs version (used e.g. in KdepimLibsConfig.cmake) 
###############
 set(KDEPIMLIBS_VERSION_MAJOR 4)
 set(KDEPIMLIBS_VERSION_MINOR 11)
-set(KDEPIMLIBS_VERSION_PATCH 1)
+set(KDEPIMLIBS_VERSION_PATCH 2)
 set(KDEPIMLIBS_VERSION 
${KDEPIMLIBS_VERSION_MAJOR}.${KDEPIMLIBS_VERSION_MINOR}.${KDEPIMLIBS_VERSION_PATCH})
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/calendar/calendarbase.cpp 
new/kdepimlibs-4.11.2/akonadi/calendar/calendarbase.cpp
--- old/kdepimlibs-4.11.1/akonadi/calendar/calendarbase.cpp     2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/calendarbase.cpp     2013-09-26 
21:22:19.000000000 +0200
@@ -353,9 +353,9 @@
   return i;
 }
 
-Item CalendarBase::item( const Incidence::Ptr& inc ) const
+Item CalendarBase::item( const Incidence::Ptr &incidence ) const
 {
-  return item( inc->instanceIdentifier() );
+  return incidence ? item( incidence->instanceIdentifier() ) : Item();
 }
 
 Akonadi::Item::List CalendarBase::items() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/calendar/calendarbase.h 
new/kdepimlibs-4.11.2/akonadi/calendar/calendarbase.h
--- old/kdepimlibs-4.11.1/akonadi/calendar/calendarbase.h       2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/calendarbase.h       2013-09-26 
21:22:19.000000000 +0200
@@ -73,7 +73,7 @@
     * Returns the Item containing the incidence with uid @p uid or an invalid 
Item
     * if the incidence isn't found.
     */
-  Akonadi::Item item( const KCalCore::Incidence::Ptr &inc ) const;
+  Akonadi::Item item( const KCalCore::Incidence::Ptr &incidence ) const;
 
   /**
     * Returns the Item with @p id or an invalid Item if not found.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/calendar/etmcalendar.cpp 
new/kdepimlibs-4.11.2/akonadi/calendar/etmcalendar.cpp
--- old/kdepimlibs-4.11.1/akonadi/calendar/etmcalendar.cpp      2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/etmcalendar.cpp      2013-09-26 
21:22:19.000000000 +0200
@@ -398,7 +398,6 @@
         // The Google resource, for example, changes the UID when we create 
incidences.
         handleUidChange( item, newIncidence->instanceIdentifier() );
         existingIncidence = q->incidence( newIncidence->uid(), 
newIncidence->recurrenceId() );
-        Q_ASSERT( existingIncidence );
       }
 
       // The item needs updating too, revision changed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/calendar/freebusymanager.cpp 
new/kdepimlibs-4.11.2/akonadi/calendar/freebusymanager.cpp
--- old/kdepimlibs-4.11.1/akonadi/calendar/freebusymanager.cpp  2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/freebusymanager.cpp  2013-09-26 
21:22:19.000000000 +0200
@@ -77,24 +77,60 @@
   return retUrl;
 }
 
-bool fbExists( const KUrl &url )
+// We need this function because using KIO::NetAccess::exists()
+// is useless for the http and https protocols. And getting back
+// arbitrary data is also useless because a server can respond back
+// with a "no such document" page.  So we need smart checking.
+FbCheckerJob::FbCheckerJob( const QList<KUrl> &urlsToCheck, QObject *parent )
+  : KJob( parent ),
+  mUrlsToCheck(urlsToCheck)
 {
-  // We need this function because using KIO::NetAccess::exists()
-  // is useless for the http and https protocols. And getting back
-  // arbitrary data is also useless because a server can respond back
-  // with a "no such document" page.  So we need smart checking.
-
-  KIO::Job *job = KIO::get( url, KIO::NoReload, KIO::HideProgressInfo );
-  QByteArray data;
-  if ( KIO::NetAccess::synchronousRun( job, 0, &data ) ) {
-    QString dataStr( data );
-    if ( dataStr.contains( "BEGIN:VCALENDAR" ) ) {
-      return true;
-    }
+}
+
+void FbCheckerJob::start()
+{
+  checkNextUrl();
+}
+
+void FbCheckerJob::checkNextUrl()
+{
+  if ( mUrlsToCheck.isEmpty() ) {
+    kDebug() << "No fb file found";
+    setError( KJob::UserDefinedError );
+    emitResult();
+    return;
   }
-  return false;
+  const KUrl url = mUrlsToCheck.takeFirst();
+
+  mData.clear();
+  KIO::TransferJob *job = KIO::get( url, KIO::NoReload, KIO::HideProgressInfo 
);
+  connect( job, SIGNAL(data(KIO::Job*,QByteArray)), this, 
SLOT(dataReceived(KIO::Job*, QByteArray)) );
+  connect( job, SIGNAL(result(KJob*)), this, SLOT(onGetJobFinished(KJob*)) );
+}
+
+void FbCheckerJob::dataReceived( KIO::Job*, const QByteArray &data )
+{
+  mData.append( data );
 }
 
+void FbCheckerJob::onGetJobFinished( KJob *job )
+{
+  KIO::TransferJob *transferJob = static_cast<KIO::TransferJob*>( job );
+  if ( mData.contains( "BEGIN:VCALENDAR" ) ) {
+    kDebug() << "found freebusy";
+    mValidUrl = transferJob->url();
+    emitResult();
+  } else {
+    checkNextUrl();
+  }
+}
+
+KUrl FbCheckerJob::validUrl() const
+{
+  return mValidUrl;
+}
+
+
 /// FreeBusyManagerPrivate::FreeBusyProviderRequest
 
 FreeBusyManagerPrivate::FreeBusyProviderRequest::FreeBusyProviderRequest( 
const QString &provider )
@@ -170,12 +206,16 @@
   mBrokenUrl = targetURL.isEmpty() || !targetURL.isValid();
 }
 
+static QString configFile()
+{
+  static QString file = KStandardDirs::locateLocal( "data", QLatin1String( 
"korganizer/freebusyurls" ) );
+  return file;
+}
+
 void FreeBusyManagerPrivate::fetchFreeBusyUrl( const QString &email )
 {
   // First check if there is a specific FB url for this email
-  QString configFile = KStandardDirs::locateLocal( "data",
-                                                   QLatin1String( 
"korganizer/freebusyurls" ) );
-  KConfig cfg( configFile );
+  KConfig cfg( configFile() );
   KConfigGroup group = cfg.group( email );
   QString url = group.readEntry( QLatin1String( "url" ) );
   if ( !url.isEmpty() ) {
@@ -208,16 +248,13 @@
   }
 
   Akonadi::ContactSearchJob *job = qobject_cast<Akonadi::ContactSearchJob*>( 
_job );
-  QString configFile = KStandardDirs::locateLocal( "data",
-                                                   QLatin1String( 
"korganizer/freebusyurls" ) );
-  KConfig cfg( configFile );
+  KConfig cfg( configFile() );
   KConfigGroup group = cfg.group( email );
   QString url = group.readEntry( QLatin1String( "url" ) );
 
-  QString pref;
   const KABC::Addressee::List contacts = job->contacts();
   foreach ( const KABC::Addressee &contact, contacts ) {
-    pref = contact.preferredEmail();
+    const QString pref = contact.preferredEmail();
     if ( !pref.isEmpty() && pref != email ) {
       group = cfg.group( pref );
       url = group.readEntry ( "url" );
@@ -283,6 +320,7 @@
   // else we search for a fb file in the specified URL with known possible 
extensions
   const QStringList extensions = QStringList() << "xfb" << "ifb" << "vfb";
   QStringList::ConstIterator ext;
+  QList<KUrl> urlsToCheck;
   for ( ext = extensions.constBegin(); ext != extensions.constEnd(); ++ext ) {
     // build a url for this extension
     const KUrl sourceUrl = CalendarSettings::self()->freeBusyRetrieveUrl();
@@ -296,18 +334,30 @@
     }
     dirURL.setUser( CalendarSettings::self()->freeBusyRetrieveUser() );
     dirURL.setPass( CalendarSettings::self()->freeBusyRetrievePassword() );
-    if ( fbExists( dirURL ) ) {
-      // write the URL to the cache
-      KConfigGroup group = cfg.group( email );
-      group.writeEntry( "url", dirURL.prettyUrl() ); // prettyURL() does not 
write user nor password
-      kDebug() << "Found url email=" << email << "; url=" << dirURL;
-      emit freeBusyUrlRetrieved( email, dirURL );
-      return;
-    }
+    urlsToCheck << dirURL;
   }
+  KJob *checkerJob = new FbCheckerJob( urlsToCheck, this );
+  checkerJob->setProperty( "email", email );
+  connect( checkerJob, SIGNAL(result(KJob*)), this, 
SLOT(fbCheckerJobFinished(KJob*)) );
+  checkerJob->start();
+}
 
-  kDebug() << "Returning invalid url";
-  emit freeBusyUrlRetrieved( email, KUrl() );
+void FreeBusyManagerPrivate::fbCheckerJobFinished( KJob *job )
+{
+  const QString email = job->property( "email" ).toString();
+  if ( !job->error() ) {
+    FbCheckerJob *checkerJob = static_cast<FbCheckerJob*>( job );
+    KUrl dirURL = checkerJob->validUrl();
+    // write the URL to the cache
+    KConfig cfg( configFile() );
+    KConfigGroup group = cfg.group( email );
+    group.writeEntry( "url", dirURL.prettyUrl() ); // prettyURL() does not 
write user nor password
+    kDebug() << "Found url email=" << email << "; url=" << dirURL;
+    emit freeBusyUrlRetrieved( email, dirURL );
+  } else {
+    kDebug() << "Returning invalid url";
+    emit freeBusyUrlRetrieved( email, KUrl() );
+  }
 }
 
 QString FreeBusyManagerPrivate::freeBusyToIcal( const KCalCore::FreeBusy::Ptr 
&freebusy )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/calendar/freebusymanager_p.h 
new/kdepimlibs-4.11.2/akonadi/calendar/freebusymanager_p.h
--- old/kdepimlibs-4.11.1/akonadi/calendar/freebusymanager_p.h  2013-06-28 
19:34:42.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/freebusymanager_p.h  2013-09-26 
21:22:19.000000000 +0200
@@ -31,7 +31,12 @@
 #include <QtDBus/QDBusContext>
 #include <QtDBus/QDBusInterface>
 
-class KJob;
+#include <KJob>
+#include <KUrl>
+
+namespace KIO {
+class Job;
+}
 
 namespace Akonadi {
 
@@ -117,11 +122,32 @@
   void onFreeBusyRetrieved( const QString &email, const QString &freeBusy,
                             bool success, const QString &errorText );
   void processMailSchedulerResult( Akonadi::Scheduler::Result result, const 
QString &errorMsg );
+  void fbCheckerJobFinished( KJob* );
 
 signals:
   void freeBusyUrlRetrieved( const QString &email, const KUrl &url );
 };
 
+class FbCheckerJob : public KJob
+{
+  Q_OBJECT
+public:
+  explicit FbCheckerJob( const QList<KUrl> &urlsToCheck, QObject *parent = 0 );
+  virtual void start();
+
+  KUrl validUrl() const;
+
+private slots:
+  void onGetJobFinished( KJob *job );
+  void dataReceived( KIO::Job *, const QByteArray &data );
+
+private:
+  void checkNextUrl();
+  QList<KUrl> mUrlsToCheck;
+  QByteArray mData;
+  KUrl mValidUrl;
+};
+
 }
 
 #endif // FREEBUSYMANAGER_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/calendar/history_p.cpp 
new/kdepimlibs-4.11.2/akonadi/calendar/history_p.cpp
--- old/kdepimlibs-4.11.1/akonadi/calendar/history_p.cpp        2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/history_p.cpp        2013-09-26 
21:22:19.000000000 +0200
@@ -56,8 +56,10 @@
 
   Akonadi::Item::List::iterator it = mItems.begin();
   while ( it != mItems.end() ) {
-    if ( (*it).id() == oldId )
+    if ( (*it).id() == oldId ) {
       (*it).setId( newId );
+      (*it).setRevision( 0 );
+    }
     ++it;
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/calendar/itiphandler.cpp 
new/kdepimlibs-4.11.2/akonadi/calendar/itiphandler.cpp
--- old/kdepimlibs-4.11.1/akonadi/calendar/itiphandler.cpp      2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/calendar/itiphandler.cpp      2013-09-26 
21:22:19.000000000 +0200
@@ -241,16 +241,19 @@
   delete publishdlg;
 }
 
-void ITIPHandler::sendAsICalendar( const KCalCore::Incidence::Ptr &incidence,
+void ITIPHandler::sendAsICalendar( const KCalCore::Incidence::Ptr 
&originalIncidence,
                                    QWidget *parentWidget )
 {
   Q_UNUSED( parentWidget );
-  Q_ASSERT( incidence );
-  if ( !incidence ) {
+  Q_ASSERT( originalIncidence );
+  if ( !originalIncidence ) {
     kError() << "Invalid incidence";
     return;
   }
 
+  // Clone so we can change organizer and recurid
+  KCalCore::Incidence::Ptr incidence = KCalCore::Incidence::Ptr( 
originalIncidence->clone() );
+
   KPIMIdentities::IdentityManager identityManager;
 
   QPointer<Akonadi::PublishDialog> publishdlg = new Akonadi::PublishDialog;
@@ -262,6 +265,11 @@
                                                        
Akonadi::CalendarUtils::email() ) ) );
     }
 
+    if ( incidence->hasRecurrenceId() ) {
+      // For an individual occurrence, recur id doesn't make sense, since 
we're not sending the whole recurrence series.
+      incidence->setRecurrenceId(KDateTime());
+    }
+
     KCalCore::ICalFormat format;
     const QString from = Akonadi::CalendarUtils::email();
     const bool bccMe = Akonadi::CalendarSettings::self()->bcc();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/collectionfetchjob.cpp 
new/kdepimlibs-4.11.2/akonadi/collectionfetchjob.cpp
--- old/kdepimlibs-4.11.1/akonadi/collectionfetchjob.cpp        2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/collectionfetchjob.cpp        2013-09-26 
21:22:19.000000000 +0200
@@ -98,6 +98,17 @@
       emit q->collectionsReceived( mPendingCollections );
       mPendingCollections.clear();
     }
+
+    QString jobDebuggingString() const
+    {
+      if ( mBase.isValid() ) {
+        return QString::fromLatin1( "Collection Id %1" ).arg( mBase.id() );
+      } else if ( CollectionUtils::hasValidHierarchicalRID( mBase ) ) {
+        return QString::fromUtf8( '(' + 
ProtocolHelper::hierarchicalRidToByteArray( mBase ) + ')' );
+      } else {
+        return QString::fromLatin1( "Collection RemoteId %1" ).arg( 
mBase.remoteId() );
+      }
+    }
 };
 
 CollectionFetchJob::CollectionFetchJob( const Collection &collection, Type 
type, QObject *parent )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/collectionmodel.cpp 
new/kdepimlibs-4.11.2/akonadi/collectionmodel.cpp
--- old/kdepimlibs-4.11.1/akonadi/collectionmodel.cpp   2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/collectionmodel.cpp   2013-09-26 
21:22:19.000000000 +0200
@@ -143,13 +143,12 @@
     return QModelIndex();
   }
 
-  Collection col = d->collections.value( index.internalId() );
+  const Collection col = d->collections.value( index.internalId() );
   if ( !col.isValid() ) {
     return QModelIndex();
   }
 
-
-  Collection parentCol = d->collections.value( col.parentCollection().id() );
+  const Collection parentCol = d->collections.value( 
col.parentCollection().id() );
   if ( !parentCol.isValid() ) {
     return QModelIndex();
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/actions/sendsmsaction.cpp 
new/kdepimlibs-4.11.2/akonadi/contact/actions/sendsmsaction.cpp
--- old/kdepimlibs-4.11.1/akonadi/contact/actions/sendsmsaction.cpp     
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/actions/sendsmsaction.cpp     
2013-09-26 21:22:19.000000000 +0200
@@ -50,6 +50,16 @@
 {
   const QString number = phoneNumber.number().trimmed();
 
+  // synchronize
+  ContactActionsSettings::self()->readConfig();
+
+  QString command = ContactActionsSettings::self()->smsCommand();
+
+  if ( command.isEmpty() ) {
+    KMessageBox::sorry( 0, i18n( "There is no application set which could be 
executed. Please go to the settings dialog and configure one." ) );
+    return;
+  }
+
   QPointer<SmsDialog> dlg( new SmsDialog( number ) );
   if ( dlg->exec() != QDialog::Accepted ) { // the cancel button has been 
clicked
     delete dlg;
@@ -58,8 +68,6 @@
   const QString message = ( dlg != 0 ? dlg->message() : QString() );
   delete dlg;
 
-  // synchronize
-  ContactActionsSettings::self()->readConfig();
 
   //   we handle skype separated
   if ( ContactActionsSettings::self()->sendSmsAction() == 
ContactActionsSettings::UseSkypeSms ) {
@@ -74,13 +82,6 @@
     return;
   }
 
-  QString command = ContactActionsSettings::self()->smsCommand();
-
-  if ( command.isEmpty() ) {
-    KMessageBox::sorry( 0, i18n( "There is no application set which could be 
executed. Please go to the settings dialog and configure one." ) );
-    return;
-  }
-
   /*
    * %N the raw number
    * %n the number with all additional non-number characters removed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/contacteditordialog.cpp 
new/kdepimlibs-4.11.2/akonadi/contact/contacteditordialog.cpp
--- old/kdepimlibs-4.11.1/akonadi/contact/contacteditordialog.cpp       
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/contacteditordialog.cpp       
2013-09-26 21:22:19.000000000 +0200
@@ -83,7 +83,7 @@
       connect( q, SIGNAL(cancelClicked()), q, SLOT(slotCancelClicked()) );
       connect( mEditor, SIGNAL(finished()), q, SLOT(slotFinish()) );
 
-      q->setInitialSize( QSize( 800, 500 ) );
+      readConfig();
     }
 
     void slotOkClicked()
@@ -104,6 +104,26 @@
       q->reject();
     }
 
+    void readConfig()
+    {
+      KConfig config( QLatin1String( "akonadi_contactrc" ) );
+      KConfigGroup group( &config, QLatin1String( "ContactEditor" ) );
+      const QSize size = group.readEntry( "Size", QSize() );
+      if ( size.isValid() ) {
+        q->resize( size );
+      } else {
+        q->resize( 800,  500 );
+      }
+    }
+
+    void writeConfig()
+    {
+      KConfig config( QLatin1String( "akonadi_contactrc" ) );
+      KConfigGroup group( &config, QLatin1String( "ContactEditor" ) );
+      group.writeEntry( "Size", q->size() );
+      group.sync();
+    }
+
     ContactEditorDialog *q;
     CollectionComboBox *mAddressBookBox;
     ContactEditorDialog::Mode mMode;
@@ -127,6 +147,7 @@
 
 ContactEditorDialog::~ContactEditorDialog()
 {
+  d->writeConfig();
   delete d;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/contactviewerdialog.cpp 
new/kdepimlibs-4.11.2/akonadi/contact/contactviewerdialog.cpp
--- old/kdepimlibs-4.11.1/akonadi/contact/contactviewerdialog.cpp       
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/contactviewerdialog.cpp       
2013-09-26 21:22:19.000000000 +0200
@@ -20,24 +20,51 @@
 */
 
 #include "contactviewerdialog.h"
-
 #include "contactviewer.h"
+#include "contactdefaultactions.h"
 
 #include <akonadi/item.h>
-#include <klocalizedstring.h>
+using namespace Akonadi;
 
-#include <QVBoxLayout>
+#include <KConfig>
+#include <KLocalizedString>
 
-using namespace Akonadi;
+#include <QVBoxLayout>
 
 class ContactViewerDialog::Private
 {
   public:
+    Private( ContactViewerDialog *parent )
+      : q( parent )
+    {
+    }
+
+    void readConfig()
+    {
+      KConfig config( QLatin1String( "akonadi_contactrc" ) );
+      KConfigGroup group( &config, QLatin1String( "ContactViewer" ) );
+      const QSize size = group.readEntry( "Size", QSize() );
+      if ( size.isValid() ) {
+        q->resize( size );
+      } else {
+        q->resize( 500, 600 );
+      }
+    }
+
+    void writeConfig()
+    {
+      KConfig config( QLatin1String( "akonadi_contactrc" ) );
+      KConfigGroup group( &config, QLatin1String( "ContactViewer" ) );
+      group.writeEntry( "Size", q->size() );
+      group.sync();
+    }
+
+    ContactViewerDialog *q;
     ContactViewer *mViewer;
 };
 
 ContactViewerDialog::ContactViewerDialog( QWidget *parent )
-  : KDialog( parent ), d( new Private )
+  : KDialog( parent ), d( new Private( this ) )
 {
   setCaption( i18n( "Show Contact" ) );
   setButtons( Ok );
@@ -50,11 +77,15 @@
   d->mViewer = new ContactViewer;
   layout->addWidget( d->mViewer );
 
-  setInitialSize( QSize( 500, 600 ) );
+  ContactDefaultActions *actions = new ContactDefaultActions( this );
+  actions->connectToView( d->mViewer );
+
+  d->readConfig();
 }
 
 ContactViewerDialog::~ContactViewerDialog()
 {
+  d->writeConfig();
   delete d;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/editor/kdatepickerpopup.cpp 
new/kdepimlibs-4.11.2/akonadi/contact/editor/kdatepickerpopup.cpp
--- old/kdepimlibs-4.11.1/akonadi/contact/editor/kdatepickerpopup.cpp   
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/editor/kdatepickerpopup.cpp   
2013-09-26 21:22:19.000000000 +0200
@@ -70,19 +70,11 @@
   connect( mDatePicker, SIGNAL(dateSelected(QDate)),
            SLOT(slotDateChanged(QDate)) );
 
-  connect( this, SIGNAL(aboutToHide()), SLOT(slotHidePickerPopup()));
   mDatePicker->setDate( date );
 
   buildMenu();
 }
 
-void KDatePickerPopup::slotHidePickerPopup()
-{
-    if (mDatePicker->date() != mDate) {
-        emit dateChanged( mDatePicker->date() );
-    }
-}
-
 void KDatePickerPopup::buildMenu()
 {
   if ( isVisible() ) {
@@ -132,8 +124,11 @@
 }
 #endif
 
-void KDatePickerPopup::slotDateChanged( const QDate &/*date*/ )
+void KDatePickerPopup::slotDateChanged( const QDate &date )
 {
+  if (date != mDate) {
+    emit dateChanged( date );
+  }
   hide();
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/editor/kdatepickerpopup_p.h 
new/kdepimlibs-4.11.2/akonadi/contact/editor/kdatepickerpopup_p.h
--- old/kdepimlibs-4.11.1/akonadi/contact/editor/kdatepickerpopup_p.h   
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/editor/kdatepickerpopup_p.h   
2013-09-26 21:22:19.000000000 +0200
@@ -103,7 +103,6 @@
     void slotNextWeek();
     void slotNextMonth();
     void slotNoDate();
-    void slotHidePickerPopup();
 
   private:
     void buildMenu();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/editor/kedittagsdialog.cpp 
new/kdepimlibs-4.11.2/akonadi/contact/editor/kedittagsdialog.cpp
--- old/kdepimlibs-4.11.1/akonadi/contact/editor/kedittagsdialog.cpp    
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/editor/kedittagsdialog.cpp    
2013-09-26 21:22:19.000000000 +0200
@@ -131,9 +131,15 @@
             QListWidgetItem* item = m_tagsList->item( i );
             if ( item->checkState() == Qt::Checked ) {
                 const QString label = item->data( Qt::UserRole ).toString();
-                Nepomuk2::Tag tag( label );
-                tag.setLabel( label );
-                m_tags.append( tag );
+                const QString uri = item->data(UrlTag).toString();
+                if (uri.isEmpty()) {
+                    Nepomuk2::Tag tag( label );
+                    tag.setLabel( label );
+                    m_tags.append( tag );
+                } else {
+                    Nepomuk2::Tag tag( uri );
+                    m_tags.append( tag );
+                }
             }
         }
 
@@ -231,6 +237,7 @@
 
         QListWidgetItem *item = new QListWidgetItem( label, m_tagsList );
         item->setData( Qt::UserRole, label );
+        item->setData( UrlTag, tag.uri().toString());
 
         bool check = false;
         foreach ( const Nepomuk2::Tag& selectedTag, m_tags ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/editor/kedittagsdialog_p.h 
new/kdepimlibs-4.11.2/akonadi/contact/editor/kedittagsdialog_p.h
--- old/kdepimlibs-4.11.1/akonadi/contact/editor/kedittagsdialog_p.h    
2013-06-28 19:34:42.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/editor/kedittagsdialog_p.h    
2013-09-26 21:22:19.000000000 +0200
@@ -65,6 +65,10 @@
     void removeNewTagItem();
 
 private:
+    enum ItemType {
+        UrlTag = Qt::UserRole + 1
+    };
+
     QVector<Nepomuk2::Tag> m_tags;
     QListWidget* m_tagsList;
     QListWidgetItem* m_newTagItem;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/akonadi/contact/emailaddressselectiondialog.cpp 
new/kdepimlibs-4.11.2/akonadi/contact/emailaddressselectiondialog.cpp
--- old/kdepimlibs-4.11.1/akonadi/contact/emailaddressselectiondialog.cpp       
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/contact/emailaddressselectiondialog.cpp       
2013-09-26 21:22:19.000000000 +0200
@@ -47,7 +47,7 @@
 
     void readConfig()
     {
-       KConfigGroup group( KGlobal::config(), "EmailAddressSelectionDialog" );
+       KConfigGroup group( KGlobal::config(), QLatin1String( 
"EmailAddressSelectionDialog" ) );
        const QSize size = group.readEntry( "Size", QSize() );
        if ( size.isValid() ) {
           q->resize( size );
@@ -58,7 +58,7 @@
 
     void writeConfig()
     {
-        KConfigGroup group( KGlobal::config(), "EmailAddressSelectionDialog" );
+        KConfigGroup group( KGlobal::config(), QLatin1String( 
"EmailAddressSelectionDialog" ) );
         group.writeEntry( "Size", q->size() );
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/akonadi/subscriptiondialog.cpp 
new/kdepimlibs-4.11.2/akonadi/subscriptiondialog.cpp
--- old/kdepimlibs-4.11.1/akonadi/subscriptiondialog.cpp        2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/akonadi/subscriptiondialog.cpp        2013-09-26 
21:22:19.000000000 +0200
@@ -103,6 +103,23 @@
       filterRecursiveCollectionFilter->setIncludeCheckedOnly( checked );
     }
 
+    void writeConfig()
+    {
+      KConfigGroup group( KGlobal::config(), "SubscriptionDialog" );
+      group.writeEntry( "Size", q->size() );
+    }
+
+    void readConfig()
+    {
+      KConfigGroup group( KGlobal::config(), "SubscriptionDialog" );
+      const QSize sizeDialog = group.readEntry( "Size", QSize() );
+      if ( sizeDialog.isValid() ) {
+         q->resize( sizeDialog );
+      } else {
+         q->resize( 300,200);
+      }
+    }
+
     void slotUnSubscribe();
     void slotSubscribe();
 
@@ -254,10 +271,12 @@
   connect( this, SIGNAL(okClicked()), SLOT(done()) );
   connect( this, SIGNAL(cancelClicked()), SLOT(deleteLater()) );
   Control::widgetNeedsAkonadi( mainWidget );
+  d->readConfig();
 }
 
-SubscriptionDialog::~ SubscriptionDialog()
+SubscriptionDialog::~SubscriptionDialog()
 {
+  d->writeConfig();
   delete d;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/kcalcore/incidencebase.cpp 
new/kdepimlibs-4.11.2/kcalcore/incidencebase.cpp
--- old/kdepimlibs-4.11.1/kcalcore/incidencebase.cpp    2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/kcalcore/incidencebase.cpp    2013-09-26 
21:22:19.000000000 +0200
@@ -149,10 +149,19 @@
 IncidenceBase &IncidenceBase::assign( const IncidenceBase &other )
 {
   CustomProperties::operator=( other );
+
+  const bool uidChanged = other.uid() != uid();
+
   d->init( *other.d );
   mReadOnly = other.mReadOnly;
   d->mDirtyFields.clear();
-  d->mDirtyFields.insert( FieldUnknown );
+  d->mDirtyFields.insert( FieldUnknown ); // Means stuff might have changed.
+
+  // Observers using the observer interface have no way of finding out if there
+  // was a uid change so, exceptionally, lets set this field dirty.
+  if ( uidChanged )
+    d->mDirtyFields.insert( FieldUid );
+
   return *this;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.11.1/kcalcore/occurrenceiterator.cpp 
new/kdepimlibs-4.11.2/kcalcore/occurrenceiterator.cpp
--- old/kdepimlibs-4.11.1/kcalcore/occurrenceiterator.cpp       2013-08-28 
19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/kcalcore/occurrenceiterator.cpp       2013-09-26 
21:22:19.000000000 +0200
@@ -188,8 +188,22 @@
     calendar.filter()->apply( &todos );
   }
 
+  Journal::List journals;
+  const Journal::List allJournals = calendar.rawJournals();
+  foreach ( const KCalCore::Journal::Ptr &journal, allJournals ) {
+    const QDate journalStart = journal->dtStart().toTimeSpec( start.timeSpec() 
).date();
+    if ( journal->dtStart().isValid() &&
+         journalStart >= start.date() &&
+         journalStart <= end.date() )
+      journals << journal;
+  }
+
+  if ( calendar.filter() ) {
+    calendar.filter()->apply( &journals );
+  }
+
   const Incidence::List incidences =
-      KCalCore::Calendar::mergeIncidenceList( events, todos, Journal::List() );
+      KCalCore::Calendar::mergeIncidenceList( events, todos, journals );
   d->setupIterator( calendar, incidences );
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/kcalcore/tests/testoccurrenceiterator.cpp 
new/kdepimlibs-4.11.2/kcalcore/tests/testoccurrenceiterator.cpp
--- old/kdepimlibs-4.11.1/kcalcore/tests/testoccurrenceiterator.cpp     
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/kcalcore/tests/testoccurrenceiterator.cpp     
2013-09-26 21:22:19.000000000 +0200
@@ -253,3 +253,26 @@
   QCOMPARE(expectedEventOccurrences.size(), 0);
 
 }
+
+void TestOccurrenceIterator::testJournals()
+{
+  KCalCore::MemoryCalendar calendar( KDateTime::UTC );
+
+  const KDateTime today = KDateTime::currentDateTime( KDateTime::UTC );
+  const KDateTime yesterday = today.addDays( -1 );
+  const KDateTime tomorrow = today.addDays( 1 );
+
+  KCalCore::Journal::Ptr journal( new KCalCore::Journal() );
+  journal->setUid( "journal" );
+  journal->setDtStart( today );
+  calendar.addJournal( journal );
+
+  KCalCore::OccurrenceIterator rIt( calendar, yesterday, tomorrow );
+  QVERIFY( rIt.hasNext() );
+  rIt.next();
+  QCOMPARE( rIt.occurrenceStartDate(), today);
+  QVERIFY( !rIt.hasNext() );
+
+  KCalCore::OccurrenceIterator rIt2( calendar, tomorrow, tomorrow.addDays( 1 ) 
);
+  QVERIFY( !rIt2.hasNext() );
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/kcalcore/tests/testoccurrenceiterator.h 
new/kdepimlibs-4.11.2/kcalcore/tests/testoccurrenceiterator.h
--- old/kdepimlibs-4.11.1/kcalcore/tests/testoccurrenceiterator.h       
2013-08-28 19:06:13.000000000 +0200
+++ new/kdepimlibs-4.11.2/kcalcore/tests/testoccurrenceiterator.h       
2013-09-26 21:22:19.000000000 +0200
@@ -29,6 +29,7 @@
     void testAllDayEvents();
     void testWithExceptionThisAndFuture();
     void testSubDailyRecurrences();
+    void testJournals();
 };
 
 #endif // TESTOCCURRENCEITERATOR_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.11.1/mailtransport/addtransportdialog.cpp 
new/kdepimlibs-4.11.2/mailtransport/addtransportdialog.cpp
--- old/kdepimlibs-4.11.1/mailtransport/addtransportdialog.cpp  2013-06-28 
19:34:42.000000000 +0200
+++ new/kdepimlibs-4.11.2/mailtransport/addtransportdialog.cpp  2013-09-26 
21:22:19.000000000 +0200
@@ -52,11 +52,29 @@
       Enables the OK button if a type is selected.
     */
     void updateOkButton(); // slot
+    void writeConfig();
+    void readConfig();
 
     AddTransportDialog *const q;
     ::Ui::AddTransportDialog ui;
 };
 
+
+void AddTransportDialog::Private::writeConfig()
+{
+  KConfigGroup group( KGlobal::config(), "AddTransportDialog" );
+  group.writeEntry( "Size", q->size() );
+}
+
+void AddTransportDialog::Private::readConfig()
+{
+  KConfigGroup group( KGlobal::config(), "AddTransportDialog" );
+  const QSize sizeDialog = group.readEntry( "Size", QSize(300,200) );
+  if ( sizeDialog.isValid() ) {
+    q->resize( sizeDialog );
+  }
+}
+
 TransportType AddTransportDialog::Private::selectedType() const
 {
   QList<QTreeWidgetItem*> sel = ui.typeListView->selectedItems();
@@ -111,10 +129,12 @@
            this, SLOT(accept()) );
   connect( d->ui.name, SIGNAL(textChanged(QString)),
            this, SLOT(updateOkButton()) );
+  d->readConfig();
 }
 
 AddTransportDialog::~AddTransportDialog()
 {
+  d->writeConfig();
   delete d;
 }
 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to