Hello community,

here is the log from the commit of package kdepim4 for openSUSE:Factory
checked in at Thu Apr 21 13:38:14 CEST 2011.



--------
--- KDE/kdepim4/kdepim4.changes 2011-01-27 21:05:21.000000000 +0100
+++ /mounts/work_src_done/STABLE/kdepim4/kdepim4.changes        2011-04-09 
20:39:24.000000000 +0200
@@ -1,0 +2,14 @@
+Sat Apr  9 17:48:20 UTC 2011 - wstephen...@novell.com
+
+- Add fixes from kdepim 4.4 branch:
+  * Don't show next and previous buttons if the attendee list is empty
+    (bko#262680)
+  * Fix copied text from email includes HTML tags (bko#259468)
+  * Fix spurious Akonadi error dialog - start apps asynchronously
+    when building vs 4.6
+  * Fix potential crash on check (bko#269173)
+  * Make KTimeTracker spinbox look right with Oxygen
+  * Fix tab labels not updating on folder change in KMail
+  * Fix enable/disable/remove buttons in custom template UI in KMail
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


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

Other differences:
------------------
++++++ kdepim4.spec ++++++
--- /var/tmp/diff_new_pack.6oKKD9/_old  2011-04-21 13:37:34.000000000 +0200
+++ /var/tmp/diff_new_pack.6oKKD9/_new  2011-04-21 13:37:34.000000000 +0200
@@ -27,7 +27,7 @@
 Summary:        Base package of kdepim
 Url:            http://www.kde.org
 Version:        4.4.10
-Release:        1
+Release:        6
 Source0:        kdepim-%version.tar.bz2
 Patch:          4_4_BRANCH.diff
 Patch1:         akregator-useragent.diff
@@ -55,7 +55,7 @@
 
 %prep
 %setup -q -n kdepim-%version
-%patch
+%patch -p1
 %patch1
 %patch4
 %patch7

++++++ 4_4_BRANCH.diff ++++++
--- /var/tmp/diff_new_pack.6oKKD9/_old  2011-04-21 13:37:34.000000000 +0200
+++ /var/tmp/diff_new_pack.6oKKD9/_new  2011-04-21 13:37:34.000000000 +0200
@@ -0,0 +1,576 @@
+diff --git a/kaddressbook/main.cpp b/kaddressbook/main.cpp
+index 4c8ca42..200f8ec 100644
+--- a/kaddressbook/main.cpp
++++ b/kaddressbook/main.cpp
+@@ -49,11 +49,13 @@ int main( int argc, char **argv )
+   MainWindow *window = new MainWindow;
+   window->show();
+ 
++#if !KDE_IS_VERSION(4,6,0)
+   if ( !Akonadi::Control::start( window ) ) {
+     //TODO: add message box after string freeze
+     kWarning() << "Unable to start Akonadi server, exit application";
+     return 1;
+   }
++#endif
+ 
+   return app.exec();
+ }
+diff --git a/kalarm/Changelog b/kalarm/Changelog
+index 813130d..e1ffb6b 100644
+--- a/kalarm/Changelog
++++ b/kalarm/Changelog
+@@ -1,6 +1,10 @@
+ KAlarm Change Log
+ 
+-=== Version 2.4.10 --- 2 December 2010 ===
++=== Version 2.4.11 --- 10 February 2011 ===
++- Fix bad borders round left hand buttons of time spinboxes in Oxygen style.
++- Fix initialisation of library global statics.
++
++=== Version 2.4.10 (KDEPIM 4.4.8) --- 2 December 2010 ===
+ - Fix KAlarm showing in system tray at login when configured not to show in 
tray.
+ - Fix working-time-only alarms not triggering if KAlarm is started up outside
+   working hours, after the last trigger time during working hours was missed.
+diff --git a/kalarm/cal/kaeventdata.cpp b/kalarm/cal/kaeventdata.cpp
+index 103e244..e0c5f1a 100644
+--- a/kalarm/cal/kaeventdata.cpp
++++ b/kalarm/cal/kaeventdata.cpp
+@@ -47,58 +47,58 @@ QByteArray KAEventData::icalProductId()
+ // Note that all custom property names are prefixed with X-KDE-KALARM- in the 
calendar file.
+ 
+ // Event properties
+-static const QByteArray FLAGS_PROPERTY("FLAGS");              // 
X-KDE-KALARM-FLAGS property
+-static const QString DATE_ONLY_FLAG        = QLatin1String("DATE");
+-static const QString EMAIL_BCC_FLAG        = QLatin1String("BCC");
+-static const QString CONFIRM_ACK_FLAG      = QLatin1String("ACKCONF");
+-static const QString KORGANIZER_FLAG       = QLatin1String("KORG");
+-static const QString EXCLUDE_HOLIDAYS_FLAG = QLatin1String("EXHOLIDAYS");
+-static const QString WORK_TIME_ONLY_FLAG   = QLatin1String("WORKTIME");
+-static const QString DEFER_FLAG            = QLatin1String("DEFER");   // 
default defer interval for this alarm
+-static const QString LATE_CANCEL_FLAG      = QLatin1String("LATECANCEL");
+-static const QString AUTO_CLOSE_FLAG       = QLatin1String("LATECLOSE");
+-static const QString TEMPL_AFTER_TIME_FLAG = QLatin1String("TMPLAFTTIME");
+-static const QString KMAIL_SERNUM_FLAG     = QLatin1String("KMAIL");
+-
+-static const QByteArray NEXT_RECUR_PROPERTY("NEXTRECUR");     // 
X-KDE-KALARM-NEXTRECUR property
+-static const QByteArray REPEAT_PROPERTY("REPEAT");            // 
X-KDE-KALARM-REPEAT property
+-static const QByteArray ARCHIVE_PROPERTY("ARCHIVE");          // 
X-KDE-KALARM-ARCHIVE property
+-static const QString ARCHIVE_REMINDER_ONCE_TYPE = QLatin1String("ONCE");
+-static const QByteArray LOG_PROPERTY("LOG");                  // 
X-KDE-KALARM-LOG property
+-static const QString xtermURL = QLatin1String("xterm:");
+-static const QString displayURL = QLatin1String("display:");
++const QByteArray KAEventData::FLAGS_PROPERTY("FLAGS");              // 
X-KDE-KALARM-FLAGS property
++const QString    KAEventData::DATE_ONLY_FLAG        = QLatin1String("DATE");
++const QString    KAEventData::EMAIL_BCC_FLAG        = QLatin1String("BCC");
++const QString    KAEventData::CONFIRM_ACK_FLAG      = 
QLatin1String("ACKCONF");
++const QString    KAEventData::KORGANIZER_FLAG       = QLatin1String("KORG");
++const QString    KAEventData::EXCLUDE_HOLIDAYS_FLAG = 
QLatin1String("EXHOLIDAYS");
++const QString    KAEventData::WORK_TIME_ONLY_FLAG   = 
QLatin1String("WORKTIME");
++const QString    KAEventData::DEFER_FLAG            = QLatin1String("DEFER"); 
  // default defer interval for this alarm
++const QString    KAEventData::LATE_CANCEL_FLAG      = 
QLatin1String("LATECANCEL");
++const QString    KAEventData::AUTO_CLOSE_FLAG       = 
QLatin1String("LATECLOSE");
++const QString    KAEventData::TEMPL_AFTER_TIME_FLAG = 
QLatin1String("TMPLAFTTIME");
++const QString    KAEventData::KMAIL_SERNUM_FLAG     = QLatin1String("KMAIL");
++
++const QByteArray KAEventData::NEXT_RECUR_PROPERTY("NEXTRECUR");     // 
X-KDE-KALARM-NEXTRECUR property
++const QByteArray KAEventData::REPEAT_PROPERTY("REPEAT");            // 
X-KDE-KALARM-REPEAT property
++const QByteArray KAEventData::ARCHIVE_PROPERTY("ARCHIVE");          // 
X-KDE-KALARM-ARCHIVE property
++const QString    KAEventData::ARCHIVE_REMINDER_ONCE_TYPE = 
QLatin1String("ONCE");
++const QByteArray KAEventData::LOG_PROPERTY("LOG");                  // 
X-KDE-KALARM-LOG property
++const QString    KAEventData::xtermURL = QLatin1String("xterm:");
++const QString    KAEventData::displayURL = QLatin1String("display:");
+ 
+ // - General alarm properties
+-static const QByteArray TYPE_PROPERTY("TYPE");                // 
X-KDE-KALARM-TYPE property
+-static const QString FILE_TYPE                  = QLatin1String("FILE");
+-static const QString AT_LOGIN_TYPE              = QLatin1String("LOGIN");
+-static const QString REMINDER_TYPE              = QLatin1String("REMINDER");
+-static const QString REMINDER_ONCE_TYPE         = 
QLatin1String("REMINDER_ONCE");
+-static const QString TIME_DEFERRAL_TYPE         = QLatin1String("DEFERRAL");
+-static const QString DATE_DEFERRAL_TYPE         = 
QLatin1String("DATE_DEFERRAL");
+-static const QString DISPLAYING_TYPE            = 
QLatin1String("DISPLAYING");   // used only in displaying calendar
+-static const QString PRE_ACTION_TYPE            = QLatin1String("PRE");
+-static const QString POST_ACTION_TYPE           = QLatin1String("POST");
+-static const QString SOUND_REPEAT_TYPE          = 
QLatin1String("SOUNDREPEAT");
+-static const QByteArray NEXT_REPEAT_PROPERTY("NEXTREPEAT");   // 
X-KDE-KALARM-NEXTREPEAT property
++const QByteArray KAEventData::TYPE_PROPERTY("TYPE");                // 
X-KDE-KALARM-TYPE property
++const QString    KAEventData::FILE_TYPE                  = 
QLatin1String("FILE");
++const QString    KAEventData::AT_LOGIN_TYPE              = 
QLatin1String("LOGIN");
++const QString    KAEventData::REMINDER_TYPE              = 
QLatin1String("REMINDER");
++const QString    KAEventData::REMINDER_ONCE_TYPE         = 
QLatin1String("REMINDER_ONCE");
++const QString    KAEventData::TIME_DEFERRAL_TYPE         = 
QLatin1String("DEFERRAL");
++const QString    KAEventData::DATE_DEFERRAL_TYPE         = 
QLatin1String("DATE_DEFERRAL");
++const QString    KAEventData::DISPLAYING_TYPE            = 
QLatin1String("DISPLAYING");   // used only in displaying calendar
++const QString    KAEventData::PRE_ACTION_TYPE            = 
QLatin1String("PRE");
++const QString    KAEventData::POST_ACTION_TYPE           = 
QLatin1String("POST");
++const QString    KAEventData::SOUND_REPEAT_TYPE          = 
QLatin1String("SOUNDREPEAT");
++const QByteArray KAEventData::NEXT_REPEAT_PROPERTY("NEXTREPEAT");   // 
X-KDE-KALARM-NEXTREPEAT property
+ // - Display alarm properties
+-static const QByteArray FONT_COLOUR_PROPERTY("FONTCOLOR");    // 
X-KDE-KALARM-FONTCOLOR property
++const QByteArray KAEventData::FONT_COLOUR_PROPERTY("FONTCOLOR");    // 
X-KDE-KALARM-FONTCOLOR property
+ // - Email alarm properties
+-static const QByteArray EMAIL_ID_PROPERTY("EMAILID");         // 
X-KDE-KALARM-EMAILID property
++const QByteArray KAEventData::EMAIL_ID_PROPERTY("EMAILID");         // 
X-KDE-KALARM-EMAILID property
+ // - Audio alarm properties
+-static const QByteArray VOLUME_PROPERTY("VOLUME");            // 
X-KDE-KALARM-VOLUME property
+-static const QByteArray SPEAK_PROPERTY("SPEAK");              // 
X-KDE-KALARM-SPEAK property
++const QByteArray KAEventData::VOLUME_PROPERTY("VOLUME");            // 
X-KDE-KALARM-VOLUME property
++const QByteArray KAEventData::SPEAK_PROPERTY("SPEAK");              // 
X-KDE-KALARM-SPEAK property
+ // - Command alarm properties
+-static const QByteArray CANCEL_ON_ERROR_PROPERTY("ERRCANCEL");// 
X-KDE-KALARM-ERRCANCEL property
++const QByteArray KAEventData::CANCEL_ON_ERROR_PROPERTY("ERRCANCEL");// 
X-KDE-KALARM-ERRCANCEL property
+ 
+ // Event status strings
+-static const QString DISABLED_STATUS            = QLatin1String("DISABLED");
++const QString    KAEventData::DISABLED_STATUS            = 
QLatin1String("DISABLED");
+ 
+ // Displaying event ID identifier
+-static const QString DISP_DEFER = QLatin1String("DEFER");
+-static const QString DISP_EDIT  = QLatin1String("EDIT");
++const QString    KAEventData::DISP_DEFER = QLatin1String("DEFER");
++const QString    KAEventData::DISP_EDIT  = QLatin1String("EDIT");
+ 
+-static const QString SC = QLatin1String(";");
++const QString    KAEventData::SC = QLatin1String(";");
+ 
+ struct AlarmData
+ {
+diff --git a/kalarm/cal/kaeventdata.h b/kalarm/cal/kaeventdata.h
+index 04c4a48..8604822 100644
+--- a/kalarm/cal/kaeventdata.h
++++ b/kalarm/cal/kaeventdata.h
+@@ -1,7 +1,7 @@
+ /*
+  *  kaeventdata.h  -  represents calendar alarm and event data
+  *  Program:  kalarm
+- *  Copyright © 2001-2010 by David Jarvie <djar...@kde.org>
++ *  Copyright © 2001-2011 by David Jarvie <djar...@kde.org>
+  *
+  *  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
+@@ -518,6 +518,47 @@ public:
+               bool               mDisplayingEdit;   // show Edit button 
(applies to displaying calendar only)
+               bool               mEnabled;          // false if event is 
disabled
+               mutable bool       mUpdated;          // event has been updated 
but not written to calendar file
++
++              static const QByteArray FLAGS_PROPERTY;
++              static const QString DATE_ONLY_FLAG;
++              static const QString EMAIL_BCC_FLAG;
++              static const QString CONFIRM_ACK_FLAG;
++              static const QString KORGANIZER_FLAG;
++              static const QString EXCLUDE_HOLIDAYS_FLAG;
++              static const QString WORK_TIME_ONLY_FLAG;
++              static const QString DEFER_FLAG;
++              static const QString LATE_CANCEL_FLAG;
++              static const QString AUTO_CLOSE_FLAG;
++              static const QString TEMPL_AFTER_TIME_FLAG;
++              static const QString KMAIL_SERNUM_FLAG;
++              static const QByteArray NEXT_RECUR_PROPERTY;
++              static const QByteArray REPEAT_PROPERTY;
++              static const QByteArray ARCHIVE_PROPERTY;
++              static const QString ARCHIVE_REMINDER_ONCE_TYPE;
++              static const QByteArray LOG_PROPERTY;
++              static const QString xtermURL;
++              static const QString displayURL;
++              static const QByteArray TYPE_PROPERTY;
++              static const QString FILE_TYPE;
++              static const QString AT_LOGIN_TYPE;
++              static const QString REMINDER_TYPE;
++              static const QString REMINDER_ONCE_TYPE;
++              static const QString TIME_DEFERRAL_TYPE;
++              static const QString DATE_DEFERRAL_TYPE;
++              static const QString DISPLAYING_TYPE;
++              static const QString PRE_ACTION_TYPE;
++              static const QString POST_ACTION_TYPE;
++              static const QString SOUND_REPEAT_TYPE;
++              static const QByteArray NEXT_REPEAT_PROPERTY;
++              static const QByteArray FONT_COLOUR_PROPERTY;
++              static const QByteArray EMAIL_ID_PROPERTY;
++              static const QByteArray VOLUME_PROPERTY;
++              static const QByteArray SPEAK_PROPERTY;
++              static const QByteArray CANCEL_ON_ERROR_PROPERTY;
++              static const QString DISABLED_STATUS;
++              static const QString DISP_DEFER;
++              static const QString DISP_EDIT;
++              static const QString SC;
+ };
+ 
+ #endif // KAEVENTDATA_H
+diff --git a/kalarm/kalarm.h b/kalarm/kalarm.h
+index 7790770..63333b2 100644
+--- a/kalarm/kalarm.h
++++ b/kalarm/kalarm.h
+@@ -1,7 +1,7 @@
+ /*
+  *  kalarm.h  -  global header file
+  *  Program:  kalarm
+- *  Copyright © 2001-2010 by David Jarvie <djar...@kde.org>
++ *  Copyright © 2001-2011 by David Jarvie <djar...@kde.org>
+  *
+  *  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
+@@ -23,7 +23,7 @@
+ 
+ #undef QT3_SUPPORT
+ 
+-#define KALARM_VERSION "2.4.10"
++#define KALARM_VERSION "2.4.11"
+ #define KALARM_NAME "KAlarm"
+ #define KALARM_DBUS_SERVICE  "org.kde.kalarm"  // D-Bus service name of 
KAlarm application
+ 
+diff --git a/kalarm/lib/spinbox2.cpp b/kalarm/lib/spinbox2.cpp
+index 7c85291..cc10882 100644
+--- a/kalarm/lib/spinbox2.cpp
++++ b/kalarm/lib/spinbox2.cpp
+@@ -20,11 +20,15 @@
+ 
+ #include "kalarm.h"
+ 
+-#include <stdlib.h>
++#include "spinbox2.moc"
++#include "spinbox2_p.moc"
++
++#include <kdebug.h>
+ 
+ #include <QMouseEvent>
+ #include <QStyleOptionSpinBox>
+ #include <QGraphicsPixmapItem>
++#include <QPaintEngine>
+ #include <QTimer>
+ #include <QFrame>
+ #include <QBrush>
+@@ -34,10 +38,7 @@
+ #include <QPixmap>
+ #include <QMatrix>
+ 
+-#include <kdebug.h>
+-
+-#include "spinbox2.moc"
+-#include "spinbox2_p.moc"
++#include <stdlib.h>
+ 
+ /* List of styles which look better using spin buttons mirrored left-to-right.
+  * This is needed for some styles which use rounded corners.
+@@ -47,6 +48,8 @@ static const char* mirrorStyles[] = {
+       0    // list terminator
+ };
+ static bool isMirrorStyle(const QStyle*);
++static bool isOxygenStyle(const QWidget*);
++static QRect spinBoxEditFieldRect(const QWidget*, const QStyleOptionSpinBox&);
+ 
+ static inline QPixmap grabWidget(QWidget* w, QRect r = QRect())
+ {
+@@ -402,9 +405,9 @@ void SpinBox2::getMetrics() const
+                     | udStyle->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxDown);
+       if (style()->inherits("PlastikStyle"))
+               butRect.setLeft(butRect.left() - 1);    // Plastik excludes 
left border from spin widget rectangle
+-      QRect r = mSpinbox->style()->subControlRect(QStyle::CC_SpinBox, 
&option, QStyle::SC_SpinBoxEditField);
++      QRect r = spinBoxEditFieldRect(mSpinbox, option);
+       wSpinboxHide = mRightToLeft ? 
mSpinbox->style()->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxFrame).right() - r.right() : r.left();
+-      QRect edRect = udStyle->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxEditField);
++      QRect edRect = spinBoxEditFieldRect(mUpdown2, option);
+       int butx;
+       if (isMirrorStyle(udStyle))
+       {
+@@ -565,7 +568,7 @@ void SpinMirror::setFrame()
+       QGraphicsScene* c = scene();
+       QStyleOptionSpinBox option;
+       option.initFrom(mMainSpinbox);
+-      QRect r = mMainSpinbox->style()->subControlRect(QStyle::CC_SpinBox, 
&option, QStyle::SC_SpinBoxEditField);
++      QRect r = spinBoxEditFieldRect(mMainSpinbox, option);
+       bool rtl = QApplication::isRightToLeft();
+       QPixmap p;
+       if (mMirrored)
+@@ -575,17 +578,30 @@ void SpinMirror::setFrame()
+       }
+       else
+       {
+-              int x = rtl ? r.right() - 2 : r.left() + 2;
+-              p = grabWidget(mMainSpinbox, QRect(x, 0, 1, 
height())).scaled(size());
++              // Grab a single pixel wide vertical slice through the main 
spinbox, between the
++              // frame and edit field.
++              bool oxygen  = 
mMainSpinbox->style()->inherits("Oxygen::Style"); // KDE >= 4.4 Oxygen style
++              bool oxygen1 = mMainSpinbox->style()->inherits("OxygenStyle");  
 // KDE <= 4.3 Oxygen style
++              int editOffsetY = oxygen ? 5 : oxygen1 ? 6 : 2;   // offset to 
edit field
++              int editOffsetX = (oxygen || oxygen1) ? (KDE::version() >= 
KDE_MAKE_VERSION(4,6,0) ? 4 : 2) : 2;   // offset to edit field
++              int x = rtl ? r.right() - editOffsetX : r.left() + editOffsetX;
++              p = grabWidget(mMainSpinbox, QRect(x, 0, 1, height()));
++              // Blot out edit field stuff from the middle of the slice
++              QPixmap dot = grabWidget(mMainSpinbox, QRect(x, editOffsetY, 1, 
1));
++              QPaintEngine* pe = p.paintEngine();
++              pe->drawTiledPixmap(QRectF(0, editOffsetY, 1, height() - 
2*editOffsetY), dot, QPointF(0, 0));
++              // Horizontally fill the mirror widget with the vertical slice
++              p = p.scaled(size());
++              // Grab the left hand border of the main spinbox, and draw it 
into the mirror widget.
+               QRect endr = rect();
+               if (rtl)
+               {
+                       int mr = mMainSpinbox->width() - 1;
+-                      endr.setWidth(mr - r.right() + 2);
++                      endr.setWidth(mr - r.right() + editOffsetX);
+                       endr.moveRight(mr);
+               }
+               else
+-                      endr.setWidth(r.left() + 2);
++                      endr.setWidth(r.left() + editOffsetX);
+               x = rtl ? width() - endr.width() : 0;
+               mMainSpinbox->render(&p, QPoint(x, 0), endr, 
QWidget::DrawWindowBackground | QWidget::DrawChildren | QWidget::IgnoreMask);
+       }
+@@ -599,8 +615,8 @@ void SpinMirror::setButtons()
+       mSpinbox->initStyleOption(option);
+       QStyle* st = mSpinbox->style();
+       QRect r = st->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxUp)
+-              | st->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxDown);
+-      if (st->inherits("OxygenStyle"))
++                      | st->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxDown);
++      if (isOxygenStyle(mSpinbox))
+       {
+               // They don't use all their height, so shorten them to 
+               // allow frame highlighting to work properly.
+@@ -617,7 +633,7 @@ void SpinMirror::setButtonPos(const QPoint& pos)
+       //kDebug()<<pos;
+       int x = pos.x();
+       int y = pos.y();
+-      if (style()->inherits("OxygenStyle"))
++      if (isOxygenStyle(this))
+       {
+               // Oxygen spin buttons don't use all their height. Prevent
+               // the top overlapping the frame highlighting. Their height
+@@ -745,3 +761,18 @@ static bool isMirrorStyle(const QStyle* style)
+       return false;
+ }
+ 
++static bool isOxygenStyle(const QWidget* w)
++{
++      return w->style()->inherits("Oxygen::Style")  ||  
w->style()->inherits("OxygenStyle");
++}
++
++static QRect spinBoxEditFieldRect(const QWidget* w, const 
QStyleOptionSpinBox& option)
++{
++      QRect r = w->style()->subControlRect(QStyle::CC_SpinBox, &option, 
QStyle::SC_SpinBoxEditField);
++      if (isOxygenStyle(w))
++      {
++              int xadjust = (KDE::version() >= KDE_MAKE_VERSION(4,6,0)) ? 3 : 
2;
++              r.adjust(xadjust, 2, -xadjust, -2);
++      }
++      return r;
++}
+diff --git a/kmail/customtemplates.cpp b/kmail/customtemplates.cpp
+index ab486b7..f6f221f 100644
+--- a/kmail/customtemplates.cpp
++++ b/kmail/customtemplates.cpp
+@@ -233,7 +233,7 @@ void CustomTemplates::load()
+     };
+   }
+ 
+-  mRemove->setEnabled( mList->topLevelItemCount() > 0 );
++  mRemove->setEnabled( mList->topLevelItemCount() > 0  && 
mList->currentItem() );
+ }
+ 
+ void CustomTemplates::save()
+@@ -330,6 +330,7 @@ void CustomTemplates::slotListSelectionChanged()
+   QTreeWidgetItem *item = mList->currentItem();
+   if ( item ) {
+     mEditFrame->setEnabled( true );
++    mRemove->setEnabled( true );
+     CustomTemplateItem *vitem = mItemList[ mList->currentItem()->text( 1 ) ];
+     if ( vitem ) {
+ 
+diff --git a/kmail/kmmainwidget.cpp b/kmail/kmmainwidget.cpp
+index a31973a..10b14e4 100644
+--- a/kmail/kmmainwidget.cpp
++++ b/kmail/kmmainwidget.cpp
+@@ -165,6 +165,9 @@ using KMail::TemplateParser;
+ 
+ #include <errno.h> // ugh
+ 
++#include <akonadi/control.h>
++#include <akonadi/servermanager.h>
++
+ #include "kmmainwidget.moc"
+ 
+ K_GLOBAL_STATIC( KMMainWidget::PtrList, theMainWidgetList )
+@@ -186,6 +189,10 @@ KMMainWidget::KMMainWidget( QWidget *parent, 
KXMLGUIClient *aGUIClient,
+     mVacationIndicatorActive( false ),
+     mGoToFirstUnreadMessageInSelectedFolder( false )
+ {
++#if KDE_IS_VERSION(4,6,0)
++  Akonadi::Control::widgetNeedsAkonadi(this);
++  Akonadi::ServerManager::start();
++#endif
+   // must be the first line of the constructor:
+   mStartupDone = false;
+   mWasEverShown = false;
+diff --git a/kmail/main.cpp b/kmail/main.cpp
+index f39ca5f..c2dd1c3 100644
+--- a/kmail/main.cpp
++++ b/kmail/main.cpp
+@@ -145,12 +145,14 @@ int main(int argc, char *argv[])
+   app.setEventLoopReached();
+   app.delayedInstanceCreation();
+ 
++#if !KDE_IS_VERSION(4,6,0)
+   // Start Akonadi
+   if ( !Akonadi::Control::start( kmkernel->getKMMainWidget() ) ) {
+     //TODO: add message box after string freeze
+     kWarning() << "Unable to start Akonadi server, exit application";
+     return 1;
+   }
++#endif
+ 
+   // Go!
+   int ret = qApp->exec();
+diff --git a/kmail/messagelistview/pane.cpp b/kmail/messagelistview/pane.cpp
+index f79b896..afd2f24 100644
+--- a/kmail/messagelistview/pane.cpp
++++ b/kmail/messagelistview/pane.cpp
+@@ -169,6 +169,28 @@ bool Pane::isFolderOpen( KMFolder * fld ) const
+   return messageListViewWidgetWithFolder( fld ) != 0;
+ }
+ 
++void Pane::changeFolderName( KMFolder *fld, Core::Widget *w )
++{
++  if ( w && fld )
++  {
++    setTabText( indexOf( w ), fld->label() );
++  }
++}
++
++void Pane::changeFolderIcon( KMFolder *fld, Core::Widget *w )
++{
++  if ( w && fld )
++  {
++    QIcon icon;
++    FolderViewItem * fvi = mMainWidget->mainFolderView()->findItemByFolder( 
fld );
++    if ( fvi )
++      icon = SmallIcon( fvi->normalIcon() );
++    else
++      icon = QIcon(); // FIXME: find a nicer empty icon
++    setTabIcon( indexOf(w), icon );
++  }
++}
++
+ void Pane::setCurrentFolder( KMFolder *fld, bool preferEmptyTab, 
Core::PreSelectionMode preSelectionMode, const QString &overrideLabel )
+ {
+   // This function is quite critical, mainly because of the "appearance"
+diff --git a/kmail/messagelistview/pane.h b/kmail/messagelistview/pane.h
+index fe2efba..fa09a32 100644
+--- a/kmail/messagelistview/pane.h
++++ b/kmail/messagelistview/pane.h
+@@ -25,6 +25,7 @@
+ #include <QList>
+ 
+ #include <messagelist/core/enums.h>
++#include <messagelist/core/widgetbase.h>
+ 
+ class KMMessage;
+ class KMMsgBase;
+@@ -91,6 +92,8 @@ protected:
+   QToolButton * mNewTabButton;       ///< The "New Tab" button in the top 
left corner
+   QToolButton * mCloseTabButton;     ///< The "Close Tab" button in the top 
right corner
+ public:
++  void changeFolderName( KMFolder *fld, MessageList::Core::Widget *w );
++  void changeFolderIcon( KMFolder *fld, MessageList::Core::Widget *w );
+ 
+   /**
+    * Returns the KMMainWidget this Pane is currently bound to
+diff --git a/kmail/messagelistview/widget.cpp 
b/kmail/messagelistview/widget.cpp
+index 5fefb07..22526d7 100644
+--- a/kmail/messagelistview/widget.cpp
++++ b/kmail/messagelistview/widget.cpp
+@@ -114,6 +114,19 @@ void Widget::setFolder( KMFolder * fld, const QIcon 
&icon, Core::PreSelectionMod
+   // Set the storage _after_ setting the icon so it can be overridden
+   // from inside setStorageModel().
+   setStorageModel( fld ? new StorageModel( fld ) : 0, preSelectionMode );
++  connect(fld, SIGNAL( nameChanged() ), this, SLOT( slotNameChanged() ) );
++  connect(fld, SIGNAL( iconsChanged() ), this, SLOT( slotIconsChanged() ) );
++  
++}
++
++void Widget::slotIconsChanged()
++{
++  mPane->changeFolderIcon( folder(), this );
++}
++
++void Widget::slotNameChanged()
++{
++  mPane->changeFolderName( folder(), this );
+ }
+ 
+ KMFolder * Widget::folder() const
+diff --git a/kmail/messagelistview/widget.h b/kmail/messagelistview/widget.h
+index 795c5eb..c8ff188 100644
+--- a/kmail/messagelistview/widget.h
++++ b/kmail/messagelistview/widget.h
+@@ -417,6 +417,8 @@ private:
+ 
+ private slots:
+   void animateIcon();
++  void slotNameChanged();
++  void slotIconsChanged();
+ 
+ };
+ 
+diff --git a/kmail/popaccount.cpp b/kmail/popaccount.cpp
+index 191b39d..8a03ece 100644
+--- a/kmail/popaccount.cpp
++++ b/kmail/popaccount.cpp
+@@ -959,11 +959,13 @@ void PopAccount::slotData( KIO::Job* job, const 
QByteArray &data)
+            .subs( numBytesToRead/1024 ).subs( mLogin ).subs( mHost )
+            .toString();
+       }
+-      mMailCheckProgressItem->setStatus( msg );
+-      mMailCheckProgressItem->setProgress(
+-        (numBytesToRead <= 100) ? 50  // We never know what the server tells 
us
+-        // This way of dividing is required for > 21MB of mail
+-        : (numBytesRead / (numBytesToRead / 100)) );
++      if( mMailCheckProgressItem ) {
++          mMailCheckProgressItem->setStatus( msg );
++          mMailCheckProgressItem->setProgress(
++           (numBytesToRead <= 100) ? 50  // We never know what the server 
tells us
++           // This way of dividing is required for > 21MB of mail
++           : (numBytesRead / (numBytesToRead / 100)) );
++      }
+     }
+     return;
+   }
+diff --git a/kontact/src/main.cpp b/kontact/src/main.cpp
+index 356aa57..cb4a235 100644
+--- a/kontact/src/main.cpp
++++ b/kontact/src/main.cpp
+@@ -199,9 +199,11 @@ int main( int argc, char **argv )
+ 
+   KontactApp app;
+ 
++#if !KDE_IS_VERSION(4,6,0)
+   // KDE 4.4: do akonadi startup before creating any window, since creating
+   // the window loads kmail. In 4.5 we'll do this startup async instead.
+   Akonadi::Control::start( 0 );
++#endif
+ 
+   // Qt doesn't treat the system tray as a window, and therefore Qt would quit
+   // the event loop when an error message is clicked away while Kontact is in 
the
+diff --git a/messageviewer/vcardviewer.cpp b/messageviewer/vcardviewer.cpp
+index b0e8e3b..9ccd1e4 100644
+--- a/messageviewer/vcardviewer.cpp
++++ b/messageviewer/vcardviewer.cpp
+@@ -56,13 +56,14 @@ VCardViewer::VCardViewer(QWidget *parent, const 
QByteArray& vCard)
+     if ( mAddresseeList.size() <= 1 ) {
+       showButton(User2, false);
+       showButton(User3, false);
+-    }
+-    else
++    } else {
+       enableButton(User3, false);
+-  }
+-  else {
++    }
++  } else {
+     mAddresseeView->setPlainText(i18n("Failed to parse vCard."));
+     enableButton(User1, false);
++    showButton(User2, false);
++    showButton(User3, false);
+   }
+   connect( this, SIGNAL( user1clicked() ), SLOT( slotUser1() ) );
+   connect( this, SIGNAL( user2clicked() ), SLOT( slotUser2() ) );


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



Remember to have fun...

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

Reply via email to