Hello community, here is the log from the commit of package kdepim4 for openSUSE:Factory checked in at Thu Aug 11 15:56:55 CEST 2011. -------- --- KDE/kdepim4/kdepim4.changes 2011-04-21 22:20:48.000000000 +0200 +++ /mounts/work_src_done/STABLE/kdepim4/kdepim4.changes 2011-08-09 15:09:58.000000000 +0200 @@ -1,0 +2,51 @@ +Tue Aug 9 13:09:15 UTC 2011 - idonmez@novell.com + +- kmail & korganizer are licensed under GPLv2 only because they + link to GPLv2 only libraries, bnc #710584 + +------------------------------------------------------------------- +Fri Aug 5 21:10:16 UTC 2011 - idonmez@novell.com + +- Drop kalarm-disable-rtcwake.patch, we are now whitelisted + +------------------------------------------------------------------- +Thu Aug 4 09:58:50 UTC 2011 - idonmez@novell.com + +- Add kalarm-disable-rtcwake.patch to disable kalarm rtcwake support + until bnc #707723 is resolved + +------------------------------------------------------------------- +Thu Aug 4 08:53:59 UTC 2011 - idonmez@novell.com + +- Add kdepim4-4.7-branch.patch, sync with 4.7 branch + * Memory leak fixes + * Crash fixes +- Drop fix-progressmanager.diff, already in branch update + +------------------------------------------------------------------- +Wed Jul 27 12:47:49 UTC 2011 - cgiboudeaux@gmx.com + +- Update fix-progressmanager.diff. Add commit db0f6aba which is also needed + +------------------------------------------------------------------- +Mon Jul 25 10:16:10 UTC 2011 - cgiboudeaux@gmx.com + +- Add fix-progressmanager.diff +Fixes kde#278112, kde#278235 +(will be part of kdepim 4.7.1) + + +------------------------------------------------------------------- +Fri Jul 22 20:20:31 CEST 2011 - dmueller@suse.de + +- update to 4.7.0 + * Small fixes over KDE 4.7 RC2 + * see http://kde.org/announcements/4.7 for details + + +------------------------------------------------------------------- +Thu Jul 21 12:57:29 UTC 2011 - idonmez@novell.com + +- Update to 4.6.95 + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- 4_4_BRANCH.diff assuan2.diff kdepim-4.4.11.1.tar.bz2 ktimetracker_bnc651155.diff New: ---- kdepim-4.7.0.tar.bz2 kdepim4-4.7-branch.patch make-kmail-faster.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdepim4.spec ++++++ ++++ 702 lines (skipped) ++++ between KDE/kdepim4/kdepim4.spec ++++ and /mounts/work_src_done/STABLE/kdepim4/kdepim4.spec ++++++ akregator-useragent.diff ++++++ --- /var/tmp/diff_new_pack.Q75Iy9/_old 2011-08-11 15:56:27.000000000 +0200 +++ /var/tmp/diff_new_pack.Q75Iy9/_new 2011-08-11 15:56:27.000000000 +0200 @@ -1,13 +1,11 @@ -Index: akregator/src/akregator_part.cpp -=================================================================== ---- akregator/src/akregator_part.cpp.orig +--- akregator/src/akregator_part.cpp +++ akregator/src/akregator_part.cpp -@@ -182,7 +182,7 @@ Part::Part( QWidget *parentWidget, QObje +@@ -264,7 +264,7 @@ Part::Part( QWidget *parentWidget, QObje connect(m_autosaveTimer, SIGNAL(timeout()), this, SLOT(slotSaveFeedList())); m_autosaveTimer->start(5*60*1000); // 5 minutes -- QString useragent = QString( "Akregator/%1; syndication" ).arg( AKREGATOR_VERSION ); -+ QString useragent = QString( "Akregator/%1; syndication SUSE" ).arg( AKREGATOR_VERSION ); +- QString useragent = QString( "Akregator/%1; syndication" ).arg( KDEPIM_VERSION ); ++ QString useragent = QString( "Akregator/%1; syndication SUSE" ).arg( KDEPIM_VERSION ); if( !Settings::customUserAgent().isEmpty() ) useragent = Settings::customUserAgent(); ++++++ desktop-files.diff ++++++ --- /var/tmp/diff_new_pack.Q75Iy9/_old 2011-08-11 15:56:27.000000000 +0200 +++ /var/tmp/diff_new_pack.Q75Iy9/_new 2011-08-11 15:56:27.000000000 +0200 @@ -1,22 +1,28 @@ ---- akonadiconsole/akonadiconsole.desktop.sav 2009-12-14 11:54:45.000000000 +0100 -+++ akonadiconsole/akonadiconsole.desktop 2009-12-19 21:23:12.000000000 +0100 -@@ -77,4 +77,5 @@ Comment[x-test]=xxAkonadi Management and +Index: akonadiconsole/akonadiconsole.desktop +=================================================================== +--- akonadiconsole/akonadiconsole.desktop.orig ++++ akonadiconsole/akonadiconsole.desktop +@@ -90,4 +90,5 @@ Comment[x-test]=xxAkonadi Management and Comment[zh_CN]=用于管理和调试 Akonadi 的控制台 Comment[zh_TW]=Akonadi 管理與除錯主控台 Terminal=false -Categories=Qt;KDE;Development; +Categories=Qt;KDE;Development;Debugger;X-KDE-Utilities-PIM; +Hidden=true ---- ktimetracker/support/ktimetracker.desktop.sav 2009-12-11 00:14:26.000000000 +0100 -+++ ktimetracker/support/ktimetracker.desktop 2009-12-19 21:10:07.000000000 +0100 -@@ -104,4 +104,4 @@ Type=Application +Index: ktimetracker/support/ktimetracker.desktop +=================================================================== +--- ktimetracker/support/ktimetracker.desktop.orig ++++ ktimetracker/support/ktimetracker.desktop +@@ -111,4 +111,4 @@ Type=Application Terminal=false X-KDE-StartupNotify=true X-DBUS-StartupType=Multi -Categories=Qt;KDE;Utility;Office;Monitor;X-KDE-Utilities-PIM; +Categories=Qt;KDE;Utility;X-KDE-Utilities-PIM; ---- kleopatra/kleopatra.desktop.sav 2009-12-14 11:54:41.000000000 +0100 -+++ kleopatra/kleopatra.desktop 2009-12-19 21:10:07.000000000 +0100 +Index: kleopatra/kleopatra.desktop +=================================================================== +--- kleopatra/kleopatra.desktop.orig ++++ kleopatra/kleopatra.desktop @@ -1,8 +1,7 @@ [Desktop Entry] Type=Application ++++++ kdepim-4.4.11.1.tar.bz2 -> kdepim-4.7.0.tar.bz2 ++++++ KDE/kdepim4/kdepim-4.4.11.1.tar.bz2 /mounts/work_src_done/STABLE/kdepim4/kdepim-4.7.0.tar.bz2 differ: char 11, line 1 ++++++ kdepim4-4.7-branch.patch ++++++ ++++ 7718 lines (skipped) ++++++ make-kmail-faster.patch ++++++ diff --git a/messagelist/core/themedelegate.cpp b/messagelist/core/themedelegate.cpp --- a/messagelist/core/themedelegate.cpp +++ b/messagelist/core/themedelegate.cpp @@ -51,8 +51,11 @@ ThemeDelegate::ThemeDelegate( QAbstractItemView * parent ) { mItemView = parent; mTheme = 0; + connect( KGlobalSettings::self(), SIGNAL( kdisplayFontChanged() ), this, SLOT( slotGeneralFontChanged() ) ); } +QString ThemeDelegate::mGeneralFontKey = KGlobalSettings::generalFont().key(); + ThemeDelegate::~ThemeDelegate() { } @@ -87,6 +90,7 @@ void ThemeDelegate::setTheme( const Theme * theme ) break; } mItemView->reset(); + } // FIXME: gcc will refuse to inline these functions loudly complaining @@ -118,6 +122,18 @@ static int cachedFontHeight( const QFont &font ) return fontHeightCache[ fontKey ]; } +static int cachedFontHeightKey( const QFont &font, const QString &fontKey ) +{ + static QHash<QString, int> fontHeightCache; + + if ( !fontHeightCache.contains( fontKey ) ) { + fontHeightCache.insert( fontKey, cachedFontMetrics( font ).height() ); + } + + return fontHeightCache[ fontKey ]; +} + + static inline void paint_right_aligned_elided_text( const QString &text, Theme::ContentItem * ci, QPainter * painter, int &left, int top, int &right, Qt::LayoutDirection layoutDir, const QFont &font ) { painter->setFont( font ); @@ -501,7 +517,8 @@ static inline void compute_size_hint_for_item( Theme::ContentItem * ci, if ( ci->displaysText() ) { const QFont font = ThemeDelegate::itemFont( ci, item ); - const int fontHeight = cachedFontHeight( font ); + const QString fontKey = ThemeDelegate::itemFontKey( ci, item ); + const int fontHeight = cachedFontHeightKey( font, fontKey ); if ( fontHeight > maxh ) maxh = fontHeight; totalw += ci->displaysLongText() ? 128 : 64; @@ -1670,3 +1687,20 @@ QFont ThemeDelegate::itemFont( const Theme::ContentItem *ci, const Item *item ) return KGlobalSettings::generalFont(); } +QString ThemeDelegate::itemFontKey( const Theme::ContentItem *ci, const Item *item ) +{ + if ( ci && ci->useCustomFont() ) + return ci->fontKey(); + + if ( item && ( item->type() == Item::Message ) ) + return static_cast< const MessageItem * >( item )->fontKey(); + + return mGeneralFontKey; +} + +// Store the new fontKey when the generalFont changes. +void ThemeDelegate::slotGeneralFontChanged() +{ + ThemeDelegate::mGeneralFontKey = KGlobalSettings::generalFont().key(); +} + diff --git a/messagelist/core/themedelegate.h b/messagelist/core/themedelegate.h --- a/messagelist/core/themedelegate.h +++ b/messagelist/core/themedelegate.h @@ -44,6 +44,8 @@ class Item; */ class ThemeDelegate : public QStyledItemDelegate { + Q_OBJECT + public: ThemeDelegate( QAbstractItemView * parent ); ~ThemeDelegate(); @@ -51,6 +53,7 @@ public: private: const Theme * mTheme; ///< Shallow pointer to the current theme QAbstractItemView * mItemView; + static QString mGeneralFontKey; QColor mGroupHeaderBackgroundColor; // cache @@ -194,6 +197,9 @@ public: /// return the font to paint given item with, checking global kmail settings and theme settings static QFont itemFont( const Theme::ContentItem *ci, const Item *item ); + /// return the font key to paint given item with, checking global kmail settings and theme settings + static QString itemFontKey( const Theme::ContentItem *ci, const Item *item ); + protected: /** * Returns the Item for the specified model index. Pure virtual: must be reimplemented @@ -211,6 +217,11 @@ protected: */ QSize sizeHint( const QStyleOptionViewItem & option, const QModelIndex & index ) const; +private slots: + /** + * Called when the global fonts change (from systemsettings) + */ + void slotGeneralFontChanged(); }; } // namespace Core diff --git a/messagelist/core/theme.cpp b/messagelist/core/theme.cpp --- a/messagelist/core/theme.cpp +++ b/messagelist/core/theme.cpp @@ -167,6 +167,7 @@ bool Theme::ContentItem::applicableToGroupHeaderItems( Type type ) void Theme::ContentItem::setFont( const QFont &font ) { mFont = font; + mFontKey = font.key(); } void Theme::ContentItem::save( QDataStream &stream ) const diff --git a/messagelist/core/theme.h b/messagelist/core/theme.h --- a/messagelist/core/theme.h +++ b/messagelist/core/theme.h @@ -242,6 +242,7 @@ public: unsigned int mFlags; ///< The flags of the item QFont mFont; ///< The font to use with this content item, meaningful only if displaysText() returns true. + QString mFontKey; ///< The font key to speedup theme positioning. QFont.key() is called too many times otherwise. QColor mCustomColor; ///< The color to use with this content item, meaningful only if canUseCustomColor() return true. public: @@ -420,6 +421,16 @@ public: { return mFont; }; /** + * Returns the font key used by this item. It may be a custom font key set by setFont() + * or the default application font (returned by KGlobalSettings::generalFont()). + * This setting is valid as long as you have called updateFontMetrics() + * with the appropriate paint device. + * It is primary used to avoid to calculate the key every time an item is displayed. + */ + const QString & fontKey() const + { return mFontKey; }; + + /** * Returns the custom color set for this item. * The return value is meaningful only if canUseCustomColor() returns true * returns true and setUseCustomColor( true ) has been called. diff --git a/messagelist/core/messageitem_p.h b/messagelist/core/messageitem_p.h --- a/messagelist/core/messageitem_p.h +++ b/messagelist/core/messageitem_p.h @@ -80,6 +80,11 @@ public: static QFont mFontUnreadMessage; static QFont mFontImportantMessage; static QFont mFontToDoMessage; + static QString mFontKey; + static QString mFontNewMessageKey; + static QString mFontUnreadMessageKey; + static QString mFontImportantMessageKey; + static QString mFontToDoMessageKey; private: diff --git a/messagelist/core/messageitem.h b/messagelist/core/messageitem.h --- a/messagelist/core/messageitem.h +++ b/messagelist/core/messageitem.h @@ -134,6 +134,8 @@ public: QFont font() const; + QString fontKey() const; + SignatureState signatureState() const; void setSignatureState( SignatureState state ); diff --git a/messagelist/core/messageitem.cpp b/messagelist/core/messageitem.cpp --- a/messagelist/core/messageitem.cpp +++ b/messagelist/core/messageitem.cpp @@ -44,6 +44,7 @@ public: QColor mTextColor; QColor mBackgroundColor; QFont mFont; + QString mFontKey; int mPriority; }; @@ -125,6 +126,11 @@ QFont MessageItemPrivate::mFontNewMessage; QFont MessageItemPrivate::mFontUnreadMessage; QFont MessageItemPrivate::mFontImportantMessage; QFont MessageItemPrivate::mFontToDoMessage; +QString MessageItemPrivate::mFontKey; +QString MessageItemPrivate::mFontNewMessageKey; +QString MessageItemPrivate::mFontUnreadMessageKey; +QString MessageItemPrivate::mFontImportantMessageKey; +QString MessageItemPrivate::mFontToDoMessageKey; MessageItemPrivate::MessageItemPrivate( MessageItem* qq ) : ItemPrivate( qq ), @@ -405,6 +411,35 @@ QFont MessageItem::font() const return font; } +QString MessageItem::fontKey() const +{ + Q_D( const MessageItem ); + + // for performance reasons we don't want font retrieval to trigger + // full tags loading, as the font is used for geometry calculation + // and thus this method called for each item + if ( d->tagListInitialized() ) { + const Tag *bestTag = d->bestTag(); + if ( bestTag != 0 && bestTag->font() != QFont() ) { + return bestTag->font().key(); + } + } + + // from KDE3: "important" overrides "new" overrides "unread" overrides "todo" + Akonadi::MessageStatus messageStatus = status(); + if ( messageStatus.isImportant() ) { + return d->mFontImportantMessageKey; + } else if ( !messageStatus.isRead() ) { + return d->mFontUnreadMessageKey; + } else if ( messageStatus.isToAct() ) { + return d->mFontToDoMessageKey; + } else { + return d->mFontKey; + } + +} + + MessageItem::SignatureState MessageItem::signatureState() const { Q_D( const MessageItem ); @@ -580,26 +615,31 @@ void MessageItem::setToDoMessageColor( const QColor &color ) void MessageItem::setGeneralFont( const QFont &font ) { MessageItemPrivate::mFont = font; + MessageItemPrivate::mFontKey = font.key(); } void MessageItem::setNewMessageFont( const QFont &font ) { MessageItemPrivate::mFontNewMessage = font; + MessageItemPrivate::mFontNewMessageKey = font.key(); } void MessageItem::setUnreadMessageFont( const QFont &font ) { MessageItemPrivate::mFontUnreadMessage = font; + MessageItemPrivate::mFontUnreadMessageKey = font.key(); } void MessageItem::setImportantMessageFont( const QFont &font ) { MessageItemPrivate::mFontImportantMessage = font; + MessageItemPrivate::mFontImportantMessageKey = font.key(); } void MessageItem::setToDoMessageFont( const QFont &font ) { MessageItemPrivate::mFontToDoMessage = font; + MessageItemPrivate::mFontToDoMessageKey = font.key(); } FakeItemPrivate::FakeItemPrivate( FakeItem *qq ) : MessageItemPrivate( qq ) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org