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 - [email protected] + +- 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 <[email protected]> ++ * Copyright © 2001-2011 by David Jarvie <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -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 <[email protected]> ++ * Copyright © 2001-2011 by David Jarvie <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -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: [email protected] For additional commands, e-mail: [email protected]
