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 - wstephenson@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
++ * Copyright © 2001-2011 by David Jarvie
+ *
+ * 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
++ * Copyright © 2001-2011 by David Jarvie
+ *
+ * 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
++#include "spinbox2.moc"
++#include "spinbox2_p.moc"
++
++#include
+
+ #include <QMouseEvent>
+ #include <QStyleOptionSpinBox>
+ #include <QGraphicsPixmapItem>
++#include <QPaintEngine>
+ #include <QTimer>
+ #include <QFrame>
+ #include <QBrush>
+@@ -34,10 +38,7 @@
+ #include <QPixmap>
+ #include <QMatrix>
+
+-#include
+-
+-#include "spinbox2.moc"
+-#include "spinbox2_p.moc"
++#include
+
+ /* 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()<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 // ugh
+
++#include
++#include
++
+ #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
++#include
+
+ 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+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org