Hello community,

here is the log from the commit of package kdepimlibs4 for openSUSE:Factory
checked in at Thu Oct 6 16:35:22 CEST 2011.



--------
--- openSUSE:Factory/kdepimlibs4/kdepimlibs4.changes    2011-10-03 
13:37:33.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdepimlibs4/kdepimlibs4.changes        
2011-10-03 13:38:07.000000000 +0200
@@ -6,0 +7,6 @@
+Sun Oct  2 16:41:54 CEST 2011 - [email protected]
+
+- update to 4.7.2
+  * see http://kde.org/announcements/changelogs/changelog4_7_1to4_7_2.php for 
details
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  kdepimlibs-4.7.1.tar.bz2

New:
----
  kdepimlibs-4.7.2.tar.bz2

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

Other differences:
------------------
++++++ kdepimlibs4.spec ++++++
--- /var/tmp/diff_new_pack.W7H19N/_old  2011-10-06 16:35:14.000000000 +0200
+++ /var/tmp/diff_new_pack.W7H19N/_new  2011-10-06 16:35:14.000000000 +0200
@@ -18,8 +18,8 @@
 
 
 Name:           kdepimlibs4
-Version:        4.7.1
-Release:        2
+Version:        4.7.2
+Release:        1
 License:        LGPLv2.1+
 Summary:        KDE PIM Libraries
 Url:            http://www.kde.org

++++++ kdepimlibs-4.7.1.tar.bz2 -> kdepimlibs-4.7.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/CMakeLists.txt 
new/kdepimlibs-4.7.2/CMakeLists.txt
--- old/kdepimlibs-4.7.1/CMakeLists.txt 2011-09-01 22:58:26.000000000 +0200
+++ new/kdepimlibs-4.7.2/CMakeLists.txt 2011-10-02 15:48:21.000000000 +0200
@@ -7,7 +7,7 @@
 ############### The kdepimlibs version (used e.g. in KdepimLibsConfig.cmake) 
###############
 set(KDEPIMLIBS_VERSION_MAJOR 4)
 set(KDEPIMLIBS_VERSION_MINOR 7)
-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.7.1/akonadi/agentbase.cpp 
new/kdepimlibs-4.7.2/akonadi/agentbase.cpp
--- old/kdepimlibs-4.7.1/akonadi/agentbase.cpp  2011-07-22 14:46:51.000000000 
+0200
+++ new/kdepimlibs-4.7.2/akonadi/agentbase.cpp  2011-09-26 11:37:14.000000000 
+0200
@@ -23,6 +23,7 @@
 #include "agentbase.h"
 #include "agentbase_p.h"
 
+#include "agentmanager.h"
 #include "changerecorder.h"
 #include "controladaptor.h"
 #include "dbusconnectionpool.h"
@@ -50,6 +51,7 @@
 #include <signal.h>
 #include <stdlib.h>
 
+
 //#define EXPERIMENTAL_INPROCESS_AGENTS 1
 
 using namespace Akonadi;
@@ -269,7 +271,10 @@
     KApplication::kApplication()->disableSessionManagement();
 #endif
 
-  QTimer::singleShot( 0, q, SLOT( delayedInit() ) );
+  mResourceTypeName = AgentManager::self()->instance(mId).type().name();
+  setProgramName();
+
+  QTimer::singleShot( 0, q, SLOT(delayedInit()) );
 }
 
 void AgentBasePrivate::delayedInit()
@@ -280,6 +285,16 @@
   q->setOnline( mOnline );
 }
 
+void AgentBasePrivate::setProgramName()
+{
+  // ugly, really ugly, if you find another solution, change it and blame me 
for this code (Andras)
+  QString programName = mResourceTypeName;
+  if ( !mName.isEmpty() ) {
+    programName = i18nc( "Name and type of Akonadi resource", "%1 of type %2", 
mName, mResourceTypeName ) ;
+  }
+  const_cast<KAboutData*>( KGlobal::mainComponent().aboutData() 
)->setProgramName( ki18n( programName.toUtf8() ) );
+}
+
 void AgentBasePrivate::itemAdded( const Akonadi::Item &item, const 
Akonadi::Collection &collection )
 {
   if ( mObserver != 0 )
@@ -718,6 +733,8 @@
 
   d->mSettings->sync();
 
+  d->setProgramName();
+
   emit agentNameChanged( d->mName );
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/agentbase_p.h 
new/kdepimlibs-4.7.2/akonadi/agentbase_p.h
--- old/kdepimlibs-4.7.1/akonadi/agentbase_p.h  2011-05-20 22:31:22.000000000 
+0200
+++ new/kdepimlibs-4.7.2/akonadi/agentbase_p.h  2011-09-26 11:37:14.000000000 
+0200
@@ -69,11 +69,14 @@
       return i18nc( "@info:status", "Error." );
     }
 
+    void setProgramName();
+
     AgentBase *q_ptr;
     Q_DECLARE_PUBLIC( AgentBase )
 
     QString mId;
     QString mName;
+    QString mResourceTypeName;
 
     /// Use sessionBus() to access the connection.
     QDBusConnection mDBusConnection;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/contact/Messages.sh 
new/kdepimlibs-4.7.2/akonadi/contact/Messages.sh
--- old/kdepimlibs-4.7.1/akonadi/contact/Messages.sh    2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/contact/Messages.sh    2011-09-26 
11:37:14.000000000 +0200
@@ -1,4 +1,4 @@
 #! /bin/sh
-$EXTRACTRC *.ui actions/*.kcfg *.kcfg >> rc.cpp || exit 11
+$EXTRACTRC *.ui actions/*.kcfg.cmake *.kcfg >> rc.cpp || exit 11
 $XGETTEXT *.cpp actions/*.cpp editor/*.cpp editor/im/*.cpp -o 
$podir/akonadicontact.pot
 rm -f rc.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.7.1/akonadi/contact/actions/smsdialog.cpp 
new/kdepimlibs-4.7.2/akonadi/contact/actions/smsdialog.cpp
--- old/kdepimlibs-4.7.1/akonadi/contact/actions/smsdialog.cpp  2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/contact/actions/smsdialog.cpp  2011-09-26 
11:37:14.000000000 +0200
@@ -30,8 +30,6 @@
 #include <QtGui/QPushButton>
 #include <QtGui/QVBoxLayout>
 
-static const unsigned int s_messageSize = 160;
-
 SmsDialog::SmsDialog( const KABC::PhoneNumber &number )
   : mNumber( number.number() )
 {
@@ -84,10 +82,20 @@
 void SmsDialog::updateCounter()
 {
   mText = mSmsTextEdit->toPlainText();
+  unsigned int messageSize = 160;
 
-  int size = mText.size();
-  int numberSms = ( size - ( size % s_messageSize ) ) / s_messageSize + 1;
-  int numberChars = s_messageSize * numberSms;
+  bool noLatin1Char = false;
+  const int size = mText.length();
+  for ( int i = 0; i <size; ++i )
+  {
+    if ( mText[i].row() > 0 ) {
+      noLatin1Char = true;
+      messageSize = 70;
+      break;
+    }
+  }
+  const int numberSms = ( size - ( size % messageSize ) ) / messageSize + 1;
+  const int numberChars = messageSize * numberSms;
 
   mLengthLabel->setText( i18n( "%1/%2 (%3 SMS)", size, numberChars, numberSms 
) );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdepimlibs-4.7.1/akonadi/contact/emailaddressselectionwidget.cpp 
new/kdepimlibs-4.7.2/akonadi/contact/emailaddressselectionwidget.cpp
--- old/kdepimlibs-4.7.1/akonadi/contact/emailaddressselectionwidget.cpp        
2011-05-20 22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/contact/emailaddressselectionwidget.cpp        
2011-10-02 14:47:53.000000000 +0200
@@ -37,6 +37,7 @@
 #include <kabc/contactgroup.h>
 #include <klineedit.h>
 #include <klocale.h>
+#include <kglobal.h>
 
 #include <QtCore/QTimer>
 #include <QtGui/QHBoxLayout>
@@ -100,6 +101,7 @@
 
 void EmailAddressSelectionWidget::Private::init()
 {
+  KGlobal::locale()->insertCatalog( QLatin1String( "akonadicontact" ) );
   // setup internal model if needed
   if ( !mModel ) {
     Akonadi::Session *session = new Akonadi::Session( 
"InternalEmailAddressSelectionWidgetModel", q );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/entitytreemodel_p.cpp 
new/kdepimlibs-4.7.2/akonadi/entitytreemodel_p.cpp
--- old/kdepimlibs-4.7.1/akonadi/entitytreemodel_p.cpp  2011-06-22 
16:28:23.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/entitytreemodel_p.cpp  2011-10-02 
14:47:53.000000000 +0200
@@ -1062,8 +1062,18 @@
   } else if ( isHidden( destCollection ) ) {
     monitoredItemRemoved( item );
     return;
+  } else {
+    monitoredItemRemoved( item );
+    monitoredItemAdded( item, destCollection );
+    return;
   }
-
+  // "Temporarily" commented out as it's likely the best course to
+  // avoid the dreaded "reset storm" (or layoutChanged storm). The
+  // whole itemMoved idea is great but not practical until all the
+  // other proxy models play nicely with it, right now they just
+  // transform moved signals in layout changed, which explodes into
+  // a reset of the source model inside of the message list (ouch!)
+#if 0
   if ( !m_items.contains( item.id() ) ) {
     kWarning() << "Got a stale notification for an item which was already 
removed." << item.id() << item.remoteId();
     return;
@@ -1095,6 +1105,7 @@
   node->parent = destCollection.id();
   m_childEntities[ destCollection.id() ].append( node );
   q->endMoveRows();
+#endif
 }
 
 void EntityTreeModelPrivate::monitoredItemLinked( const Akonadi::Item& item, 
const Akonadi::Collection& collection )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/kmime/emptytrashcommand.cpp 
new/kdepimlibs-4.7.2/akonadi/kmime/emptytrashcommand.cpp
--- old/kdepimlibs-4.7.1/akonadi/kmime/emptytrashcommand.cpp    2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/kmime/emptytrashcommand.cpp    2011-09-26 
11:37:14.000000000 +0200
@@ -32,17 +32,22 @@
 #include "akonadi/itemdeletejob.h"
 #include "akonadi/agentmanager.h"
 #include "kmime/kmime_message.h"
-
-EmptyTrashCommand::EmptyTrashCommand(const QAbstractItemModel* model, QObject* 
parent) : CommandBase( parent )
+ 
+EmptyTrashCommand::EmptyTrashCommand(const QAbstractItemModel* model, QObject* 
parent)
+  : CommandBase( parent ),
+    mModel( model ), 
+    the_trashCollectionFolder( -1 ),
+    mNumberOfTrashToEmpty( 0 )
 {
-  the_trashCollectionFolder = -1;
-  mModel = model;
 }
 
-EmptyTrashCommand::EmptyTrashCommand(Akonadi::Collection folder, QObject* 
parent) : CommandBase( parent )
+EmptyTrashCommand::EmptyTrashCommand(const Akonadi::Collection& folder, 
QObject* parent)
+  : CommandBase( parent ),
+    mModel( 0 ), 
+    the_trashCollectionFolder( -1 ),
+    mFolder( folder ),
+    mNumberOfTrashToEmpty( 0 )
 {
-  mFolder = folder;
-  mModel = 0;
 }
 
 
@@ -54,18 +59,19 @@
   }
 
   if ( !mFolder.isValid() ) { //expunge all
-    
-    QString title = i18n("Empty Trash");
-    QString text = i18n("Are you sure you want to empty the trash folders of 
all accounts?");
+    const QString title = i18n("Empty Trash");
+    const QString text = i18n("Are you sure you want to empty the trash 
folders of all accounts?");
     if (KMessageBox::warningContinueCancel(0, text, title,
                                           KStandardGuiItem::cont(), 
KStandardGuiItem::cancel(),
                                           QLatin1String( "confirm_empty_trash" 
) )
         != KMessageBox::Continue)
     {
+      emitResult( OK );
       return;
     }
     Akonadi::Collection trash = trashCollectionFolder();
-    expunge( trash );
+    QList<Akonadi::Collection> trashFolder;
+    trashFolder<<trash;
 
     const Akonadi::AgentInstance::List lst = agentInstances();
     foreach ( const Akonadi::AgentInstance& type, lst ) {
@@ -74,16 +80,21 @@
           continue;
         OrgKdeAkonadiImapSettingsInterface *iface = 
Util::createImapSettingsInterface( type.identifier() );
         if ( iface->isValid() ) {
-          int trashImap = iface->trashCollection();
+          const int trashImap = iface->trashCollection();
           if ( trashImap != trash.id() ) {
-            expunge( Akonadi::Collection( trashImap ) );
+            trashFolder<<Akonadi::Collection( trashImap );
           }
         }
         delete iface;
       }
     }
+    mNumberOfTrashToEmpty = trashFolder.count();
+    for (int i = 0; i < mNumberOfTrashToEmpty; ++i) {
+      expunge( trashFolder.at( i ) );
+    }
   } else {
     if ( folderIsTrash( mFolder ) ) {
+      mNumberOfTrashToEmpty++;
       expunge( mFolder );
     } else {
       emitResult( OK ); 
@@ -99,6 +110,7 @@
     connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotExpungeJob( KJob* 
) ) );
   } else {
     kDebug()<<" Try to expunge an invalid collection :"<<col;
+    emitResult( Failed ); 
   }
 }
 
@@ -182,3 +194,12 @@
   }
   return false;
 }
+
+void EmptyTrashCommand::emitResult( Result value )
+{
+  emit result( value );
+  mNumberOfTrashToEmpty--;
+  if ( mNumberOfTrashToEmpty <= 0 ) {
+    deleteLater();
+  }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/kmime/emptytrashcommand_p.h 
new/kdepimlibs-4.7.2/akonadi/kmime/emptytrashcommand_p.h
--- old/kdepimlibs-4.7.1/akonadi/kmime/emptytrashcommand_p.h    2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/kmime/emptytrashcommand_p.h    2011-09-26 
11:37:14.000000000 +0200
@@ -35,12 +35,16 @@
 
 public:
     EmptyTrashCommand(const QAbstractItemModel* model, QObject* parent);
-    EmptyTrashCommand(Akonadi::Collection folder, QObject* parent);
+    EmptyTrashCommand(const Akonadi::Collection& folder, QObject* parent);
     /*reimp*/ void execute();
      
 private slots:
   void slotExpungeJob( KJob *job );
   void slotDeleteJob( KJob *job );
+
+protected Q_SLOTS:
+    void emitResult( Result result );
+  
 private:      
   void expunge( const Akonadi::Collection& );
   Akonadi::AgentInstance::List agentInstances();
@@ -51,6 +55,7 @@
   const QAbstractItemModel* mModel;
   Akonadi::Collection::Id the_trashCollectionFolder;
   Akonadi::Collection mFolder;
+  int mNumberOfTrashToEmpty;
 };
 
 #endif // EMPTYTRASHCOMMAND_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/kmime/movecommand.cpp 
new/kdepimlibs-4.7.2/akonadi/kmime/movecommand.cpp
--- old/kdepimlibs-4.7.1/akonadi/kmime/movecommand.cpp  2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/kmime/movecommand.cpp  2011-09-26 
11:37:14.000000000 +0200
@@ -35,8 +35,10 @@
 
 void MoveCommand::execute()
 {
-  if ( mMessages.isEmpty() )
+  if ( mMessages.isEmpty() ) {
     emitResult( OK );
+    return;
+  }
   if ( mDestFolder.isValid() ) {
     Akonadi::ItemMoveJob *job = new Akonadi::ItemMoveJob( mMessages, 
mDestFolder, this );
     connect( job, SIGNAL(result(KJob*)), this, SLOT(slotMoveResult(KJob*)) );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/pastehelper.cpp 
new/kdepimlibs-4.7.2/akonadi/pastehelper.cpp
--- old/kdepimlibs-4.7.1/akonadi/pastehelper.cpp        2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/pastehelper.cpp        2011-10-02 
14:47:53.000000000 +0200
@@ -137,6 +137,12 @@
   }
 
   TransactionSequence *transaction = new TransactionSequence( session );
+
+  //FIXME: The below code disables transactions in otder to avoid data loss 
due to nested
+  //transactions (copy and colcopy in the server doesn't see the items 
retrieved into the cache and copies empty payloads).
+  //Remove once this is fixed properly, see the other FIXME comments.
+  transaction->setProperty( "transactionsDisabled", true );
+  
   switch ( action ) {
     case Qt::CopyAction:
       if ( !items.isEmpty() )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/akonadi/standardactionmanager.cpp 
new/kdepimlibs-4.7.2/akonadi/standardactionmanager.cpp
--- old/kdepimlibs-4.7.1/akonadi/standardactionmanager.cpp      2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/akonadi/standardactionmanager.cpp      2011-09-26 
11:37:14.000000000 +0200
@@ -268,6 +268,9 @@
       if ( actionMenu ) {
         //get rid of the submenus, they are re-created in enableAction. 
clear() is not enough, doesn't remove the submenu object instances.
         KMenu *menu = actionMenu->menu();
+        //Not necessary to delete and recreate menu when it was not created
+        if ( menu->property( "actionType" ).isValid() && menu->isEmpty() )
+          return;
         delete menu;
         menu = new KMenu();
 
@@ -286,7 +289,6 @@
 
       if ( !menu->isEmpty() )
         return;
-
       const StandardActionManager::Type type = 
static_cast<StandardActionManager::Type>( menu->property( "actionType" 
).toInt() );
 
       fillFoldersMenu( type,
Files old/kdepimlibs-4.7.1/doc/kcontrol/kresources/index.cache.bz2 and 
new/kdepimlibs-4.7.2/doc/kcontrol/kresources/index.cache.bz2 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/kcalutils/htmlexportsettings.kcfg 
new/kdepimlibs-4.7.2/kcalutils/htmlexportsettings.kcfg
--- old/kdepimlibs-4.7.1/kcalutils/htmlexportsettings.kcfg      2011-05-20 
22:31:22.000000000 +0200
+++ new/kdepimlibs-4.7.2/kcalutils/htmlexportsettings.kcfg      2011-09-26 
11:37:14.000000000 +0200
@@ -11,11 +11,9 @@
   <group name="$(application)-General">
     <entry type="String" key="Name">
       <label>Full name of the calendar owner</label>
-      <whatsthis>WhatsThis text for FullName setting</whatsthis>
     </entry>
     <entry type="String" key="EMail">
       <label>Email of the calendar owner</label>
-      <whatsthis>WhatsThis text for Email setting</whatsthis>
     </entry>
     <entry type="String" key="Credit Name">
       <label>Creator application</label>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/kimap/listjob.cpp 
new/kdepimlibs-4.7.2/kimap/listjob.cpp
--- old/kdepimlibs-4.7.1/kimap/listjob.cpp      2011-05-20 22:31:22.000000000 
+0200
+++ new/kdepimlibs-4.7.2/kimap/listjob.cpp      2011-10-02 14:47:53.000000000 
+0200
@@ -19,6 +19,7 @@
 
 #include "listjob.h"
 
+#include <boost/bind.hpp>
 #include <QtCore/QTimer>
 #include <KDE/KLocale>
 
@@ -177,6 +178,7 @@
   if ( handleErrorReplies( response ) == NotHandled ) {
     if ( response.content.size() >= 5 && response.content[1].toString() == 
d->command ) {
       QList<QByteArray> flags = response.content[2].toList();
+      std::transform( flags.begin(), flags.end(), flags.begin(), 
boost::bind(&QByteArray::toLower, _1) );
       QByteArray separator = response.content[3].toString();
       if ( separator.isEmpty() ) {
         // Defaults to / for servers reporting an empty list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/kmbox/mbox.cpp 
new/kdepimlibs-4.7.2/kmbox/mbox.cpp
--- old/kdepimlibs-4.7.1/kmbox/mbox.cpp 2011-05-20 22:31:23.000000000 +0200
+++ new/kdepimlibs-4.7.2/kmbox/mbox.cpp 2011-10-02 14:47:53.000000000 +0200
@@ -166,6 +166,10 @@
     if ( d->isMBoxSeparator( line ) ||
          ( d->mMboxFile.atEnd() && ( prevSeparator.size() != 0 ) ) ) {
 
+      // if we are the at the file end, update pos to not forget the last line
+      if ( d->mMboxFile.atEnd() )
+        pos = d->mMboxFile.pos();
+
       // Found the separator or at end of file, the message starts at offs
       quint64 msgSize = pos - offs;
 
@@ -175,17 +179,7 @@
         MBoxEntry entry;
         entry.d->mOffset = offs;
         entry.d->mSeparatorSize = prevSeparator.size();
-
-        // There is always a blank line and a separator line between two 
emails.
-        // Sometimes there are two '\n' characters added to the email (i.e. 
when
-        // the mail self did not end with a '\n' char) and sometimes only one 
to
-        // achieve this. When reading the file it is not possible to see which
-        // was the case.
-        if ( d->mMboxFile.atEnd() ) {
-          entry.d->mMessageSize = msgSize; // We use readLine so there's no 
additional '\n'
-        } else {
-          entry.d->mMessageSize = msgSize - 1;
-        }
+        entry.d->mMessageSize = msgSize - 1;
 
         // Don't add the separator size and the newline up to the message size.
         entry.d->mMessageSize -= prevSeparator.size() + 1;
@@ -450,8 +444,10 @@
     }
 
     line = d->mMboxFile.readLine();
-    while ( !d->isMBoxSeparator( line ) && !d->mMboxFile.atEnd() ) {
+    while ( !d->isMBoxSeparator( line ) ) {
       message += line;
+      if ( d->mMboxFile.atEnd() )
+        break;
       line = d->mMboxFile.readLine();
     }
   } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/kmime/kmime_content.cpp 
new/kdepimlibs-4.7.2/kmime/kmime_content.cpp
--- old/kdepimlibs-4.7.1/kmime/kmime_content.cpp        2011-08-22 
15:22:19.000000000 +0200
+++ new/kdepimlibs-4.7.2/kmime/kmime_content.cpp        2011-10-02 
14:47:53.000000000 +0200
@@ -407,7 +407,12 @@
   bool ok = true;
   QTextCodec *codec =
     KGlobal::charsets()->codecForName( QLatin1String( contentType()->charset() 
), ok );
-
+  if ( !ok  || codec == NULL ) { // no suitable codec found => try local 
settings and hope the best ;-)
+    codec = KGlobal::locale()->codecForEncoding();
+    QByteArray chset = KGlobal::locale()->encoding();
+    contentType()->setCharset( chset );
+  }
+  
   QString s = codec->toUnicode( d_ptr->body.data(), d_ptr->body.length() );
 
   if ( trimText || removeTrailingNewlines ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdepimlibs-4.7.1/kpimtextedit/textedit.cpp 
new/kdepimlibs-4.7.2/kpimtextedit/textedit.cpp
--- old/kdepimlibs-4.7.1/kpimtextedit/textedit.cpp      2011-06-22 
16:28:23.000000000 +0200
+++ new/kdepimlibs-4.7.2/kpimtextedit/textedit.cpp      2011-09-26 
11:37:14.000000000 +0200
@@ -618,7 +618,8 @@
 
 void TextEditPrivate::_k_slotDeleteLine()
 {
-  q->deleteCurrentLine();
+  if ( q->hasFocus() )
+    q->deleteCurrentLine();
 }
 
 void TextEdit::deleteCurrentLine()

continue with "q"...



Remember to have fun...

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

Reply via email to