diff -Nru kde4libs-4.7.90/CMakeLists.txt kde4libs-4.7.95/CMakeLists.txt --- kde4libs-4.7.90/CMakeLists.txt 2011-12-03 09:51:52.000000000 +0000 +++ kde4libs-4.7.95/CMakeLists.txt 2011-12-21 01:19:25.000000000 +0000 @@ -10,9 +10,9 @@ set (KDE_VERSION_MAJOR 4) set (KDE_VERSION_MINOR 7) -set (KDE_VERSION_RELEASE 90) +set (KDE_VERSION_RELEASE 95) set (KDE_VERSION "${KDE_VERSION_MAJOR}.${KDE_VERSION_MINOR}.${KDE_VERSION_RELEASE}" ) -set (KDE_VERSION_STRING "${KDE_VERSION} (4.8 Beta2 (4.7.90)") +set (KDE_VERSION_STRING "${KDE_VERSION} (4.8 RC1 (4.7.95)") set (KDE_DISTRIBUTION_TEXT "compiled sources" CACHE STRING "Indicate the distribution in bug reports" ) diff -Nru kde4libs-4.7.90/debian/changelog kde4libs-4.7.95/debian/changelog --- kde4libs-4.7.90/debian/changelog 2011-12-21 13:17:14.000000000 +0000 +++ kde4libs-4.7.95/debian/changelog 2011-12-26 19:47:08.000000000 +0000 @@ -1,3 +1,14 @@ +kde4libs (4:4.7.95-0ubuntu1) precise; urgency=low + + [ Philip Muškovac ] + * New upstream release candidate + - update kdelibs5-data.install + + [ Felix Geyer ] + * Update symbols files. + + -- Philip Muškovac Fri, 23 Dec 2011 20:22:04 +0100 + kde4libs (4:4.7.90-0ubuntu1) precise; urgency=low * New upstream beta release diff -Nru kde4libs-4.7.90/debian/kdelibs5-data.install kde4libs-4.7.95/debian/kdelibs5-data.install --- kde4libs-4.7.90/debian/kdelibs5-data.install 2011-12-13 12:34:24.000000000 +0000 +++ kde4libs-4.7.95/debian/kdelibs5-data.install 2011-12-26 19:47:08.000000000 +0000 @@ -104,8 +104,6 @@ usr/share/kde4/apps/kconf_update/kioslave.upd usr/share/kde4/apps/kconf_update/ksslcertificatemanager.upd usr/share/kde4/apps/kconf_update/ksslcertificatemanager.upd.sh -usr/share/kde4/apps/kconf_update/plasma_popupapplet_fix_groups.pl -usr/share/kde4/apps/kconf_update/plasma_popupapplet_fix_groups.upd usr/share/kde4/apps/kconf_update/proxytype.pl usr/share/kde4/apps/kconf_update/useragent.pl usr/share/kde4/apps/kdeui/about/bar-bottom-left.png diff -Nru kde4libs-4.7.90/debian/libkde3support4.symbols kde4libs-4.7.95/debian/libkde3support4.symbols --- kde4libs-4.7.90/debian/libkde3support4.symbols 2011-12-13 11:56:57.000000000 +0000 +++ kde4libs-4.7.95/debian/libkde3support4.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.6.90 amd64 +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkde3support.so.4 libkde3support4 #MINVER# * Build-Depends-Package: kdelibs5-dev _ZN10K3DockArea11qt_metacallEN11QMetaObject4CallEiPPv@Base 4:4.3.4 @@ -1424,7 +1424,7 @@ _ZNK12K3DockWidget9getWidgetEv@Base 4:4.3.4 _ZNK12K3DockWidget9mayBeHideEv@Base 4:4.3.4 _ZNK12K3DockWidget9mayBeShowEv@Base 4:4.3.4 - (optional=templinst|arch=armel kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.3 + (optional=templinst|arch=armel armhf kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.3 _ZNK13K3AboutDialog10metaObjectEv@Base 4:4.3.4 _ZNK13K3AboutWidget10metaObjectEv@Base 4:4.3.4 _ZNK13K3ActiveLabel10metaObjectEv@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libkdecore5.symbols kde4libs-4.7.95/debian/libkdecore5.symbols --- kde4libs-4.7.90/debian/libkdecore5.symbols 2011-12-13 13:08:17.000000000 +0000 +++ kde4libs-4.7.95/debian/libkdecore5.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.7.90 amd64 +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkdecore.so.5 libkdecore5 #MINVER# | libkdecore5 #MINVER#, kde-runtime * Build-Depends-Package: kdelibs5-dev @@ -370,7 +370,7 @@ _ZN12KConfigGroup11deleteEntryERK7QString6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.3.4 _ZN12KConfigGroup11deleteGroupE6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.3.4 _ZN12KConfigGroup11markAsCleanEv@Base 4:4.3.4 - (optional=templinst|arch=armel mips mipsel s390)_ZN12KConfigGroup14writeListCheckIiEEvPKcRK5QListIT_E6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.3 + (optional=templinst|arch=armel armhf mips mipsel s390)_ZN12KConfigGroup14writeListCheckIiEEvPKcRK5QListIT_E6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.3 _ZN12KConfigGroup14writePathEntryEPKcRK11QStringList6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.3.4 _ZN12KConfigGroup14writePathEntryEPKcRK7QString6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.3.4 _ZN12KConfigGroup14writePathEntryERK7QStringRK11QStringList6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.3.4 @@ -2929,7 +2929,7 @@ _ZNK12KConfigGroup10hasDefaultERK7QString@Base 4:4.3.4 _ZNK12KConfigGroup11isImmutableEv@Base 4:4.3.4 _ZNK12KConfigGroup12hasGroupImplERK10QByteArray@Base 4:4.3.4 - (optional=templinst|arch=armel mips mipsel s390)_ZNK12KConfigGroup13readListCheckIiEE5QListIT_EPKcRKS3_@Base 4:4.3.4 + (optional=templinst|arch=armel armhf mips mipsel s390)_ZNK12KConfigGroup13readListCheckIiEE5QListIT_EPKcRKS3_@Base 4:4.3.4 _ZNK12KConfigGroup13readPathEntryEPKcRK11QStringList@Base 4:4.3.4 _ZNK12KConfigGroup13readPathEntryEPKcRK7QString@Base 4:4.3.4 _ZNK12KConfigGroup13readPathEntryERK7QStringRK11QStringList@Base 4:4.3.4 @@ -2953,7 +2953,7 @@ _ZNK12KConfigGroup8entryMapEv@Base 4:4.3.4 _ZNK12KConfigGroup9groupImplERK10QByteArray@Base 4:4.3.4 _ZNK12KConfigGroup9groupListEv@Base 4:4.3.4 - (optional=templinst|arch=armel kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIiEET_PKcRKS1_@Base 4:4.6.2 + (optional=templinst|arch=armel armhf kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIiEET_PKcRKS1_@Base 4:4.6.2 _ZNK12KConfigGroup9readEntryEPKcRK11QStringList@Base 4:4.3.4 _ZNK12KConfigGroup9readEntryEPKcRK5QListI8QVariantE@Base 4:4.3.4 _ZNK12KConfigGroup9readEntryEPKcRK7QString@Base 4:4.3.4 @@ -2964,9 +2964,9 @@ _ZNK12KConfigGroup9readEntryERK7QStringRK5QListI8QVariantE@Base 4:4.3.4 _ZNK12KConfigGroup9readEntryERK7QStringRK8QVariant@Base 4:4.3.4 _ZNK12KConfigGroup9readEntryERK7QStringS2_@Base 4:4.3.4 - (optional=templinst|arch=armel ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc)_ZNK12KConfigGroup9readEntryIbEET_PKcRKS1_@Base 4:4.6.2 + (optional=templinst|arch=armel armhf ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc)_ZNK12KConfigGroup9readEntryIbEET_PKcRKS1_@Base 4:4.6.2 (optional=templinst|arch=ia64 sparc)_ZNK12KConfigGroup9readEntryIiEET_PKcRKS1_@Base 4:4.6.2 - (optional=templinst|arch=armel hppa mips mipsel s390 sparc)_ZNK12KConfigGroup9readEntryIiEET_RK7QStringRKS1_@Base 4:4.4.2 + (optional=templinst|arch=armel armhf hppa mips mipsel s390 sparc)_ZNK12KConfigGroup9readEntryIiEET_RK7QStringRKS1_@Base 4:4.4.2 _ZNK12KDesktopFile10readDeviceEv@Base 4:4.3.4 _ZNK12KDesktopFile11actionGroupERK7QString@Base 4:4.3.4 _ZNK12KDesktopFile11hasLinkTypeEv@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libkdeui5.symbols kde4libs-4.7.95/debian/libkdeui5.symbols --- kde4libs-4.7.90/debian/libkdeui5.symbols 2011-12-13 13:08:21.000000000 +0000 +++ kde4libs-4.7.95/debian/libkdeui5.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.7.90 amd64 +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkdeui.so.5 libkdeui5 #MINVER# | libkdeui5 #MINVER#, kde-runtime * Build-Depends-Package: kdelibs5-dev @@ -2954,7 +2954,7 @@ _ZN16KCategorizedView7Private13blockPositionERK7QString@Base 4:4.4.0 _ZN16KCategorizedView7Private21regenerateAllElementsEv@Base 4:4.4.0 _ZN16KCategorizedView7Private30_k_slotCollapseOrExpandClickedE11QModelIndex@Base 4:4.4.0 - (arch=armel)_ZN16KCategorizedView7Private5BlockaSERKS1_@Base 4:4.7.0 + (arch=armel armhf)_ZN16KCategorizedView7Private5BlockaSERKS1_@Base 4:4.7.90 _ZN16KCategorizedView7Private9blockRectERK11QModelIndex@Base 4:4.4.95 _ZN16KCategorizedView7PrivateC1EPS_@Base 4:4.3.4 _ZN16KCategorizedView7PrivateC2EPS_@Base 4:4.3.4 @@ -5553,7 +5553,7 @@ _ZNK12KColorScheme10decorationENS_14DecorationRoleE@Base 4:4.3.4 _ZNK12KColorScheme10foregroundENS_14ForegroundRoleE@Base 4:4.3.4 _ZNK12KColorScheme5shadeENS_9ShadeRoleE@Base 4:4.3.4 - (optional=templinst|arch=amd64 armel i386 mips mipsel powerpc s390)_ZNK12KConfigGroup13readListCheckIiEE5QListIT_EPKcRKS3_@Base 4:4.3.4 + (optional=templinst)_ZNK12KConfigGroup13readListCheckIiEE5QListIT_EPKcRKS3_@Base 4:4.3.4 (optional=templinst|arch=ia64 sparc)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.2 (optional=templinst|arch=ia64 sparc)_ZNK12KConfigGroup9readCheckIiEET_PKcRKS1_@Base 4:4.6.2 (optional=templinst|arch=ia64 sparc)_ZNK12KConfigGroup9readEntryI6QColorEET_PKcRKS2_@Base 4:4.6.2 diff -Nru kde4libs-4.7.90/debian/libkfile4.symbols kde4libs-4.7.95/debian/libkfile4.symbols --- kde4libs-4.7.90/debian/libkfile4.symbols 2011-12-13 11:56:57.000000000 +0000 +++ kde4libs-4.7.95/debian/libkfile4.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.7.0 amd64 armel i386 powerpc +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkfile.so.4 libkfile4 #MINVER# * Build-Depends-Package: kdelibs5-dev _ZN11KFileWidget10readConfigER12KConfigGroup@Base 4:4.4.0 @@ -43,7 +43,7 @@ _ZN11KFileWidgetD2Ev@Base 4:4.3.4 (optional=templinst|arch=ia64 sparc)_ZN12KConfigGroup10writeCheckIiEEvPKcRKT_6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.2 #MISSING: 4:4.7.0# (optional=templinst|arch=armel)_ZN12KConfigGroup10writeEntryIbEEvRK7QStringRKT_6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.3 - (optional=templinst|arch=armel mips mipsel s390 sparc)_ZN12KConfigGroup10writeEntryIiEEvRK7QStringRKT_6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.2 + (optional=templinst|arch=armel armhf mips mipsel s390 sparc)_ZN12KConfigGroup10writeEntryIiEEvRK7QStringRKT_6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.2 _ZN12KDirOperator10completionERK7QString@Base 4:4.3.4 _ZN12KDirOperator10createViewEP7QWidgetN5KFile8FileViewE@Base 4:4.3.4 _ZN12KDirOperator10readConfigERK12KConfigGroup@Base 4:4.3.4 @@ -466,7 +466,7 @@ _ZNK11KFileWidget7baseUrlEv@Base 4:4.3.4 _ZNK11KFileWidget7toolBarEv@Base 4:4.3.4 _ZNK11KFileWidget8okButtonEv@Base 4:4.3.4 - (optional=templinst|arch=armel mips mipsel s390 sparc)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.4.2 + (optional=templinst|arch=armel armhf mips mipsel s390 sparc)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.4.2 (optional=templinst|arch=amd64 i386 powerpc)_ZNK12KConfigGroup9readEntryIiEET_RK7QStringRKS1_@Base 4:4.6.1 _ZNK12KDirOperator10isSelectedERK9KFileItem@Base 4:4.3.4 _ZNK12KDirOperator10metaObjectEv@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libkhtml5.symbols kde4libs-4.7.95/debian/libkhtml5.symbols --- kde4libs-4.7.90/debian/libkhtml5.symbols 2011-12-13 11:56:57.000000000 +0000 +++ kde4libs-4.7.95/debian/libkhtml5.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.7.0 amd64 armel i386 powerpc +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkhtml.so.5 libkhtml5 #MINVER# * Build-Depends-Package: kdelibs5-dev _ZN11KHTMLGlobal10finalCheckEv@Base 4:4.3.4 @@ -1836,10 +1836,10 @@ _ZN3KJS19InternalFunctionImpD0Ev@Base 4:4.6.90 _ZN3KJS19InternalFunctionImpD1Ev@Base 4:4.6.90 _ZN3KJS19InternalFunctionImpD2Ev@Base 4:4.6.90 - (arch=!armel !ia64 !sparc)_ZN3KJS4List6appendEPNS_7JSValueE@Base 4:4.6.3 - (arch=!armel)_ZN3KJS6JSCell4markEv@Base 4:4.3.4 - (arch=!armel)_ZN3KJS6JSCellD0Ev@Base 4:4.3.4 - (arch=!armel)_ZN3KJS6JSCellD1Ev@Base 4:4.3.4 + (arch=!armel !armhf !ia64 !sparc)_ZN3KJS4List6appendEPNS_7JSValueE@Base 4:4.6.3 + (arch=!armel !armhf)_ZN3KJS6JSCell4markEv@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCellD0Ev@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCellD1Ev@Base 4:4.3.4 (arch=amd64 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390)_ZN3KJS6JSCellD2Ev@Base 4:4.6.3 _ZN3KJS7JSValueD0Ev@Base 4:4.3.4 _ZN3KJS7JSValueD1Ev@Base 4:4.3.4 @@ -3085,7 +3085,7 @@ _ZTIN3DOM9DomSharedE@Base 4:4.3.4 _ZTIN3DOM9TextEventE@Base 4:4.3.4 _ZTIN3KJS14JSGlobalObjectE@Base 4:4.3.4 - (arch=!armel)_ZTIN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTIN3KJS6JSCellE@Base 4:4.3.4 _ZTIN3KJS7JSValueE@Base 4:4.3.4 _ZTIN5khtml10ChildFrameE@Base 4:4.3.4 _ZTIN5khtml10MouseEventE@Base 4:4.3.4 @@ -3187,7 +3187,7 @@ _ZTSN3DOM9DomSharedE@Base 4:4.3.4 _ZTSN3DOM9TextEventE@Base 4:4.3.4 _ZTSN3KJS14JSGlobalObjectE@Base 4:4.3.4 - (arch=!armel)_ZTSN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTSN3KJS6JSCellE@Base 4:4.3.4 _ZTSN3KJS7JSValueE@Base 4:4.3.4 _ZTSN5khtml10ChildFrameE@Base 4:4.3.4 _ZTSN5khtml10MouseEventE@Base 4:4.3.4 @@ -3289,7 +3289,7 @@ _ZTVN3DOM9DomSharedE@Base 4:4.3.4 _ZTVN3DOM9TextEventE@Base 4:4.3.4 _ZTVN3KJS14JSGlobalObjectE@Base 4:4.3.4 - (arch=!armel)_ZTVN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTVN3KJS6JSCellE@Base 4:4.3.4 _ZTVN3KJS7JSValueE@Base 4:4.3.4 _ZTVN5khtml10ChildFrameE@Base 4:4.3.4 _ZTVN5khtml10MouseEventE@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libkjsapi4.symbols kde4libs-4.7.95/debian/libkjsapi4.symbols --- kde4libs-4.7.90/debian/libkjsapi4.symbols 2011-12-13 11:56:57.000000000 +0000 +++ kde4libs-4.7.95/debian/libkjsapi4.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.7.0 amd64 armel i386 powerpc +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkjs.so.4 libkjsapi4 #MINVER# * Build-Depends-Package: kdelibs5-dev _ZN3KJS10Identifier11addSlowCaseEPNS_7UString3RepE@Base 4:4.3.4 @@ -116,7 +116,7 @@ _ZN3KJS14JSGlobalObjectD0Ev@Base 4:4.6.90 _ZN3KJS14JSGlobalObjectD1Ev@Base 4:4.6.90 _ZN3KJS14JSGlobalObjectD2Ev@Base 4:4.6.90 - (arch=!armel)_ZN3KJS14ScopeChainLink5derefEv@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS14ScopeChainLink5derefEv@Base 4:4.3.4 _ZN3KJS14UnicodeSupport18setToLowerFunctionEPFiPtiRS1_E@Base 4:4.3.4 _ZN3KJS14UnicodeSupport18setToUpperFunctionEPFiPtiRS1_E@Base 4:4.3.4 _ZN3KJS14UnicodeSupport19setIdentPartCheckerEPFbiE@Base 4:4.3.4 @@ -503,9 +503,9 @@ _ZN3KJS14JSGlobalObjectD0Ev@Base 4:4.6.90 _ZN3KJS14JSGlobalObjectD1Ev@Base 4:4.6.90 _ZN3KJS14JSGlobalObjectD2Ev@Base 4:4.6.90 - (arch=!armel)_ZN3KJS6JSCell4markEv@Base 4:4.3.4 - (arch=!armel)_ZN3KJS6JSCellD0Ev@Base 4:4.3.4 - (arch=!armel)_ZN3KJS6JSCellD1Ev@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCell4markEv@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCellD0Ev@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCellD1Ev@Base 4:4.3.4 (arch=amd64 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390)_ZN3KJS6JSCellD2Ev@Base 4:4.6.3 _ZN3KJS7JSValueD0Ev@Base 4:4.3.4 _ZN3KJS7JSValueD1Ev@Base 4:4.3.4 @@ -563,12 +563,12 @@ _ZNK9KJSResult5valueEv@Base 4:4.3.4 _ZTIN14WTFNoncopyable11NoncopyableE@Base 4:4.3.4 _ZTIN3KJS14JSGlobalObjectE@Base 4:4.3.4 - (arch=!armel)_ZTIN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTIN3KJS6JSCellE@Base 4:4.3.4 _ZTIN3KJS7JSValueE@Base 4:4.3.4 _ZTSN14WTFNoncopyable11NoncopyableE@Base 4:4.3.4 _ZTSN3KJS14JSGlobalObjectE@Base 4:4.3.4 - (arch=!armel)_ZTSN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTSN3KJS6JSCellE@Base 4:4.3.4 _ZTSN3KJS7JSValueE@Base 4:4.3.4 _ZTVN3KJS14JSGlobalObjectE@Base 4:4.3.4 - (arch=!armel)_ZTVN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTVN3KJS6JSCellE@Base 4:4.3.4 _ZTVN3KJS7JSValueE@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libkjsembed4.symbols kde4libs-4.7.95/debian/libkjsembed4.symbols --- kde4libs-4.7.90/debian/libkjsembed4.symbols 2011-12-13 13:08:22.000000000 +0000 +++ kde4libs-4.7.95/debian/libkjsembed4.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,7 +1,8 @@ -# SymbolsHelper-Confirmed: 4:4.7.90 amd64 +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libkjsembed.so.4 libkjsembed4 #MINVER# * Build-Depends-Package: kdelibs5-dev - (optional=templinst)_Z13qvariant_castI26QUiTranslatableStringValueET_RK8QVariant@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_Z13qVariantValueI26QUiTranslatableStringValueET_RK8QVariant@Base 4:4.7.90 + (optional=templinst|arch=!powerpc)_Z13qvariant_castI26QUiTranslatableStringValueET_RK8QVariant@Base 4:4.7.90 (optional=templinst)_Z13qvariant_castI5QIconET_RK8QVariant@Base 4:4.7.90 (optional=templinst)_Z21qMetaTypeDeleteHelperI26QUiTranslatableStringValueEvPT_@Base 4:4.7.90 (optional=templinst)_Z21qMetaTypeDeleteHelperI5QListIP7QWidgetEEvPT_@Base 4:4.7.90 @@ -946,9 +947,9 @@ _ZN3KJS10IdentifierD1Ev@Base 4:4.6.90 _ZN3KJS10IdentifierD2Ev@Base 4:4.6.90 (arch=ia64 sparc)_ZN3KJS4List6appendEPNS_7JSValueE@Base 4:4.6.2 - (arch=!armel)_ZN3KJS6JSCell4markEv@Base 4:4.3.4 - (arch=!armel)_ZN3KJS6JSCellD0Ev@Base 4:4.3.4 - (arch=!armel)_ZN3KJS6JSCellD1Ev@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCell4markEv@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCellD0Ev@Base 4:4.3.4 + (arch=!armel !armhf)_ZN3KJS6JSCellD1Ev@Base 4:4.3.4 (arch=amd64 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390)_ZN3KJS6JSCellD2Ev@Base 4:4.6.3 _ZN3KJS7JSValueD0Ev@Base 4:4.3.4 _ZN3KJS7JSValueD1Ev@Base 4:4.3.4 @@ -1005,6 +1006,7 @@ (optional=templinst)_ZN5QHashIPKN13QFormInternal20QAbstractFormBuilderEPNS0_17QFormBuilderExtraEE13duplicateNodeEPN9QHashData4NodeEPv@Base 4:4.7.90 (optional=templinst)_ZN5QListI10QByteArrayE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListI10QByteArrayE6appendERKS0_@Base 4:4.7.90 + (optional=templinst|arch=!amd64 !i386)_ZN5QListI10QByteArrayE7reserveEi@Base 4:4.7.90 (optional=templinst)_ZN5QListI5QPairIN2Qt12ItemDataRoleE7QStringEE13detach_helperEi@Base 4:4.7.90 (optional=templinst)_ZN5QListI5QPairIN2Qt12ItemDataRoleE7QStringEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListI5QPairIN2Qt12ItemDataRoleE7QStringEE6appendERKS4_@Base 4:4.7.90 @@ -1022,10 +1024,11 @@ (optional=templinst)_ZN5QListI5QPairIS0_IN2Qt12ItemDataRoleES2_E7QStringEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListI5QPairIS0_IN2Qt12ItemDataRoleES2_E7QStringEED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListI7QStringE5clearEv@Base 4:4.7.90 - (optional=templinst)_ZN5QListI7QStringE6appendERKS0_@Base 4:4.7.90 + (optional=templinst|arch=!armel !armhf)_ZN5QListI7QStringE6appendERKS0_@Base 4:4.7.90 (optional=templinst)_ZN5QListI7QStringED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListI7QStringED2Ev@Base 4:4.7.90 - (optional=templinst)_ZN5QListIP11QLayoutItemE13detach_helperEv@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIP11QLayoutItemE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=!armel !armhf)_ZN5QListIP11QLayoutItemE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIP11QLayoutItemE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIP11QLayoutItemE6appendERKS1_@Base 4:4.7.90 (optional=templinst)_ZN5QListIP11QLayoutItemED1Ev@Base 4:4.7.90 @@ -1039,24 +1042,27 @@ (optional=templinst)_ZN5QListIP7QActionE13detach_helperEi@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QActionED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QActionED2Ev@Base 4:4.7.90 - (optional=templinst)_ZN5QListIP7QObjectE13detach_helperEv@Base 4:4.7.90 + (optional=templinst|arch=!armel !armhf)_ZN5QListIP7QObjectE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QObjectE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QObjectE6appendERKS1_@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QObjectED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QObjectED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QObjectEpLERKS2_@Base 4:4.7.90 - (optional=templinst)_ZN5QListIP7QWidgetE13detach_helperEv@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIP7QWidgetE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=!armel !armhf)_ZN5QListIP7QWidgetE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QWidgetE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QWidgetE6appendERKS1_@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QWidgetED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIP7QWidgetED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal10DomIncludeEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal10DomIncludeEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal10DomIncludeEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal10DomIncludeEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal10DomIncludeEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal10DomIncludeEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal10DomIncludeEED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEE13detach_helperEi@Base 4:4.7.90 - (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEE13detach_helperEv@Base 4:4.7.90 + (optional=templinst|arch=!armel !armhf)_ZN5QListIPN13QFormInternal11DomPropertyEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEE6appendERKS2_@Base 4:4.7.90 @@ -1064,115 +1070,155 @@ (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEEC2ERKS3_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomPropertyEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal11DomResourceEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal11DomResourceEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomResourceEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomResourceEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomResourceEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomResourceEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal11DomResourceEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal12DomActionRefEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal12DomActionRefEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomActionRefEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomActionRefEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomActionRefEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomActionRefEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomActionRefEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal12DomColorRoleEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal12DomColorRoleEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomColorRoleEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomColorRoleEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomColorRoleEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomColorRoleEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal12DomColorRoleEED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomConnectionEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal13DomConnectionEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomConnectionEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomConnectionEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomConnectionEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomConnectionEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomConnectionEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal13DomLayoutItemEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal13DomLayoutItemEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomLayoutItemEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomLayoutItemEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomLayoutItemEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomLayoutItemEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomLayoutItemEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal13DomWidgetDataEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal13DomWidgetDataEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomWidgetDataEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomWidgetDataEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomWidgetDataEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomWidgetDataEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal13DomWidgetDataEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal14DomActionGroupEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal14DomActionGroupEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomActionGroupEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomActionGroupEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomActionGroupEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomActionGroupEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomActionGroupEED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomButtonGroupEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal14DomButtonGroupEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomButtonGroupEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomButtonGroupEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomButtonGroupEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomButtonGroupEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal14DomButtonGroupEED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomCustomWidgetEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal15DomCustomWidgetEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomCustomWidgetEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomCustomWidgetEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomCustomWidgetEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomCustomWidgetEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomCustomWidgetEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal15DomGradientStopEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal15DomGradientStopEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomGradientStopEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomGradientStopEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomGradientStopEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomGradientStopEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomGradientStopEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal15DomPropertyDataEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal15DomPropertyDataEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomPropertyDataEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomPropertyDataEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomPropertyDataEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomPropertyDataEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal15DomPropertyDataEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal17DomConnectionHintEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal17DomConnectionHintEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal17DomConnectionHintEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal17DomConnectionHintEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal17DomConnectionHintEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal17DomConnectionHintEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal17DomConnectionHintEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal30DomStringPropertySpecificationEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal6DomRowEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal6DomRowEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal6DomRowEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal6DomRowEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal6DomRowEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal6DomRowEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal6DomRowEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal7DomItemEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal7DomItemEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal7DomItemEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal7DomItemEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal7DomItemEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal7DomItemEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal7DomItemEED2Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomColorEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal8DomColorEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomColorEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomColorEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomColorEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomColorEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomColorEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal8DomImageEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal8DomImageEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomImageEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomImageEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomImageEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomImageEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal8DomImageEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal9DomActionEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal9DomActionEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomActionEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomActionEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomActionEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomActionEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomActionEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal9DomColumnEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal9DomColumnEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomColumnEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomColumnEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomColumnEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomColumnEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomColumnEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal9DomLayoutEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal9DomLayoutEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomLayoutEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomLayoutEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomLayoutEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomLayoutEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomLayoutEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal9DomScriptEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal9DomScriptEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomScriptEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomScriptEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomScriptEE6appendERKS2_@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomScriptEED1Ev@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomScriptEED2Ev@Base 4:4.7.90 + (optional=templinst|arch=armel armhf)_ZN5QListIPN13QFormInternal9DomWidgetEE13detach_helperEi@Base 4:4.7.90 + (optional=templinst|arch=powerpc)_ZN5QListIPN13QFormInternal9DomWidgetEE13detach_helperEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomWidgetEE18detach_helper_growEii@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomWidgetEE5clearEv@Base 4:4.7.90 (optional=templinst)_ZN5QListIPN13QFormInternal9DomWidgetEE6appendERKS2_@Base 4:4.7.90 @@ -1183,8 +1229,8 @@ _ZN7QStringC1ERK13QLatin1String@Base 4:4.7.90 _ZN7QStringC2ERK13QLatin1String@Base 4:4.7.90 (optional=templinst)_ZN7QVectorI19QXmlStreamAttributeE7reallocEii@Base 4:4.7.90 - (optional=templinst)_ZN7QVectorI5QPairId6QColorEED1Ev@Base 4:4.7.90 - (optional=templinst)_ZN7QVectorI5QPairId6QColorEED2Ev@Base 4:4.7.90 + (optional=templinst|subst)_ZN7QVectorI5QPairI{qreal}6QColorEED1Ev@Base 4:4.7.90 + (optional=templinst|subst)_ZN7QVectorI5QPairI{qreal}6QColorEED2Ev@Base 4:4.7.90 _ZN8KJSEmbed10extractIntEPN3KJS9ExecStateEPNS0_7JSValueEi@Base 4:4.3.4 _ZN8KJSEmbed10extractIntEPN3KJS9ExecStateERKNS0_4ListEii@Base 4:4.3.4 _ZN8KJSEmbed11ActionGroup10bindMethodEPN3KJS9ExecStateER11PointerBase@Base 4:4.3.4 @@ -1538,9 +1584,9 @@ (optional=templinst)_ZNK5QHashI7QStringP7QActionE8findNodeERKS0_Pj@Base 4:4.7.90 (optional=templinst)_ZNK5QHashI7QStringPN13QFormInternal11DomPropertyEE5valueERKS0_@Base 4:4.7.90 (optional=templinst)_ZNK5QHashI7QStringPN13QFormInternal11DomPropertyEE8findNodeERKS0_Pj@Base 4:4.7.90 - (optional=templinst)_ZNK5QHashIP6QLabel7QStringE8findNodeERKS1_Pj@Base 4:4.7.90 - (optional=templinst)_ZNK5QHashIP7QObjectbE8findNodeERKS1_Pj@Base 4:4.7.90 - (optional=templinst)_ZNK5QHashIPKN13QFormInternal20QAbstractFormBuilderEPNS0_17QFormBuilderExtraEE8findNodeERKS3_Pj@Base 4:4.7.90 + (optional=templinst|arch=amd64)_ZNK5QHashIP6QLabel7QStringE8findNodeERKS1_Pj@Base 4:4.7.90 + (optional=templinst|arch=amd64)_ZNK5QHashIP7QObjectbE8findNodeERKS1_Pj@Base 4:4.7.90 + (optional=templinst|arch=amd64)_ZNK5QHashIPKN13QFormInternal20QAbstractFormBuilderEPNS0_17QFormBuilderExtraEE8findNodeERKS3_Pj@Base 4:4.7.90 _ZNK8KJSEmbed13ObjectBinding4typeEv@Base 4:4.3.4 (optional=templinst|arch=ia64 sparc)_ZNK8KJSEmbed13ObjectBinding6objectI7QObjectEEPT_v@Base 4:4.6.2 _ZNK8KJSEmbed13ObjectBinding8toStringEPN3KJS9ExecStateE@Base 4:4.3.4 @@ -1581,7 +1627,7 @@ _ZTIN13QFormInternal22TranslatingTextBuilderE@Base 4:4.7.90 _ZTIN13QFormInternal26QAbstractFormBuilderGadgetE@Base 4:4.7.90 _ZTIN14WTFNoncopyable11NoncopyableE@Base 4:4.3.4 - (arch=!armel)_ZTIN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTIN3KJS6JSCellE@Base 4:4.3.4 _ZTIN3KJS7JSValueE@Base 4:4.3.4 _ZTIN8KJSEmbed11ActionGroupE@Base 4:4.3.4 _ZTIN8KJSEmbed11SlotBindingE@Base 4:4.3.4 @@ -1612,7 +1658,7 @@ _ZTSN13QFormInternal22TranslatingTextBuilderE@Base 4:4.7.90 _ZTSN13QFormInternal26QAbstractFormBuilderGadgetE@Base 4:4.7.90 _ZTSN14WTFNoncopyable11NoncopyableE@Base 4:4.3.4 - (arch=!armel)_ZTSN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTSN3KJS6JSCellE@Base 4:4.3.4 _ZTSN3KJS7JSValueE@Base 4:4.3.4 _ZTSN8KJSEmbed11ActionGroupE@Base 4:4.3.4 _ZTSN8KJSEmbed11SlotBindingE@Base 4:4.3.4 @@ -1642,7 +1688,7 @@ _ZTVN13QFormInternal20QAbstractFormBuilderE@Base 4:4.7.90 _ZTVN13QFormInternal22TranslatingTextBuilderE@Base 4:4.7.90 _ZTVN13QFormInternal26QAbstractFormBuilderGadgetE@Base 4:4.7.90 - (arch=!armel)_ZTVN3KJS6JSCellE@Base 4:4.3.4 + (arch=!armel !armhf)_ZTVN3KJS6JSCellE@Base 4:4.3.4 _ZTVN3KJS7JSValueE@Base 4:4.3.4 _ZTVN8KJSEmbed11ActionGroupE@Base 4:4.3.4 _ZTVN8KJSEmbed11SlotBindingE@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libknewstuff2-4.symbols kde4libs-4.7.95/debian/libknewstuff2-4.symbols --- kde4libs-4.7.90/debian/libknewstuff2-4.symbols 2011-12-13 11:56:57.000000000 +0000 +++ kde4libs-4.7.95/debian/libknewstuff2-4.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 4:4.6.90 amd64 +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libknewstuff2.so.4 libknewstuff2-4 #MINVER# * Build-Depends-Package: kdelibs5-dev _ZN3KNS10CoreEngine10cacheEntryEPNS_5EntryE@Base 4:4.3.4 @@ -239,7 +239,7 @@ _ZN3KNS8ProviderC2Ev@Base 4:4.3.4 _ZN3KNS8ProviderD1Ev@Base 4:4.3.4 _ZN3KNS8ProviderD2Ev@Base 4:4.3.4 - (optional=templinst|arch=armel kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.2 + (optional=templinst|arch=armel armhf kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.2 _ZNK3KNS10CoreEngine10metaObjectEv@Base 4:4.3.4 _ZNK3KNS10CoreEngine13componentNameEv@Base 4:4.3.4 _ZNK3KNS12Installation10customNameEv@Base 4:4.3.4 diff -Nru kde4libs-4.7.90/debian/libplasma3.symbols kde4libs-4.7.95/debian/libplasma3.symbols --- kde4libs-4.7.90/debian/libplasma3.symbols 2011-12-13 13:08:27.000000000 +0000 +++ kde4libs-4.7.95/debian/libplasma3.symbols 2011-12-26 19:47:08.000000000 +0000 @@ -1,9 +1,9 @@ -# SymbolsHelper-Confirmed: 4:4.7.90 amd64 +# SymbolsHelper-Confirmed: 4:4.7.90 amd64 armel armhf i386 powerpc libplasma.so.3 libplasma3 #MINVER# * Build-Depends-Package: kdelibs5-dev (optional=templinst|arch=ia64 sparc)_ZN12KConfigGroup10writeEntryIiEEvPKcRKT_6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.2 - (optional=templinst|arch=amd64 armel i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390)_ZN12KConfigGroup14writeListCheckI7QStringEEvPKcRK5QListIT_E6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.2 - (optional=templinst)_ZN12KConfigGroup14writeListCheckIdEEvPKcRK5QListIT_E6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.7.3 + (optional=templinst)_ZN12KConfigGroup14writeListCheckI7QStringEEvPKcRK5QListIT_E6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.6.2 + (optional=templinst|arch=!i386|subst)_ZN12KConfigGroup14writeListCheckI{qreal}EEvPKcRK5QListIT_E6QFlagsIN11KConfigBase15WriteConfigFlagEE@Base 4:4.7.3 _ZN5Jolie11MetaService11loadServiceERK7QStringS3_@Base 4:4.4.4-2~ _ZN5Jolie11MetaService13unloadServiceERK7QString@Base 4:4.4.4-2~ _ZN5Jolie11MetaService14addRedirectionERK7QStringS3_RKNS_5ValueES6_@Base 4:4.4.4-2~ @@ -2044,8 +2044,8 @@ _ZN6Plasma9WallpaperD0Ev@Base 4:4.4.4-2~ _ZN6Plasma9WallpaperD1Ev@Base 4:4.4.4-2~ _ZN6Plasma9WallpaperD2Ev@Base 4:4.4.4-2~ - (optional=templinst|arch=amd64 armel i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390|subst)_ZNK12KConfigGroup13readListCheckI{qreal}EE5QListIT_EPKcRKS3_@Base 4:4.6.1 - (optional=templinst|arch=armel kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.2 + (optional=templinst|subst)_ZNK12KConfigGroup13readListCheckI{qreal}EE5QListIT_EPKcRKS3_@Base 4:4.6.1 + (optional=templinst|arch=armel armhf kfreebsd-amd64 kfreebsd-i386)_ZNK12KConfigGroup9readCheckIbEET_PKcRKS1_@Base 4:4.6.2 _ZNK5Jolie11MetaService14loadedServicesEv@Base 4:4.4.4-2~ _ZNK5Jolie11MetaService9isRunningEv@Base 4:4.4.4-2~ _ZNK5Jolie12PendingReply10isFinishedEv@Base 4:4.4.4-2~ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/data/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/data/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/file/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/file/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/ftp/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/ftp/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/help/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/help/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/http/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/http/index.cache.bz2 differ diff -Nru kde4libs-4.7.90/doc/kioslave/http/index.docbook kde4libs-4.7.95/doc/kioslave/http/index.docbook --- kde4libs-4.7.90/doc/kioslave/http/index.docbook 2011-07-27 18:34:31.000000000 +0000 +++ kde4libs-4.7.95/doc/kioslave/http/index.docbook 2011-12-21 00:14:57.000000000 +0000 @@ -26,9 +26,6 @@ URL. http://www.kde.org. - See the manual: http. - - https is http encapsulated in a SSL/TLS stream. SSL is the Secure Sockets Layer protocol, a security protocol that provides communications privacy over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/mailto/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/mailto/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/rlogin/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/rlogin/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/telnet/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/telnet/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/kioslave/webdav/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/kioslave/webdav/index.cache.bz2 differ Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/doc/sonnet/index.cache.bz2 and /tmp/sX73c1GR3v/kde4libs-4.7.95/doc/sonnet/index.cache.bz2 differ diff -Nru kde4libs-4.7.90/experimental/CMakeLists.txt kde4libs-4.7.95/experimental/CMakeLists.txt --- kde4libs-4.7.90/experimental/CMakeLists.txt 2011-07-27 18:34:31.000000000 +0000 +++ kde4libs-4.7.95/experimental/CMakeLists.txt 2011-12-21 00:14:57.000000000 +0000 @@ -23,4 +23,3 @@ add_subdirectory(libkdeclarative) -macro_optional_add_subdirectory(libkactivities) diff -Nru kde4libs-4.7.90/kdecore/jobs/kjob.cpp kde4libs-4.7.95/kdecore/jobs/kjob.cpp --- kde4libs-4.7.90/kdecore/jobs/kjob.cpp 2011-07-27 18:34:32.000000000 +0000 +++ kde4libs-4.7.95/kdecore/jobs/kjob.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -64,6 +64,10 @@ KJob::~KJob() { + if (!d_ptr->isFinished) { + emit finished(this); + } + delete d_ptr->speedTimer; delete d_ptr->uiDelegate; delete d_ptr; @@ -103,6 +107,7 @@ bool KJob::kill( KillVerbosity verbosity ) { + Q_D(KJob); if ( doKill() ) { setError( KilledJobError ); @@ -114,6 +119,7 @@ else { // If we are displaying a progress dialog, remove it first. + d->isFinished = true; emit finished(this); if ( isAutoDelete() ) diff -Nru kde4libs-4.7.90/kdecore/kernel/kstandarddirs.cpp kde4libs-4.7.95/kdecore/kernel/kstandarddirs.cpp --- kde4libs-4.7.90/kdecore/kernel/kstandarddirs.cpp 2011-08-06 10:43:35.000000000 +0000 +++ kde4libs-4.7.95/kdecore/kernel/kstandarddirs.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -407,7 +407,8 @@ if (!copy.endsWith(QLatin1Char('/'))) copy += QLatin1Char('/'); - QStringList& rels = d->m_relatives[type]; // find or insert + QByteArray typeBa = type; + QStringList& rels = d->m_relatives[typeBa]; // find or insert if (!rels.contains(copy)) { if (priority) @@ -415,8 +416,8 @@ else rels.append(copy); // clean the caches - d->m_dircache.remove(type); - d->m_savelocations.remove(type); + d->m_dircache.remove(typeBa); + d->m_savelocations.remove(typeBa); return true; } return false; @@ -433,15 +434,16 @@ if (copy.at(copy.length() - 1) != QLatin1Char('/')) copy += QLatin1Char('/'); - QStringList &paths = d->m_absolutes[type]; + QByteArray typeBa = type; + QStringList &paths = d->m_absolutes[typeBa]; if (!paths.contains(copy)) { if (priority) paths.prepend(copy); else paths.append(copy); // clean the caches - d->m_dircache.remove(type); - d->m_savelocations.remove(type); + d->m_dircache.remove(typeBa); + d->m_savelocations.remove(typeBa); return true; } return false; @@ -2029,8 +2031,8 @@ const QString key = it2.key(); if (key.startsWith(QLatin1String("dir_"))) { // generate directory list, there may be more than 1. - QStringList dirs = (*it2).split(QString(QLatin1Char(','))); - QStringList::Iterator sIt(dirs.begin()); + const QStringList dirs = (*it2).split(QString(QLatin1Char(','))); + QStringList::ConstIterator sIt(dirs.begin()); QString resType = key.mid(4); for (; sIt != dirs.end(); ++sIt) { diff -Nru kde4libs-4.7.90/kdecore/localization/all_languages.desktop kde4libs-4.7.95/kdecore/localization/all_languages.desktop --- kde4libs-4.7.90/kdecore/localization/all_languages.desktop 2011-10-11 14:41:54.000000000 +0000 +++ kde4libs-4.7.95/kdecore/localization/all_languages.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -16075,6 +16075,7 @@ Name[pt_BR]=Uigur Name[ro]=Uigură Name[ru]=Уйгурский +Name[se]=Uiguragiella Name[si]=උයිගුර් Name[sk]=Ujgurčina Name[sr]=ујгурски @@ -17081,6 +17082,7 @@ Name[pt_BR]=Idioma de teste do KDE Name[ro]=Limbă de test KDE Name[ru]=Тестовый язык KDE +Name[se]=KDE-geahččalangiella Name[sk]=Testovací jazyk KDE Name[sr]=пробни језик Name[sr@ijekavian]=пробни језик diff -Nru kde4libs-4.7.90/kdecore/localization/entry.desktop kde4libs-4.7.95/kdecore/localization/entry.desktop --- kde4libs-4.7.90/kdecore/localization/entry.desktop 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kdecore/localization/entry.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -36,6 +36,7 @@ Name[pt_BR]=Inglês dos EUA Name[ro]=Engleză SUA Name[ru]=Английский (США) +Name[se]=Amerihkálaš eŋgelasgiella Name[si]=එ.ජ. ඉංග්‍රීසි Name[sk]=Americká angličtina Name[sr]=амерички енглески diff -Nru kde4libs-4.7.90/kdecore/localization/klocale_kde.cpp kde4libs-4.7.95/kdecore/localization/klocale_kde.cpp --- kde4libs-4.7.90/kdecore/localization/klocale_kde.cpp 2011-09-26 09:41:11.000000000 +0000 +++ kde4libs-4.7.95/kdecore/localization/klocale_kde.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -1894,7 +1894,10 @@ // Remove group separators bool groupOk = true; - str = parseDigitGroup(str, thousandsSeparator(), decimalSymbol(), numericDigitGrouping(), &groupOk); + if(str.contains(thousandsSeparator())) { + str = parseDigitGroup(str, thousandsSeparator(), decimalSymbol(), + numericDigitGrouping(), &groupOk); + } if (!groupOk) { if (ok) { @@ -2013,7 +2016,10 @@ // Remove group separators bool groupOk = true; - str = parseDigitGroup(str, monetaryThousandsSeparator(), monetaryDecimalSymbol(), monetaryDigitGrouping(), &groupOk); + if(str.contains(monetaryThousandsSeparator())) { + str = parseDigitGroup(str, monetaryThousandsSeparator(), monetaryDecimalSymbol(), + monetaryDigitGrouping(), &groupOk); + } if (!groupOk) { if (ok) { diff -Nru kde4libs-4.7.90/kdecore/tests/klocaletest.cpp kde4libs-4.7.95/kdecore/tests/klocaletest.cpp --- kde4libs-4.7.90/kdecore/tests/klocaletest.cpp 2011-09-26 09:41:11.000000000 +0000 +++ kde4libs-4.7.95/kdecore/tests/klocaletest.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -180,9 +180,13 @@ QVERIFY(!ok); QCOMPARE(locale.readNumber(QString("123,456,789.01"), &ok), 0.0); QVERIFY(!ok); - QCOMPARE(locale.readNumber(QString("123456789"), &ok), 0.0); + QCOMPARE(locale.readNumber(QString("123456789"), &ok), 123456789.0); + QVERIFY(ok); + QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 123456789.01); + QVERIFY(ok); + QCOMPARE(locale.readNumber(QString("123456,789"), &ok), 0.0); QVERIFY(!ok); - QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 0.0); + QCOMPARE(locale.readNumber(QString("123456,789.01"), &ok), 0.0); QVERIFY(!ok); //Test it parses correctly with an empty separator. @@ -204,6 +208,14 @@ QVERIFY(ok); QCOMPARE(locale.readNumber(QString("123 456 789.01"), &ok), 123456789.01); QVERIFY(ok); + QCOMPARE(locale.readNumber(QString("123456789"), &ok), 123456789.0); + QVERIFY(ok); + QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 123456789.01); + QVERIFY(ok); + QCOMPARE(locale.readNumber(QString("123456 789"), &ok), 0.0); + QVERIFY(!ok); + QCOMPARE(locale.readNumber(QString("123456 789.01"), &ok), 0.0); + QVERIFY(!ok); QCOMPARE(locale.readNumber(QString("123,456,789"), &ok), 0.0); QVERIFY(!ok); QCOMPARE(locale.readNumber(QString("123,456,789.01"), &ok), 0.0); @@ -479,6 +491,10 @@ QVERIFY(ok); QCOMPARE(locale.readMoney("$ 987,654,321.12", &ok), 987654321.12); QVERIFY(ok); + QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12); + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ 987654,321.12", &ok), 0.0); + QVERIFY(!ok); QCOMPARE(locale.readMoney( "$ -1.12", &ok), -1.12); QVERIFY(ok); @@ -498,6 +514,10 @@ QVERIFY(ok); QCOMPARE(locale.readMoney("$ -987,654,321.12", &ok), -987654321.12); QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12); + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -987654,321.12", &ok), 0.0); + QVERIFY(!ok); // Test incomplete formats QCOMPARE(locale.readMoney( "$ 1", &ok), 1.00); @@ -521,17 +541,21 @@ // Test Grouping locale.d->setMonetaryDigitGrouping(QList()); - QCOMPARE(locale.readMoney( "$ 987654321.12", &ok), 987654321.12); + QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12); QVERIFY(ok); QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12); QVERIFY(ok); locale.d->setMonetaryDigitGrouping(QList() << 3 << 2); - QCOMPARE(locale.readMoney( "$ 98,76,54,321.12", &ok), 987654321.12); + QCOMPARE(locale.readMoney("$ 98,76,54,321.12", &ok), 987654321.12); QVERIFY(ok); QCOMPARE(locale.readMoney("$ -98,76,54,321.12", &ok), -987654321.12); QVERIFY(ok); + QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12); + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12); + QVERIFY(ok); locale.d->setMonetaryDigitGrouping(QList() << 3 << -1); - QCOMPARE(locale.readMoney( "$ 987654,321.12", &ok), 987654321.12); + QCOMPARE(locale.readMoney("$ 987654,321.12", &ok), 987654321.12); QVERIFY(ok); QCOMPARE(locale.readMoney("$ -987654,321.12", &ok), -987654321.12); QVERIFY(ok); diff -Nru kde4libs-4.7.90/kdecore/tests/kmimetypetest.cpp kde4libs-4.7.95/kdecore/tests/kmimetypetest.cpp --- kde4libs-4.7.90/kdecore/tests/kmimetypetest.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/kdecore/tests/kmimetypetest.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -750,7 +750,7 @@ QTest::newRow("oasis presentation mimetype") << "application/vnd.oasis.opendocument.presentation" << "*.odp" << ".odp"; QTest::newRow("mimetype with multiple patterns, *.doc added by kde") << "text/plain" << "*.asc;*.txt;*.doc;*,v" << ".txt"; QTest::newRow("mimetype with uncommon pattern") << "application/x-kcachegrind" << "callgrind.out*;cachegrind.out*" << QString(); - QTest::newRow("mimetype with no patterns") << "application/pkcs7-mime" << QString() << QString(); + QTest::newRow("mimetype with no patterns") << "application/x-ole-storage" << QString() << QString(); } void KMimeTypeTest::testPatterns() diff -Nru kde4libs-4.7.90/kdecore/util/kpluginloader.cpp kde4libs-4.7.95/kdecore/util/kpluginloader.cpp --- kde4libs-4.7.90/kdecore/util/kpluginloader.cpp 2011-07-27 18:34:33.000000000 +0000 +++ kde4libs-4.7.95/kdecore/util/kpluginloader.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -259,7 +259,6 @@ QString KPluginLoader::errorString() const { Q_D(const KPluginLoader); - const_cast(this)->load(); if (!d->errorString.isEmpty()) return d->errorString; Binary files /tmp/9Ol8B3f74y/kde4libs-4.7.90/kdeui/about/body-background.jpg and /tmp/sX73c1GR3v/kde4libs-4.7.95/kdeui/about/body-background.jpg differ diff -Nru kde4libs-4.7.90/kdeui/about/kde_infopage.css kde4libs-4.7.95/kdeui/about/kde_infopage.css --- kde4libs-4.7.90/kdeui/about/kde_infopage.css 2011-07-27 18:34:33.000000000 +0000 +++ kde4libs-4.7.95/kdeui/about/kde_infopage.css 2011-12-21 01:19:26.000000000 +0000 @@ -4,12 +4,12 @@ */ img {margin: 0px; padding: 0px} -body {margin: 0px; padding: 0px; background-color: #87AEBC; background-image: url(body-background.jpg); color: #111111; height="100%"; width="100%"} +body {margin: 0px; padding: 0px; background-color: #98A6AB; background-image: url(body-background.jpg); color: #111111; height="100%"; width="100%"} a { color: #1A2C36; text-decoration: none; font-weight: bold; } a:hover { color: #003B5A; text-decoration: none; - text-shadow: #45A4BC 0px 0px 6px; + text-shadow: #FFFFFF 0px 0px 6px; } @@ -61,7 +61,7 @@ text-align: right; font-size: xx-large; font-weight: bold; - text-shadow: #A6EAF9 0px 0px 5px; + text-shadow: #FFFFFF 0px 0px 5px; color: #151515; z-index: 5; } @@ -74,7 +74,7 @@ text-align: right; font-size: large; font-weight: bold; - text-shadow: #A6EAF9 0px 0px 5px; + text-shadow: #FFFFFF 0px 0px 5px; color: #151515; z-index: 5; } diff -Nru kde4libs-4.7.90/kdeui/actions/krecentfilesaction.cpp kde4libs-4.7.95/kdeui/actions/krecentfilesaction.cpp --- kde4libs-4.7.90/kdeui/actions/krecentfilesaction.cpp 2011-07-27 18:34:33.000000000 +0000 +++ kde4libs-4.7.95/kdeui/actions/krecentfilesaction.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -29,6 +29,7 @@ #include "krecentfilesaction_p.h" #include +#include #ifdef Q_OS_WIN #include #endif @@ -114,6 +115,38 @@ delete removeAction(selectableActionGroup()->actions().last()); } +static QString titleWithSensibleWidth(const QString& nameValue, const QString& value) +{ + // Calculate 3/4 of screen geometry, we do not want + // action titles to be bigger than that + // Since we do not know in which screen we are going to show + // we choose the min of all the screens + const QDesktopWidget desktopWidget; + int maxWidthForTitles = INT_MAX; + for (int i = 0; i < desktopWidget.screenCount(); ++i) { + maxWidthForTitles = qMin(maxWidthForTitles, desktopWidget.availableGeometry(i).width() * 3 / 4); + } + const QFontMetrics fontMetrics = QFontMetrics(QFont()); + + QString title = nameValue + " [" + value + ']'; + if (fontMetrics.width(title) > maxWidthForTitles){ + // If it does not fit, try to cut only the whole path, though if the + // name is too long (more than 3/4 of the whole text) we cut it a bit too + const int nameValueMaxWidth = maxWidthForTitles * 3 / 4; + const int nameWidth = fontMetrics.width(nameValue); + QString cutNameValue, cutValue; + if (nameWidth > nameValueMaxWidth) { + cutNameValue = fontMetrics.elidedText(nameValue, Qt::ElideMiddle, nameValueMaxWidth); + cutValue = fontMetrics.elidedText(value, Qt::ElideMiddle, maxWidthForTitles - nameValueMaxWidth); + } else { + cutNameValue = nameValue; + cutValue = fontMetrics.elidedText(value, Qt::ElideMiddle, maxWidthForTitles - nameWidth); + } + title = cutNameValue + " [" + cutValue + ']'; + } + return title; +} + void KRecentFilesAction::addUrl( const KUrl& _url, const QString& name ) { Q_D(KRecentFilesAction); @@ -154,7 +187,7 @@ d->clearAction->setVisible(true); setEnabled(true); // add file to list - const QString title = tmpName + " [" + file + ']'; + const QString title = titleWithSensibleWidth(tmpName, file); QAction* action = new QAction(title, selectableActionGroup()); addAction(action, url, tmpName); } @@ -265,7 +298,7 @@ nameKey = QString( "Name%1" ).arg( i ); nameValue = cg.readPathEntry( nameKey, url.fileName() ); - title = nameValue + " [" + value + ']'; + title = titleWithSensibleWidth(nameValue, value); if (!value.isNull()) { thereAreEntries=true; diff -Nru kde4libs-4.7.90/kdeui/colors/kcolorutils.cpp kde4libs-4.7.95/kdeui/colors/kcolorutils.cpp --- kde4libs-4.7.90/kdeui/colors/kcolorutils.cpp 2011-07-27 18:34:33.000000000 +0000 +++ kde4libs-4.7.95/kdeui/colors/kcolorutils.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -39,15 +39,19 @@ return KColorSpaces::KHCY::luma(color); } -qreal KColorUtils::contrastRatio(const QColor &c1, const QColor &c2) +static qreal contrastRatioForLuma(qreal y1, qreal y2) { - qreal y1 = luma(c1), y2 = luma(c2); if (y1 > y2) return (y1 + 0.05) / (y2 + 0.05); else return (y2 + 0.05) / (y1 + 0.05); } +qreal KColorUtils::contrastRatio(const QColor &c1, const QColor &c2) +{ + return contrastRatioForLuma(luma(c1), luma(c2)); +} + QColor KColorUtils::lighten(const QColor &color, qreal ky, qreal kc) { KColorSpaces::KHCY c(color); @@ -72,10 +76,10 @@ return c.qColor(); } -QColor tintHelper(const QColor &base, const QColor &color, qreal amount) +static QColor tintHelper(const QColor &base, qreal baseLuma, const QColor &color, qreal amount) { KColorSpaces::KHCY result(KColorUtils::mix(base, color, pow(amount, 0.3))); - result.y = mixQreal(KColorUtils::luma(base), result.y, amount); + result.y = mixQreal(baseLuma, result.y, amount); return result.qColor(); } @@ -86,14 +90,15 @@ if (amount >= 1.0) return color; if (isnan(amount)) return base; - double ri = contrastRatio(base, color); + qreal baseLuma = luma(base); //cache value because luma call is expensive + double ri = contrastRatioForLuma(baseLuma, luma(color)); double rg = 1.0 + ((ri + 1.0) * amount * amount * amount); double u = 1.0, l = 0.0; QColor result; for (int i = 12 ; i ; --i) { double a = 0.5 * (l+u); - result = tintHelper(base, color, a); - double ra = contrastRatio(base, result); + result = tintHelper(base, baseLuma, color, a); + double ra = contrastRatioForLuma(baseLuma, luma(result)); if (ra > rg) u = a; else diff -Nru kde4libs-4.7.90/kdeui/itemviews/kcategorizedview.cpp kde4libs-4.7.95/kdeui/itemviews/kcategorizedview.cpp --- kde4libs-4.7.90/kdeui/itemviews/kcategorizedview.cpp 2011-07-27 18:34:34.000000000 +0000 +++ kde4libs-4.7.95/kdeui/itemviews/kcategorizedview.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -492,7 +492,6 @@ QModelIndex prevIndex = proxyModel->index(index.row() - 1, q->modelColumn(), q->rootIndex()); QRect prevRect = q->visualRect(prevIndex); prevRect = mapFromViewport(prevRect); - const QSize currSize = q->sizeHintForIndex(index); item.topLeft.rx() = blockPos.x() + categoryDrawer->leftMargin() + q->spacing(); item.topLeft.ry() = (prevRect.bottomRight().y() + 1) + q->spacing() - blockPos.y(); } else { @@ -1353,6 +1352,29 @@ void KCategorizedView::updateGeometries() { const int oldVerticalOffset = verticalOffset(); + const Qt::ScrollBarPolicy verticalP = verticalScrollBarPolicy(), horizontalP = horizontalScrollBarPolicy(); + + //BEGIN bugs 213068, 287847 ------------------------------------------------------------ + /* + * QListView::updateGeometries() has it's own opinion on whether the scrollbars should be visible (valid range) or not + * and triggers a (sometimes additionally timered) resize through ::layoutChildren() + * http://qt.gitorious.org/qt/qt/blobs/4.7/src/gui/itemviews/qlistview.cpp#line1499 + * (the comment above the main block isn't all accurate, layoutChldren is called regardless of the policy) + * + * As a result QListView and KCategorizedView occasionally started a race on the scrollbar visibility, effectively blocking the UI + * So we prevent QListView from having an own opinion on the scrollbar visibility by + * fixing it before calling the baseclass QListView::updateGeometries() + * + * Since the implicit show/hide by the followin range setting will cause further resizes if the policy is Qt::ScrollBarAsNeeded + * we keep it static until we're done, then restore the original value and ultimately change the scrollbar visibility ourself. + */ + if (d->isCategorized()) { // important! - otherwise we'd pollute the setting if the view is initially not categorized + setVerticalScrollBarPolicy((verticalP == Qt::ScrollBarAlwaysOn || verticalScrollBar()->isVisibleTo(this)) ? + Qt::ScrollBarAlwaysOn : Qt::ScrollBarAlwaysOff); + setHorizontalScrollBarPolicy((horizontalP == Qt::ScrollBarAlwaysOn || horizontalScrollBar()->isVisibleTo(this)) ? + Qt::ScrollBarAlwaysOn : Qt::ScrollBarAlwaysOff); + } + //END bugs 213068, 287847 -------------------------------------------------------------- QListView::updateGeometries(); @@ -1363,6 +1385,8 @@ const int rowCount = d->proxyModel->rowCount(); if (!rowCount) { verticalScrollBar()->setRange(0, 0); + // unconditional, see function end todo + horizontalScrollBar()->setRange(0, 0); return; } @@ -1401,6 +1425,19 @@ // (think how to draw categories), we would have to take care of the horizontal scroll bar too. // In theory, as KCategorizedView has been designed, there is no need of horizontal scroll bar. horizontalScrollBar()->setRange(0, 0); + + //BEGIN bugs 213068, 287847 ------------------------------------------------------------ + // restoring values from above ... + setVerticalScrollBarPolicy(verticalP); + setHorizontalScrollBarPolicy(horizontalP); + // ... and correct the visibility + bool validRange = verticalScrollBar()->maximum() != verticalScrollBar()->minimum(); + if (verticalP == Qt::ScrollBarAsNeeded && (verticalScrollBar()->isVisibleTo(this) != validRange)) + verticalScrollBar()->setVisible(validRange); + validRange = horizontalScrollBar()->maximum() > horizontalScrollBar()->minimum(); + if (horizontalP == Qt::ScrollBarAsNeeded && (horizontalScrollBar()->isVisibleTo(this) != validRange)) + horizontalScrollBar()->setVisible(validRange); + //END bugs 213068, 287847 -------------------------------------------------------------- } void KCategorizedView::currentChanged(const QModelIndex ¤t, diff -Nru kde4libs-4.7.90/kdeui/notifications/kstatusnotifieritem.cpp kde4libs-4.7.95/kdeui/notifications/kstatusnotifieritem.cpp --- kde4libs-4.7.90/kdeui/notifications/kstatusnotifieritem.cpp 2011-08-06 10:43:35.000000000 +0000 +++ kde4libs-4.7.95/kdeui/notifications/kstatusnotifieritem.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -188,7 +188,7 @@ void KStatusNotifierItem::setIconByPixmap(const QIcon &icon) { - if (d->icon.cacheKey() == icon.cacheKey()) { + if (d->iconName.isEmpty() && d->icon.cacheKey() == icon.cacheKey()) { return; } @@ -234,10 +234,11 @@ void KStatusNotifierItem::setOverlayIconByPixmap(const QIcon &icon) { - if (d->overlayIcon.cacheKey() == icon.cacheKey()) { + if (d->overlayIconName.isEmpty() && d->overlayIcon.cacheKey() == icon.cacheKey()) { return; } + d->overlayIconName.clear(); d->serializedOverlayIcon = d->iconToVector(icon); emit d->statusNotifierItemDBus->NewOverlayIcon(); @@ -278,7 +279,7 @@ void KStatusNotifierItem::setAttentionIconByPixmap(const QIcon &icon) { - if (d->attentionIcon.cacheKey() == icon.cacheKey()) { + if (d->attentionIconName.isEmpty() && d->attentionIcon.cacheKey() == icon.cacheKey()) { return; } @@ -341,7 +342,7 @@ void KStatusNotifierItem::setToolTip(const QIcon &icon, const QString &title, const QString &subTitle) { - if (d->toolTipIcon.cacheKey() == icon.cacheKey() && + if (d->toolTipIconName.isEmpty() && d->toolTipIcon.cacheKey() == icon.cacheKey() && d->toolTipTitle == title && d->toolTipSubTitle == subTitle) { return; @@ -378,7 +379,7 @@ void KStatusNotifierItem::setToolTipIconByPixmap(const QIcon &icon) { - if (d->toolTipIcon.cacheKey() == icon.cacheKey()) { + if (d->toolTipIconName.isEmpty() && d->toolTipIcon.cacheKey() == icon.cacheKey()) { return; } diff -Nru kde4libs-4.7.90/kdeui/tests/kconfigguitest.cpp kde4libs-4.7.95/kdeui/tests/kconfigguitest.cpp --- kde4libs-4.7.90/kdeui/tests/kconfigguitest.cpp 2011-07-27 18:34:34.000000000 +0000 +++ kde4libs-4.7.95/kdeui/tests/kconfigguitest.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -103,7 +103,9 @@ sc3.writeEntry( QString("badList"), list); sc.sync(); +#if QT_VERSION < 0x040800 QTest::ignoreMessage(QtWarningMsg, "QColor::setNamedColor: Unknown color name '1'"); +#endif QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() ); // 2 element list diff -Nru kde4libs-4.7.90/kdeui/tests/kshortcuttest.cpp kde4libs-4.7.95/kdeui/tests/kshortcuttest.cpp --- kde4libs-4.7.90/kdeui/tests/kshortcuttest.cpp 2011-07-27 18:34:34.000000000 +0000 +++ kde4libs-4.7.95/kdeui/tests/kshortcuttest.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -55,8 +55,8 @@ // Reported with patch - mjansen QKeySequence unknown_key(Qt::Key_unknown); // The keycode falls into the unicode handling - QString p = QChar((Qt::Key_unknown-0x10000)/0x400+0xd800); - p += QChar((Qt::Key_unknown-0x10000)%400+0xdc00); + QString p = QChar(QChar::highSurrogate(Qt::Key_unknown)) + QChar(QChar::lowSurrogate(Qt::Key_unknown)); + QCOMPARE(unknown_key.toString(), p); // What happens QEXPECT_FAIL("", "Qt::Key_unknown not handled", Continue); QCOMPARE(unknown_key.toString(), QString()); // What i would expect @@ -68,8 +68,10 @@ // Qt::Key_unknown instead. Unsupported keys: (Alt+Print for example). // Reported with patch - mjansen QKeySequence invalid_key(-1); - // The keycode falls into the handling of keys lesser that Key_escape - QString p1 = QChar((-1) & 0xffff).toUpper(); + // The keycode falls into the unicode handling too + int k = int(-1) & ~(Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier); + QString p1 = QChar(QChar::highSurrogate(k)) + QChar(QChar::lowSurrogate(k)); + QCOMPARE(invalid_key.toString(), QString("Meta+Ctrl+Alt+Shift+"+p1)); // What happens QEXPECT_FAIL("", "-1 not handled", Continue); QCOMPARE(invalid_key.toString(), QString()); // What i would expect diff -Nru kde4libs-4.7.90/kdeui/util/kaccelgen.h kde4libs-4.7.95/kdeui/util/kaccelgen.h --- kde4libs-4.7.90/kdeui/util/kaccelgen.h 2011-07-27 18:34:34.000000000 +0000 +++ kde4libs-4.7.95/kdeui/util/kaccelgen.h 2011-12-21 00:14:57.000000000 +0000 @@ -181,7 +181,6 @@ int user_ampersand = item.indexOf(QLatin1Char('&')); if( user_ampersand < 0 || item[user_ampersand+1] == QLatin1Char('&')) { bool found = false; - int found_idx; int j; // Check word-starting letters first. @@ -190,7 +189,6 @@ && !used_accels.contains(item[j]) && (0 == j || (j > 0 && item[j-1].isSpace())) ) { found = true; - found_idx = j; break; } } @@ -201,7 +199,6 @@ if( isLegalAccelerator(item, j) && !used_accels.contains(item[j]) ) { found = true; - found_idx = j; break; } } diff -Nru kde4libs-4.7.90/kdeui/widgets/khelpmenu.cpp kde4libs-4.7.95/kdeui/widgets/khelpmenu.cpp --- kde4libs-4.7.90/kdeui/widgets/khelpmenu.cpp 2011-07-27 18:34:34.000000000 +0000 +++ kde4libs-4.7.95/kdeui/widgets/khelpmenu.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -61,7 +61,8 @@ public: KHelpMenuPrivate() : mSwitchApplicationLanguage(0), - mSwitchApplicationLanguageAction(0) + mSwitchApplicationLanguageAction(0), + mActionsCreated(false) { mMenu = 0; mAboutApp = 0; @@ -82,6 +83,8 @@ delete mSwitchApplicationLanguage; } + void createActions(KHelpMenu* q); + KMenu *mMenu; KDialog *mAboutApp; KAboutKdeDialog *mAboutKDE; @@ -93,6 +96,7 @@ QString mAboutAppText; bool mShowWhatsThis; + bool mActionsCreated; KAction *mHandBookAction, *mWhatsThisAction; QAction *mReportBugAction, *mSwitchApplicationLanguageAction, *mAboutAppAction, *mAboutKDEAction; @@ -118,16 +122,21 @@ d->mParent = parent; d->mAboutData = aboutData; - if (actions) - { - actions->addAction(KStandardAction::HelpContents, this, SLOT(appHelpActivated())); - if (showWhatsThis) - actions->addAction(KStandardAction::WhatsThis, this, SLOT(contextHelpActivated())); - actions->addAction(KStandardAction::ReportBug, this, SLOT(reportBug())); - actions->addAction(KStandardAction::SwitchApplicationLanguage, this, SLOT(switchApplicationLanguage())); - actions->addAction(KStandardAction::AboutApp, this, SLOT(aboutApplication())); - actions->addAction(KStandardAction::AboutKDE, this, SLOT(aboutKDE())); - } + if (actions) { + d->createActions(this); + if (d->mHandBookAction) + actions->addAction(d->mHandBookAction->objectName(), d->mHandBookAction); + if (d->mWhatsThisAction) + actions->addAction(d->mWhatsThisAction->objectName(), d->mWhatsThisAction); + if (d->mReportBugAction) + actions->addAction(d->mReportBugAction->objectName(), d->mReportBugAction); + if (d->mSwitchApplicationLanguageAction) + actions->addAction(d->mSwitchApplicationLanguageAction->objectName(), d->mSwitchApplicationLanguageAction); + if (d->mAboutAppAction) + actions->addAction(d->mAboutAppAction->objectName(), d->mAboutAppAction); + if (d->mAboutKDEAction) + actions->addAction(d->mAboutKDEAction->objectName(), d->mAboutKDEAction); + } } KHelpMenu::~KHelpMenu() @@ -135,68 +144,85 @@ delete d; } +void KHelpMenuPrivate::createActions(KHelpMenu* q) +{ + if (mActionsCreated) + return; + mActionsCreated = true; + + if (KAuthorized::authorizeKAction("help_contents")) { + mHandBookAction = KStandardAction::helpContents(q, SLOT(appHelpActivated()), q); + } + if (mShowWhatsThis && KAuthorized::authorizeKAction("help_whats_this")) { + mWhatsThisAction = KStandardAction::whatsThis(q, SLOT(contextHelpActivated()), q); + } + + const KAboutData *aboutData = mAboutData ? mAboutData : KGlobal::mainComponent().aboutData(); + if (KAuthorized::authorizeKAction("help_report_bug") && aboutData && !aboutData->bugAddress().isEmpty()) { + mReportBugAction = KStandardAction::reportBug(q, SLOT(reportBug()), q); + } + + if (KAuthorized::authorizeKAction("switch_application_language")) { + if((KGlobal::dirs()->findAllResources("locale", QString::fromLatin1("*/entry.desktop"))).count() > 1) { + mSwitchApplicationLanguageAction = KStandardAction::create(KStandardAction::SwitchApplicationLanguage, q, SLOT(switchApplicationLanguage()), q); + } + } + + if (KAuthorized::authorizeKAction("help_about_app")) { + mAboutAppAction = KStandardAction::aboutApp(q, SLOT(aboutApplication()), q); + } + + if (KAuthorized::authorizeKAction("help_about_kde")) { + mAboutKDEAction = KStandardAction::aboutKDE(q, SLOT(aboutKDE()), q); + } +} + +// Used in the non-xml-gui case, like kfind or ksnapshot's help button. KMenu* KHelpMenu::menu() { if( !d->mMenu ) { - const KAboutData *aboutData = d->mAboutData ? d->mAboutData : KGlobal::mainComponent().aboutData(); - QString appName = (aboutData)? aboutData->programName() : qApp->applicationName(); - d->mMenu = new KMenu(); connect( d->mMenu, SIGNAL(destroyed()), this, SLOT(menuDestroyed())); d->mMenu->setTitle(i18n("&Help")); + d->createActions(this); + bool need_separator = false; - if (KAuthorized::authorizeKAction("help_contents")) - { - d->mHandBookAction = new KAction(KIcon("help-contents"), i18n("%1 &Handbook", appName), d->mMenu); - d->mHandBookAction->setShortcut(KStandardShortcut::shortcut(KStandardShortcut::Help)); - connect(d->mHandBookAction, SIGNAL(triggered(bool)), this, SLOT(appHelpActivated())); + if (d->mHandBookAction) { d->mMenu->addAction(d->mHandBookAction); need_separator = true; } - if( d->mShowWhatsThis && KAuthorized::authorizeKAction("help_whats_this") ) - { - d->mWhatsThisAction = new KAction(KIcon("help-contextual"), i18n( "What's &This" ), d->mMenu); - d->mWhatsThisAction->setShortcut(Qt::SHIFT + Qt::Key_F1); - connect(d->mWhatsThisAction, SIGNAL(triggered(bool)), this, SLOT(contextHelpActivated())); + if (d->mWhatsThisAction) { d->mMenu->addAction(d->mWhatsThisAction); need_separator = true; } - if (KAuthorized::authorizeKAction("help_report_bug") && aboutData && !aboutData->bugAddress().isEmpty() ) - { + if (d->mReportBugAction) { if (need_separator) d->mMenu->addSeparator(); - d->mReportBugAction = d->mMenu->addAction( KIcon("tools-report-bug"), i18n( "&Report Bug..." ), this, SLOT(reportBug()) ); + d->mMenu->addAction(d->mReportBugAction); need_separator = true; } - if (KAuthorized::authorizeKAction("switch_application_language")) - { - if((KGlobal::dirs()->findAllResources("locale", QString::fromLatin1("*/entry.desktop"))).count() > 1) - { + if (d->mSwitchApplicationLanguageAction) { if (need_separator) d->mMenu->addSeparator(); - d->mSwitchApplicationLanguageAction = d->mMenu->addAction( i18n( "Switch Application &Language..." ), this, SLOT(switchApplicationLanguage()) ); + d->mMenu->addAction(d->mSwitchApplicationLanguageAction); need_separator = true; - } } if (need_separator) d->mMenu->addSeparator(); - if (KAuthorized::authorizeKAction("help_about_app")) - { - d->mAboutAppAction = d->mMenu->addAction( qApp->windowIcon(), - i18n( "&About %1" , appName), this, SLOT( aboutApplication() ) ); + if (d->mAboutAppAction) { + d->mMenu->addAction(d->mAboutAppAction); } - if (KAuthorized::authorizeKAction("help_about_kde")) - { - d->mAboutKDEAction = d->mMenu->addAction( KIcon("kde"), i18n( "About &KDE" ), this, SLOT( aboutKDE() ) ); + if (d->mAboutKDEAction) { + d->mMenu->addAction(d->mAboutKDEAction); } } diff -Nru kde4libs-4.7.90/kdewebkit/kwebpage.cpp kde4libs-4.7.95/kdewebkit/kwebpage.cpp --- kde4libs-4.7.90/kdewebkit/kwebpage.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/kdewebkit/kwebpage.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -528,6 +529,18 @@ case KParts::BrowserOpenOrSaveQuestion::Save: // Do not download local files... if (!replyUrl.isLocalFile()) { + QString downloadCmd (reply->property("DownloadManagerExe").toString()); + if (!downloadCmd.isEmpty()) { + downloadCmd += QLatin1Char(' '); + downloadCmd += KShell::quoteArg(replyUrl.url()); + if (!suggestedFileName.isEmpty()) { + downloadCmd += QLatin1Char(' '); + downloadCmd += KShell::quoteArg(suggestedFileName); + } + // kDebug(800) << "download command:" << downloadCmd; + if (KRun::runCommand(downloadCmd, view())) + return true; + } return downloadResource(replyUrl, suggestedFileName, topLevelWindow); } return true; diff -Nru kde4libs-4.7.90/kdewebkit/kwebpage.h kde4libs-4.7.95/kdewebkit/kwebpage.h --- kde4libs-4.7.90/kdewebkit/kwebpage.h 2011-07-27 18:34:34.000000000 +0000 +++ kde4libs-4.7.95/kdewebkit/kwebpage.h 2011-12-21 00:14:57.000000000 +0000 @@ -205,7 +205,16 @@ * This slot first prompts the user where to save the requested resource * and then downloads it using KIO. * + * In KDE 4.8 and higher, if @p reply contains a QObject property called + * "DownloadManagerExe", then an attempt will be made to the command + * specified by that property to download the specified resource. + * + * If the "DownloadManagerExe" property is not defined or the command + * specified by it could not be successfully executed, then the user will + * be prompted for the action to take. + * * @since 4.5 + * @see handleReply */ void downloadResponse(QNetworkReply *reply); @@ -330,7 +339,15 @@ virtual bool acceptNavigationRequest(QWebFrame * frame, const QNetworkRequest & request, NavigationType type); /** - * Attempts to handle @ref reply and returns true on success, false otherwise. + * Attempts to handle @p reply and returns true on success, false otherwise. + * + * In KDE 4.8 and higher, if @p reply contains a QObject property called + * "DownloadManagerExe", then an attempt will be made to the command + * specified by that property to download the specified resource. + * + * If the "DownloadManagerExe" property is not defined or the command + * specified by it could not be successfully executed, then the user will + * be prompted for the action to take. * * @param reply the QNetworkReply object to be handled. * @param contentType if not null, it will be set to the content-type specified in @p reply, if any. diff -Nru kde4libs-4.7.90/kdoctools/customization/kde-include-common.xsl.cmake kde4libs-4.7.95/kdoctools/customization/kde-include-common.xsl.cmake --- kde4libs-4.7.90/kdoctools/customization/kde-include-common.xsl.cmake 2011-07-27 18:34:35.000000000 +0000 +++ kde4libs-4.7.95/kdoctools/customization/kde-include-common.xsl.cmake 2011-12-21 00:14:57.000000000 +0000 @@ -6,4 +6,6 @@ + + diff -Nru kde4libs-4.7.90/kdoctools/customization/pt-BR/contributor.entities kde4libs-4.7.95/kdoctools/customization/pt-BR/contributor.entities --- kde4libs-4.7.90/kdoctools/customization/pt-BR/contributor.entities 2011-07-27 18:34:35.000000000 +0000 +++ kde4libs-4.7.95/kdoctools/customization/pt-BR/contributor.entities 2011-12-21 00:14:57.000000000 +0000 @@ -4,4 +4,4 @@ AndréMarceloAlvarenga'> -andrealvarenga@gmx.net>'> +alvarenga@kde.org>'> diff -Nru kde4libs-4.7.90/kfile/kfilewidget.cpp kde4libs-4.7.95/kfile/kfilewidget.cpp --- kde4libs-4.7.90/kfile/kfilewidget.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/kfile/kfilewidget.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -2142,12 +2142,23 @@ QString filter = filterWidget->currentFilter(); if (!filter.isEmpty()) { + // if the currently selected filename already has an extension which + // is also included in the currently allowed extensions, keep it + // otherwise use the default extension + QString currentExtension = KMimeType::extractKnownExtension(locationEditCurrentText()); + if ( currentExtension.isEmpty() ) + currentExtension = locationEditCurrentText().section(QLatin1Char('.'), -1, -1); + kDebug (kfile_area) << "filter:" << filter << "locationEdit:" << locationEditCurrentText() + << "currentExtension:" << currentExtension; + + QString defaultExtension; + QStringList extensionList; + // e.g. "*.cpp" if (filter.indexOf ('/') < 0) { - extension = getExtensionFromPatternList (filter.split(' ', QString::SkipEmptyParts)); -// kDebug (kfile_area) << "\tsetFilter-style: pattern ext=\'" -// << extension << "\'" << endl; + extensionList = filter.split(' ', QString::SkipEmptyParts); + defaultExtension = getExtensionFromPatternList(extensionList); } // e.g. "text/html" else @@ -2155,11 +2166,17 @@ KMimeType::Ptr mime = KMimeType::mimeType (filter); if (mime) { - extension = mime->mainExtension(); -// kDebug (kfile_area) << "\tsetMimeFilter-style: pattern ext=\'" -// << extension << "\'" << endl; + extensionList = mime->patterns(); + defaultExtension = mime->mainExtension(); } } + + if ( !currentExtension.isEmpty() && extensionList.contains(QLatin1String("*.") + currentExtension) ) + extension = QLatin1Char('.') + currentExtension; + else + extension = defaultExtension; + + kDebug (kfile_area) << "List:" << extensionList << "auto-selected extension:" << extension; } @@ -2321,10 +2338,14 @@ } else { QString filename = urlStr.mid( urlStr.lastIndexOf( KDIR_SEPARATOR ) + 1 ); // only filename foreach( const QString& filter, filterWidget->filters()) { - QString f = filter.left( filter.indexOf( '|' )); // '*.foo|Foo type' -> '*.foo' - if( KMimeType::matchFileName( filename, f )) { - filterWidget->setCurrentFilter( filter ); - break; + QStringList patterns = filter.left( filter.indexOf( '|' )).split ( ' ', QString::SkipEmptyParts ); // '*.foo *.bar|Foo type' -> '*.foo', '*.bar' + foreach ( const QString& p, patterns ) { + if( KMimeType::matchFileName( filename, p )) { + if ( p != "*" ) { // never match the catch-all filter + filterWidget->setCurrentFilter( filter ); + } + break; + } } } } diff -Nru kde4libs-4.7.90/khtml/html/htmltokenizer.cpp kde4libs-4.7.95/khtml/html/htmltokenizer.cpp --- kde4libs-4.7.90/khtml/html/htmltokenizer.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/khtml/html/htmltokenizer.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -1233,7 +1233,7 @@ { tag = SearchValue; *dest++ = 0; - attrName.clear(); + attrName = DOMString(""); } else tag = AttributeName; @@ -1276,7 +1276,7 @@ cBuffer[cBufferPos - 1] = '/'; } if (!a) - attrName = QLatin1String(QByteArray(cBuffer, cBufferPos+1).data()); + attrName = DOMString(cBuffer, cBufferPos); } dest = buffer; @@ -1298,7 +1298,7 @@ } if ( cBufferPos == CBUFLEN ) { cBuffer[cBufferPos] = '\0'; - attrName = QLatin1String(QByteArray(cBuffer, cBufferPos+1).data()); + attrName = DOMString(cBuffer, cBufferPos); dest = buffer; *dest++ = 0; tag = SearchEqual; @@ -1326,7 +1326,7 @@ { tag = SearchValue; *dest++ = 0; - attrName.clear(); + attrName = DOMString(""); } else { DOMString v(""); diff -Nru kde4libs-4.7.90/khtml/html/htmltokenizer.h kde4libs-4.7.95/khtml/html/htmltokenizer.h --- kde4libs-4.7.90/khtml/html/htmltokenizer.h 2011-07-27 18:34:36.000000000 +0000 +++ kde4libs-4.7.95/khtml/html/htmltokenizer.h 2011-12-21 00:14:57.000000000 +0000 @@ -73,7 +73,7 @@ if(attrs) attrs->deref(); if(text) text->deref(); } - void addAttribute(DocumentImpl* /*doc*/, QChar* buffer, const QString& attrName, const DOMString& v) + void addAttribute(DocumentImpl* /*doc*/, QChar* buffer, const DOMString& _attrName, const DOMString& v) { DOMStringImpl *value = v.implementation(); LocalName localname = LocalName::fromId(0); @@ -81,8 +81,8 @@ if(buffer->unicode()) { localname = LocalName::fromId(buffer->unicode()); } - else if ( !attrName.isEmpty() && attrName != "/" ) { - splitPrefixLocalName(attrName, prefixname, localname, true /* htmlCompat*/); + else if ( !_attrName.isEmpty() && _attrName != "/" ) { + splitPrefixLocalName(_attrName, prefixname, localname, true /* htmlCompat*/); } if (value && localname.id()) { @@ -351,7 +351,7 @@ } doctypeComment; // name of an unknown attribute - QString attrName; + DOMString attrName; // Used to store the content of QChar *rawContent; diff -Nru kde4libs-4.7.90/kimgio/xcf.cpp kde4libs-4.7.95/kimgio/xcf.cpp --- kde4libs-4.7.90/kimgio/xcf.cpp 2011-07-27 18:34:37.000000000 +0000 +++ kde4libs-4.7.95/kimgio/xcf.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -495,6 +495,15 @@ layer.nrows = (layer.height + TILE_HEIGHT - 1) / TILE_HEIGHT; layer.ncols = (layer.width + TILE_WIDTH - 1) / TILE_WIDTH; + //kDebug(399) << "IMAGE: height=" << xcf_image.height << ", width=" << xcf_image.width; + //kDebug(399) << "LAYER: height=" << layer.height << ", width=" << layer.width; + //kDebug(399) << "LAYER: rows=" << layer.nrows << ", columns=" << layer.ncols; + + // SANITY CHECK: Catch corrupted XCF image file where the width or height + // of a tile is reported are bogus. See Bug# 234030. + if (layer.height > xcf_image.height || layer.width > xcf_image.width) + return false; + layer.image_tiles.resize(layer.nrows); if (layer.type == GRAYA_GIMAGE || layer.type == INDEXEDA_GIMAGE) diff -Nru kde4libs-4.7.90/kio/kfile/kfilemetadatawidget.cpp kde4libs-4.7.95/kio/kfile/kfilemetadatawidget.cpp --- kde4libs-4.7.90/kio/kfile/kfilemetadatawidget.cpp 2011-07-27 18:34:37.000000000 +0000 +++ kde4libs-4.7.95/kio/kfile/kfilemetadatawidget.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -230,6 +230,7 @@ // Create label QLabel* label = new QLabel(itemLabel, q); + label->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); label->setForegroundRole(q->foregroundRole()); label->setFont(q->font()); label->setWordWrap(true); diff -Nru kde4libs-4.7.90/kio/kfile/kpropertiesdialog.cpp kde4libs-4.7.95/kio/kfile/kpropertiesdialog.cpp --- kde4libs-4.7.90/kio/kfile/kpropertiesdialog.cpp 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kio/kfile/kpropertiesdialog.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -56,7 +56,6 @@ } #include #include -#include #include #include @@ -212,11 +211,11 @@ { setCaption( i18n( "Properties for %1" , KIO::decodeFileName(item.url().fileName())) ); - assert( !item.isNull() ); + Q_ASSERT( !item.isNull() ); d->m_items.append(item); d->m_singleUrl = item.url(); - assert(!d->m_singleUrl.isEmpty()); + Q_ASSERT(!d->m_singleUrl.isEmpty()); d->init(); } @@ -239,9 +238,9 @@ else setCaption( i18n( "Properties for %1" , KIO::decodeFileName(_items.first().url().fileName())) ); - assert( !_items.isEmpty() ); + Q_ASSERT( !_items.isEmpty() ); d->m_singleUrl = _items.first().url(); - assert(!d->m_singleUrl.isEmpty()); + Q_ASSERT(!d->m_singleUrl.isEmpty()); d->m_items = _items; @@ -273,7 +272,7 @@ d->m_singleUrl = _tempUrl; d->m_defaultName = _defaultName; d->m_currentDir = _currentDir; - assert(!d->m_singleUrl.isEmpty()); + Q_ASSERT(!d->m_singleUrl.isEmpty()); // Create the KFileItem for the _template_ file, in order to read from it. d->m_items.append(KFileItem(KFileItem::Unknown, KFileItem::Unknown, d->m_singleUrl)); @@ -563,7 +562,7 @@ d->m_singleUrl = newUrl; d->m_items.first().setUrl(newUrl); - assert(!d->m_singleUrl.isEmpty()); + Q_ASSERT(!d->m_singleUrl.isEmpty()); // If we have an Desktop page, set it dirty, so that a full file is saved locally // Same for a URL page (because of the Name= hack) foreach (KPropertiesDialogPlugin *it, d->m_pageList) { @@ -1339,9 +1338,9 @@ // Don't remove the template !! if ( !d->m_bFromTemplate ) // (normal renaming) - job = KIO::move( oldurl, properties->kurl() ); + job = KIO::moveAs( oldurl, properties->kurl() ); else // Copying a template - job = KIO::copy( oldurl, properties->kurl() ); + job = KIO::copyAs( oldurl, properties->kurl() ); connect( job, SIGNAL( result( KJob * ) ), SLOT( slotCopyFinished( KJob * ) ) ); @@ -1381,8 +1380,8 @@ } } - assert( !properties->item().isNull() ); - assert( !properties->item().url().isEmpty() ); + Q_ASSERT( !properties->item().isNull() ); + Q_ASSERT( !properties->item().url().isEmpty() ); // Save the file where we can -> usually in ~/.kde/... if (d->bDesktopFile && !d->m_sRelativePath.isEmpty()) diff -Nru kde4libs-4.7.90/kio/kio/accessmanager.cpp kde4libs-4.7.95/kio/kio/accessmanager.cpp --- kde4libs-4.7.90/kio/kio/accessmanager.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/kio/kio/accessmanager.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -213,7 +213,9 @@ KIO::SimpleJob *kioJob = 0; const KUrl reqUrl (req.url()); - if (!d->externalContentAllowed && !KDEPrivate::AccessManager_isLocalRequest(reqUrl) && reqUrl.scheme() != QL1S("data")) { + if (!d->externalContentAllowed && + !KDEPrivate::AccessManagerReply::isLocalRequest(reqUrl) && + reqUrl.scheme() != QL1S("data")) { kDebug( 7044 ) << "Blocked: " << reqUrl; KDEPrivate::AccessManagerReply* reply = new KDEPrivate::AccessManagerReply(op, req, kioJob, d->emitReadReadOnMetaDataChange, this); reply->setStatus(i18n("Blocked request."),QNetworkReply::ContentAccessDenied); diff -Nru kde4libs-4.7.90/kio/kio/accessmanagerreply_p.cpp kde4libs-4.7.95/kio/kio/accessmanagerreply_p.cpp --- kde4libs-4.7.90/kio/kio/accessmanagerreply_p.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/kio/kio/accessmanagerreply_p.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -38,22 +38,15 @@ namespace KDEPrivate { -bool AccessManager_isLocalRequest(const KUrl& url) -{ - const QString scheme (url.protocol()); - return (KProtocolInfo::isKnownProtocol(scheme) && - KProtocolInfo::protocolClass(scheme).compare(QL1S(":local"), Qt::CaseInsensitive) == 0); -} - AccessManagerReply::AccessManagerReply(const QNetworkAccessManager::Operation &op, const QNetworkRequest &request, KIO::SimpleJob *kioJob, - bool emitReadReadOnMetaDataChange, + bool emitReadyReadOnMetaDataChange, QObject *parent) :QNetworkReply(parent), m_metaDataRead(false), m_ignoreContentDisposition(false), - m_emitReadReadOnMetaDataChange(emitReadReadOnMetaDataChange), + m_emitReadyReadOnMetaDataChange(emitReadyReadOnMetaDataChange), m_kioJob(kioJob) { @@ -158,6 +151,13 @@ KIO::Scheduler::publishSlaveOnHold(); } +bool AccessManagerReply::isLocalRequest (const KUrl& url) +{ + const QString scheme (url.protocol()); + return (KProtocolInfo::isKnownProtocol(scheme) && + KProtocolInfo::protocolClass(scheme).compare(QL1S(":local"), Qt::CaseInsensitive) == 0); +} + void AccessManagerReply::readHttpResponseHeaders(KIO::Job *job) { if (!job || m_metaDataRead) @@ -166,7 +166,7 @@ const KIO::MetaData& metaData = job->metaData(); if (metaData.isEmpty()) { // Allow handling of local resources such as man pages and file url... - if (AccessManager_isLocalRequest(url())) { + if (isLocalRequest(url())) { setHeader(QNetworkRequest::ContentLengthHeader, job->totalAmount(KJob::Bytes)); setAttribute(QNetworkRequest::HttpStatusCodeAttribute, "200"); emit metaDataChanged(); @@ -261,6 +261,7 @@ { case 0: break; // No error; + case KIO::ERR_SLAVE_DEFINED: case KIO::ERR_NO_CONTENT: // Sent by a 204 response is not an error condition. setError(QNetworkReply::NoError, kJob->errorText()); //kDebug(7044) << "0 -> QNetworkReply::NoError"; @@ -334,7 +335,8 @@ { Q_UNUSED (kioJob); m_data += data; - emit readyRead(); + if (!data.isEmpty()) + emit readyRead(); } void AccessManagerReply::slotMimeType(KIO::Job *kioJob, const QString &mimeType) @@ -342,7 +344,7 @@ //kDebug(7044) << kioJob << mimeType; setHeader(QNetworkRequest::ContentTypeHeader, mimeType.toUtf8()); readHttpResponseHeaders(kioJob); - if (m_emitReadReadOnMetaDataChange) { + if (m_emitReadyReadOnMetaDataChange) { emit readyRead(); } } @@ -371,6 +373,7 @@ if (jobError(kJob)) { emit error (error()); emit finished(); + return; } KIO::StatJob* statJob = qobject_cast(kJob); diff -Nru kde4libs-4.7.90/kio/kio/accessmanagerreply_p.h kde4libs-4.7.95/kio/kio/accessmanagerreply_p.h --- kde4libs-4.7.90/kio/kio/accessmanagerreply_p.h 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kio/kio/accessmanagerreply_p.h 2011-12-21 00:14:57.000000000 +0000 @@ -51,7 +51,7 @@ AccessManagerReply(const QNetworkAccessManager::Operation &op, const QNetworkRequest &request, KIO::SimpleJob *kioJob, - bool emitReadReadOnMetaDataChange = false, + bool emitReadyReadOnMetaDataChange = false, QObject *parent = 0); virtual ~AccessManagerReply(); @@ -62,6 +62,8 @@ void setStatus(const QString& message, QNetworkReply::NetworkError); void putOnHold(); + static bool isLocalRequest(const KUrl& url); + protected: virtual qint64 readData(char *data, qint64 maxSize); void readHttpResponseHeaders(KIO::Job *); @@ -80,7 +82,7 @@ QByteArray m_data; bool m_metaDataRead; bool m_ignoreContentDisposition; - bool m_emitReadReadOnMetaDataChange; + bool m_emitReadyReadOnMetaDataChange; QPointer m_kioJob; }; diff -Nru kde4libs-4.7.90/kio/kio/kfileitemactionplugin.desktop kde4libs-4.7.95/kio/kio/kfileitemactionplugin.desktop --- kde4libs-4.7.90/kio/kio/kfileitemactionplugin.desktop 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kio/kio/kfileitemactionplugin.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -35,6 +35,7 @@ Comment[pt_BR]=Plug-in para o menu de contexto do item de arquivos do KIO Comment[ro]=Modul pentru meniul contextual al fișierelor KIO Comment[ru]=Расширение контекстного меню файла KIO +Comment[se]=Lassemodula KIO-fiilamerkoša konteakstafállui Comment[sk]=Modul pre položku kontextového menu pre KIO súbor Comment[sr]=Прикључак за К‑У/И радњу над фајловима у контекстном менију Comment[sr@ijekavian]=Прикључак за К‑У/И радњу над фајловима у контекстном менију diff -Nru kde4libs-4.7.90/kio/kio/tcpslavebase.cpp kde4libs-4.7.95/kio/kio/tcpslavebase.cpp --- kde4libs-4.7.90/kio/kio/tcpslavebase.cpp 2011-10-11 14:41:54.000000000 +0000 +++ kde4libs-4.7.95/kio/kio/tcpslavebase.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -371,10 +371,18 @@ if (d->socket.state() != KTcpSocket::ConnectedState) { if (errorString) *errorString = host + QLatin1String(": ") + d->socket.errorString(); - if (d->socket.error() == KTcpSocket::HostNotFoundError) { + switch (d->socket.error()) { + case KTcpSocket::UnsupportedSocketOperationError: + return ERR_UNSUPPORTED_ACTION; + case KTcpSocket::RemoteHostClosedError: + return ERR_CONNECTION_BROKEN; + case KTcpSocket::SocketTimeoutError: + return ERR_SERVER_TIMEOUT; + case KTcpSocket::HostNotFoundError: return ERR_UNKNOWN_HOST; + default: + return ERR_COULD_NOT_CONNECT; } - return ERR_COULD_NOT_CONNECT; } //### check for proxyAuthenticationRequiredError diff -Nru kde4libs-4.7.90/kio/kssl/kcm/kcm_ssl.desktop kde4libs-4.7.95/kio/kssl/kcm/kcm_ssl.desktop --- kde4libs-4.7.90/kio/kssl/kcm/kcm_ssl.desktop 2011-10-20 20:52:04.000000000 +0000 +++ kde4libs-4.7.95/kio/kssl/kcm/kcm_ssl.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -44,6 +44,7 @@ Name[pt_BR]=Preferências do SSL Name[ro]=Preferințe SSL Name[ru]=Настройка SSL +Name[se]=SSL-oidimat Name[sk]=Nastavenie SSL Name[sr]=Поставке ССЛ‑а Name[sr@ijekavian]=Поставке ССЛ‑а @@ -93,6 +94,7 @@ Comment[pt_BR]=Versões e certificados de SSL Comment[ro]=Certificate și versiuni SSL partener Comment[ru]=Версии и сертификаты SSL +Comment[se]=SSL-veršuvnnat ja -duođaštusat Comment[sk]=SSL verzie a certifikáty Comment[sr]=Сертификати и верзије ССЛ‑а Comment[sr@ijekavian]=Сертификати и верзије ССЛ‑а diff -Nru kde4libs-4.7.90/kio/misc/kmailservice.desktop kde4libs-4.7.95/kio/misc/kmailservice.desktop --- kde4libs-4.7.90/kio/misc/kmailservice.desktop 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kio/misc/kmailservice.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -45,6 +45,7 @@ Name[pt_BR]=KMailService Name[ro]=Serviciu KMail Name[ru]=KMailService +Name[se]=KMailService Name[si]=KMailService Name[sk]=KMailService Name[sr]=Сервис за пошту diff -Nru kde4libs-4.7.90/kio/misc/ktelnetservice.desktop kde4libs-4.7.95/kio/misc/ktelnetservice.desktop --- kde4libs-4.7.90/kio/misc/ktelnetservice.desktop 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kio/misc/ktelnetservice.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -43,6 +43,7 @@ Name[pt_BR]=KTelnetService Name[ro]=Serviciu KTelnet Name[ru]=Служба telnet KTelnetService +Name[se]=KTelnetService Name[si]=KTelnetService Name[sk]=KTelnetService Name[sr]=KMailService diff -Nru kde4libs-4.7.90/kioslave/http/http.cpp kde4libs-4.7.95/kioslave/http/http.cpp --- kde4libs-4.7.90/kioslave/http/http.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/kioslave/http/http.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -2188,7 +2188,7 @@ // Only save proxy auth information after proxy authentication has // actually taken place, which will set up exactly this connection. disconnect(socket(), SIGNAL(connected()), - this, SLOT(saveProxyAuthenticationForSocket())); + this, SLOT(saveProxyAuthenticationForSocket())); clearUnreadBuffer(); @@ -2237,6 +2237,8 @@ m_request.proxyUrl = url; kDebug(7113) << "Connected to proxy: host=" << url.host() << "port=" << url.port(); } else { + if (connectError == ERR_UNKNOWN_HOST) + connectError = ERR_UNKNOWN_PROXY_HOST; kDebug(7113) << "Failed to connect to proxy:" << proxyUrl; badProxyUrls << url; } @@ -2252,6 +2254,8 @@ kDebug(7113) << "Connected to proxy: host=" << url.host() << "port=" << url.port(); break; } else { + if (connectError == ERR_UNKNOWN_HOST) + connectError = ERR_UNKNOWN_PROXY_HOST; kDebug(7113) << "Failed to connect to proxy:" << proxyUrl; badProxyUrls << url; QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); @@ -4734,7 +4738,7 @@ { // Close the connection only on connection errors. Otherwise, honor the // keep alive flag. - if (_err == ERR_CONNECTION_BROKEN) + if (_err == ERR_CONNECTION_BROKEN || _err == ERR_COULD_NOT_CONNECT) httpClose(false); else httpClose(m_request.isKeepAlive); diff -Nru kde4libs-4.7.90/kparts/browseropenorsavequestion.cpp kde4libs-4.7.95/kparts/browseropenorsavequestion.cpp --- kde4libs-4.7.90/kparts/browseropenorsavequestion.cpp 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/kparts/browseropenorsavequestion.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -96,7 +96,7 @@ if (mime) { // The mime-type is known so display the comment instead of mime-type mimeDescription = mime->comment(); } - QLabel* mimeTypeLabel = new QLabel(mainWidget()); + mimeTypeLabel = new QLabel(mainWidget()); mimeTypeLabel->setText(i18nc("@label Type of file", "Type: %1", mimeDescription)); mimeTypeLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); textVLayout->addWidget(mimeTypeLabel); @@ -147,6 +147,7 @@ KSqueezedTextLabel* questionLabel; BrowserOpenOrSaveQuestion::Features features; QLabel* fileNameLabel; + QLabel* mimeTypeLabel; protected: virtual void slotButtonClicked(int buttonId) @@ -320,8 +321,11 @@ // If the current mime-type is the default mime-type, then attempt to // determine the "real" mimetype from the file name. if (d->mimeType == KMimeType::defaultMimeType()) { - const KMimeType::Ptr mimePtr = KMimeType::findByUrl(suggestedFileName); - d->mimeType = mimePtr->name(); + int accuracy = 0; + const KMimeType::Ptr mimePtr = KMimeType::findByUrl(suggestedFileName, 0, false, true, &accuracy); + if (accuracy == 100 && !mimePtr->isDefault()) { + d->mimeTypeLabel->setText((d->mimeType = mimePtr->name())); + } } } diff -Nru kde4libs-4.7.90/kutils/kpluginselector.cpp kde4libs-4.7.95/kutils/kpluginselector.cpp --- kde4libs-4.7.90/kutils/kpluginselector.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/kutils/kpluginselector.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -257,8 +257,6 @@ d->lineEdit->setClickMessage(i18n("Search Plugins")); d->listView = new KCategorizedView(this); d->listView->setVerticalScrollMode(QListView::ScrollPerPixel); - d->listView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); // bug 213068 - d->listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // bug 213068 d->listView->setAlternatingRowColors(true); d->listView->setCategoryDrawer(d->categoryDrawer); d->dependenciesWidget = new Private::DependenciesWidget(this); diff -Nru kde4libs-4.7.90/nepomuk/query/literalterm.cpp kde4libs-4.7.95/nepomuk/query/literalterm.cpp --- kde4libs-4.7.90/nepomuk/query/literalterm.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/nepomuk/query/literalterm.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -199,7 +199,7 @@ QString regexFilter; if( regexTokens[i].second ) regexFilter += QLatin1Char('!'); - regexFilter += QString::fromLatin1( "REGEX(%1, \"%2\")" ) + regexFilter += QString::fromLatin1( "REGEX(%1, \"%2\", 'i')" ) .arg( varName, prepareRegexText(regexTokens[i].first) ); filters << regexFilter; diff -Nru kde4libs-4.7.90/nepomuk/query/query.cpp kde4libs-4.7.95/nepomuk/query/query.cpp --- kde4libs-4.7.90/nepomuk/query/query.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/nepomuk/query/query.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -450,7 +450,7 @@ QueryBuilderData qbd( d.constData(), sparqlFlags ); - // We restrict results to user visible types only. + // We restrict results to user visible types only. There is no need for this with file queries as normally all files are visible. // // Here we use an optimizations: // The storage service creates "nao:userVisible 1" entries for all visible resources. This contains two optimizations: @@ -462,7 +462,7 @@ // performance impact which the filter has not. // QString userVisibilityRestriction; - if( !(queryFlags()&NoResultRestrictions) ) { + if( !(queryFlags()&NoResultRestrictions) && !d->m_isFileQuery ) { userVisibilityRestriction = QString::fromLatin1("?r %1 %2 . FILTER(%2>0) . ") .arg(Soprano::Node::resourceToN3(Soprano::Vocabulary::NAO::userVisible()), qbd.uniqueVarName()); diff -Nru kde4libs-4.7.90/nepomuk/utils/typefacet.cpp kde4libs-4.7.95/nepomuk/utils/typefacet.cpp --- kde4libs-4.7.90/nepomuk/utils/typefacet.cpp 2011-11-04 14:32:16.000000000 +0000 +++ kde4libs-4.7.95/nepomuk/utils/typefacet.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -68,7 +68,6 @@ m_fileTypes.append( qMakePair(i18nc("@option:check A filter on file type - audio files", "Audio"), Query::ComparisonTerm(Nepomuk::Vocabulary::NIE::mimeType(), Query::LiteralTerm(QLatin1String("audio")))) ); m_fileTypes.append( qMakePair(i18nc("@option:check A filter on file type - media video", "Video"), - Query::ResourceTypeTerm(Nepomuk::Vocabulary::NFO::Video()) || Query::ComparisonTerm(Nepomuk::Vocabulary::NIE::mimeType(), Query::LiteralTerm(QLatin1String("video")))) ); m_fileTypes.append( qMakePair(i18nc("@option:check A filter on file type", "Images"), diff -Nru kde4libs-4.7.90/plasma/abstracttoolbox.cpp kde4libs-4.7.95/plasma/abstracttoolbox.cpp --- kde4libs-4.7.90/plasma/abstracttoolbox.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/abstracttoolbox.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -58,22 +58,19 @@ AbstractToolBox *AbstractToolBox::load(const QString &name, const QVariantList &args, Plasma::Containment *containment) { - const QString constraint = QString("[X-KDE-PluginInfo-Name] == '%1'").arg(name); + const QString constraint = name.isEmpty() ? QString() : QString("[X-KDE-PluginInfo-Name] == '%1'").arg(name); KService::List offers = KServiceTypeTrader::self()->query("Plasma/ToolBox", constraint); if (!offers.isEmpty()) { KService::Ptr offer = offers.first(); KPluginLoader plugin(*offer); - - if (!Plasma::isPluginVersionCompatible(plugin.pluginVersion())) { - return 0; + if (Plasma::isPluginVersionCompatible(plugin.pluginVersion())) { + return offer->createInstance(containment, args); } - - return offer->createInstance(containment, args); - } else { - return 0; } + + return 0; } KPluginInfo::List AbstractToolBox::listToolBoxInfo(const QString diff -Nru kde4libs-4.7.90/plasma/applet.cpp kde4libs-4.7.95/plasma/applet.cpp --- kde4libs-4.7.90/plasma/applet.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/applet.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -1567,6 +1567,8 @@ foreach (QWidget *w, widgets) { w->addAction(d->activationAction); } + } else if (d->activationAction->globalShortcut() == shortcut) { + return; } //kDebug() << "before" << shortcut.primary() << d->activationAction->globalShortcut().primary(); @@ -1921,6 +1923,7 @@ #ifndef PLASMA_NO_KUTILS KCModuleProxy *module = new KCModuleProxy(kcm); if (module->realModule()) { + connect(module, SIGNAL(changed(bool)), dialog, SLOT(settingsModified(bool))); dialog->addPage(module, module->moduleInfo().moduleName(), module->moduleInfo().icon()); hasPages = true; } else { @@ -2027,6 +2030,7 @@ dialog->setAttribute(Qt::WA_DeleteOnClose, true); q->createConfigurationInterface(dialog); dialog->showButton(KDialog::Default, false); + dialog->showButton(KDialog::Help, false); QObject::connect(dialog, SIGNAL(applyClicked()), q, SLOT(configDialogFinished())); QObject::connect(dialog, SIGNAL(okClicked()), q, SLOT(configDialogFinished())); return dialog; @@ -2050,11 +2054,11 @@ if (!shortcutEditor) { shortcutEditor = new KKeySequenceWidget(page); - QObject::connect(shortcutEditor, SIGNAL(destroyed(QObject*)), q, SLOT(clearShortcutEditorPtr())); + QObject::connect(shortcutEditor.data(), SIGNAL(keySequenceChanged(QKeySequence)), dialog, SLOT(settingsModified())); } - shortcutEditor->setKeySequence(q->globalShortcut().primary()); - layout->addWidget(shortcutEditor); + shortcutEditor.data()->setKeySequence(q->globalShortcut().primary()); + layout->addWidget(shortcutEditor.data()); layout->addStretch(); dialog->addPage(page, i18n("Keyboard Shortcut"), "preferences-desktop-keyboard"); @@ -2069,7 +2073,9 @@ QWidget *page = new QWidget; publishUI.setupUi(page); publishUI.publishCheckbox->setChecked(q->isPublished()); + QObject::connect(publishUI.publishCheckbox, SIGNAL(clicked(bool)), dialog, SLOT(settingsModified())); publishUI.allUsersCheckbox->setEnabled(q->isPublished()); + QObject::connect(publishUI.allUsersCheckbox, SIGNAL(clicked(bool)), dialog, SLOT(settingsModified())); QString resourceName = i18nc("%1 is the name of a plasmoid, %2 the name of the machine that plasmoid is published on", @@ -2095,15 +2101,10 @@ } } -void AppletPrivate::clearShortcutEditorPtr() -{ - shortcutEditor = 0; -} - void AppletPrivate::configDialogFinished() { if (shortcutEditor) { - QKeySequence sequence = shortcutEditor->keySequence(); + QKeySequence sequence = shortcutEditor.data()->keySequence(); if (sequence != q->globalShortcut().primary()) { q->setGlobalShortcut(KShortcut(sequence)); emit q->configNeedsSaving(); @@ -2177,11 +2178,6 @@ void AppletPrivate::propagateConfigChanged() { - if (script && configLoader) { - configLoader->readConfig(); - script->configChanged(); - } - if (isContainment) { Containment *c = qobject_cast(q); if (c) { @@ -2194,6 +2190,12 @@ void Applet::configChanged() { + if (d->script) { + if (d->configLoader) { + d->configLoader->readConfig(); + } + d->script->configChanged(); + } } void Applet::createConfigurationInterface(KConfigDialog *parent) @@ -2662,7 +2664,6 @@ configLoader(0), actions(AppletPrivate::defaultActions(applet)), activationAction(0), - shortcutEditor(0), itemStatus(UnknownStatus), preferredSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored), modificationsTimer(0), diff -Nru kde4libs-4.7.90/plasma/applet.h kde4libs-4.7.95/plasma/applet.h --- kde4libs-4.7.90/plasma/applet.h 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/applet.h 2011-12-21 00:14:57.000000000 +0000 @@ -1118,7 +1118,6 @@ Q_PRIVATE_SLOT(d, void selectItemToDestroy()) Q_PRIVATE_SLOT(d, void updateRect(const QRectF& rect)) Q_PRIVATE_SLOT(d, void destroyMessageOverlay()) - Q_PRIVATE_SLOT(d, void clearShortcutEditorPtr()) Q_PRIVATE_SLOT(d, void configDialogFinished()) Q_PRIVATE_SLOT(d, void updateShortcuts()) Q_PRIVATE_SLOT(d, void publishCheckboxStateChanged(int state)) diff -Nru kde4libs-4.7.90/plasma/CMakeLists.txt kde4libs-4.7.95/plasma/CMakeLists.txt --- kde4libs-4.7.90/plasma/CMakeLists.txt 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/plasma/CMakeLists.txt 2011-12-21 00:14:57.000000000 +0000 @@ -140,6 +140,7 @@ private/storage.cpp private/storagethread.cpp private/style.cpp + private/themedwidgetinterface.cpp private/trustedonlyauthorization.cpp private/tooltip.cpp private/wallpaperrenderthread.cpp @@ -450,8 +451,6 @@ install(FILES data/knewstuff/plasmoids.knsrc DESTINATION ${CONFIG_INSTALL_DIR}) -install(FILES data/kconfig_updates/plasma_popupapplet_fix_groups.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) -install(PROGRAMS data/kconfig_updates/plasma_popupapplet_fix_groups.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) install(FILES data/operations/dataengineservice.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services) install(FILES data/operations/plasmoidservice.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services) install(FILES data/operations/storage.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services) diff -Nru kde4libs-4.7.90/plasma/containment.cpp kde4libs-4.7.95/plasma/containment.cpp --- kde4libs-4.7.90/plasma/containment.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/containment.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -160,7 +160,7 @@ setCacheMode(NoCache); setFlag(QGraphicsItem::ItemIsMovable, false); - setFlag(QGraphicsItem::ItemClipsChildrenToShape, false); + setFlag(QGraphicsItem::ItemClipsChildrenToShape, true); setAcceptDrops(true); setAcceptsHoverEvents(true); diff -Nru kde4libs-4.7.90/plasma/corona.cpp kde4libs-4.7.95/plasma/corona.cpp --- kde4libs-4.7.90/plasma/corona.cpp 2011-08-06 10:43:35.000000000 +0000 +++ kde4libs-4.7.95/plasma/corona.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -113,7 +113,7 @@ if (configName.isEmpty() || configName == d->configName) { c = config(); } else { - c = KSharedConfig::openConfig(configName); + c = KSharedConfig::openConfig(configName, KConfig::SimpleConfig); } d->saveLayout(c); @@ -337,7 +337,7 @@ KSharedConfigPtr Corona::config() const { if (!d->config) { - d->config = KSharedConfig::openConfig(d->configName); + d->config = KSharedConfig::openConfig(d->configName, KConfig::SimpleConfig); } return d->config; @@ -482,7 +482,7 @@ } } - kDebug() << actualItem; + //kDebug() << actualItem; if (actualItem) { v = viewFor(actualItem); @@ -618,6 +618,7 @@ } pos.rx() = qMax(0, pos.x()); + pos.ry() = qMax(0, pos.y()); return pos; } diff -Nru kde4libs-4.7.90/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.pl kde4libs-4.7.95/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.pl --- kde4libs-4.7.90/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.pl 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -#!/usr/bin/perl - -while(<>) { - if ($_ =~ m/^\[.*\[Configuration\]\[PopupApplet\]$/) { - print "# DELETEGROUP $_"; - $_ =~ s/\[Configuration\]\[PopupApplet\]$/[PopupApplet]/; - } - print $_; -} diff -Nru kde4libs-4.7.90/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.upd kde4libs-4.7.95/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.upd --- kde4libs-4.7.90/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.upd 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/data/kconfig_updates/plasma_popupapplet_fix_groups.upd 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -# Fix groups of the form ...[Configuration][PopupApplet] into ...[PopupApplet] -Id=PlasmaPopupAppletFixGroups1 -File=plasma-appletsrc -Script=plasma_popupapplet_fix_groups.pl,perl -# -Id=PlasmaPopupAppletFixGroups2 -File=plasmarc -Script=plasma_popupapplet_fix_groups.pl,perl -# -Id=PlasmaPopupAppletFixGroups3 -File=plasmoidviewer-appletsrc -Script=plasma_popupapplet_fix_groups.pl,perl diff -Nru kde4libs-4.7.90/plasma/data/services/plasma.protocol kde4libs-4.7.95/plasma/data/services/plasma.protocol --- kde4libs-4.7.90/plasma/data/services/plasma.protocol 2011-10-11 14:41:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/data/services/plasma.protocol 2011-12-21 00:14:57.000000000 +0000 @@ -38,6 +38,7 @@ Description[pt_BR]=Protocolo para os serviços do Plasma Description[ro]=Un protocol pentru servicii Plasma Description[ru]=Протокол для служб Plasma +Description[se]=Protokolla Plasma-bálvalusaid várás Description[sk]=Protokol pre Plasma služby Description[sr]=Протокол за плазма сервисе Description[sr@ijekavian]=Протокол за плазма сервисе diff -Nru kde4libs-4.7.90/plasma/data/servicetypes/plasma-service.desktop kde4libs-4.7.95/plasma/data/servicetypes/plasma-service.desktop --- kde4libs-4.7.90/plasma/data/servicetypes/plasma-service.desktop 2011-08-22 13:13:55.000000000 +0000 +++ kde4libs-4.7.95/plasma/data/servicetypes/plasma-service.desktop 2011-12-21 00:14:57.000000000 +0000 @@ -38,6 +38,7 @@ Comment[pt_BR]=Serviço do Plasma Comment[ro]=Servicu Plasma Comment[ru]=Служба Plasma +Comment[se]=Plasma-bálvalus Comment[si]=ප්ලස්මා සේවා Comment[sk]=Služba Plasma Comment[sr]=Плазма сервис diff -Nru kde4libs-4.7.90/plasma/dialog.cpp kde4libs-4.7.95/plasma/dialog.cpp --- kde4libs-4.7.90/plasma/dialog.cpp 2011-08-22 13:14:07.000000000 +0000 +++ kde4libs-4.7.95/plasma/dialog.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -490,8 +490,27 @@ break; } - if ((newWidth >= minimumSize().width()) && (newHeight >= minimumSize().height())) { - setGeometry(QRect(position, QSize(newWidth, newHeight))); + QRect newGeom(position, QSize(newWidth, newHeight)); + + // now sanity check the resize results again min constraints, if any + if (d->leftResizeMin > -1 && newGeom.left() > d->leftResizeMin) { + newGeom.setLeft(d->leftResizeMin); + } + + if (d->topResizeMin > -1 && newGeom.top() > d->topResizeMin) { + newGeom.setTop(d->topResizeMin); + } + + if (d->rightResizeMin > -1 && newGeom.right() < d->rightResizeMin) { + newGeom.setRight(d->rightResizeMin); + } + + if (d->bottomResizeMin > -1 && newGeom.bottom() < d->bottomResizeMin) { + newGeom.setBottom(d->bottomResizeMin); + } + + if ((newGeom.width() >= minimumSize().width()) && (newGeom.height() >= minimumSize().height())) { + setGeometry(newGeom); } } @@ -518,9 +537,9 @@ void Dialog::mouseReleaseEvent(QMouseEvent *event) { if (d->resizeStartCorner != Dialog::NoCorner) { + emit dialogResized(); d->resizeStartCorner = Dialog::NoCorner; unsetCursor(); - emit dialogResized(); } QWidget::mouseReleaseEvent(event); @@ -535,12 +554,6 @@ bool Dialog::event(QEvent *event) { - if (event->type() == QEvent::Paint) { - QPainter p(this); - p.setCompositionMode(QPainter::CompositionMode_Source); - p.fillRect(rect(), Qt::transparent); - } - return QWidget::event(event); } @@ -751,13 +764,45 @@ return d->resizeCorners; } +bool Dialog::isUserResizing() const +{ + return d->resizeStartCorner > NoCorner; +} + +void Dialog::setMinimumResizeLimits(int left, int top, int right, int bottom) +{ + d->leftResizeMin = left; + d->topResizeMin = top; + d->rightResizeMin = right; + d->bottomResizeMin = bottom; +} + +void Dialog::getMinimumResizeLimits(int *left, int *top, int *right, int *bottom) +{ + if (left) { + *left = d->leftResizeMin; + } + + if (top) { + *top = d->topResizeMin; + } + + if (right) { + *right = d->rightResizeMin; + } + + if (bottom) { + *bottom = d->bottomResizeMin; + } +} + void Dialog::animatedHide(Plasma::Direction direction) { if (!isVisible()) { return; } - if (!KWindowSystem::compositingActive()) { + if (!Plasma::Theme::defaultTheme()->windowTranslucencyEnabled()) { hide(); return; } @@ -786,7 +831,7 @@ void Dialog::animatedShow(Plasma::Direction direction) { - if (!KWindowSystem::compositingActive()) { + if (!Plasma::Theme::defaultTheme()->windowTranslucencyEnabled()) { show(); return; } @@ -810,7 +855,7 @@ break; } - if (KWindowSystem::compositingActive()) { + if (Plasma::Theme::defaultTheme()->windowTranslucencyEnabled()) { Plasma::WindowEffects::slideWindow(this, location); } diff -Nru kde4libs-4.7.90/plasma/dialog.h kde4libs-4.7.95/plasma/dialog.h --- kde4libs-4.7.90/plasma/dialog.h 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/dialog.h 2011-12-21 00:14:57.000000000 +0000 @@ -98,6 +98,31 @@ ResizeCorners resizeCorners() const; /** + * @return true if currently being resized by the user + */ + bool isUserResizing() const; + + /** + * Sets the minimum values that each of four sides of the rect may expand to or from + * + * @param left the screen coordinate that the left may not go beyond; -1 for no limit + * @param top the screen coordinate that the top may not go beyond; -1 for no limit + * @param right the screen coordinate that the right may not go beyond; -1 for no limit + * @param bottom the screen coordinate that the bottom may not go beyond; -1 for no limit + */ + void setMinimumResizeLimits(int left, int top, int right, int bottom); + + /** + * Retrives the minimum resize limits for the dialog + * + * @param left the screen coordinate that the left may not go beyond; -1 for no limit + * @param top the screen coordinate that the top may not go beyond; -1 for no limit + * @param right the screen coordinate that the right may not go beyond; -1 for no limit + * @param bottom the screen coordinate that the bottom may not go beyond; -1 for no limit + */ + void getMinimumResizeLimits(int *left, int *top, int *right, int *bottom); + + /** * Causes an animated hide; requires compositing to work, otherwise * the dialog will simply hide. * @since 4.3 diff -Nru kde4libs-4.7.90/plasma/packagemetadata.cpp kde4libs-4.7.95/plasma/packagemetadata.cpp --- kde4libs-4.7.90/plasma/packagemetadata.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/packagemetadata.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -94,7 +94,9 @@ config.writeEntry("Icon", d->icon); config.writeEntry("Comment", d->description); config.writeEntry("Keywords", d->keywords); + config.deleteEntry("X-KDE-Keywords"); config.writeEntry("X-KDE-ServiceTypes", d->serviceType); + config.deleteEntry("ServiceTypes"); config.writeEntry("X-KDE-PluginInfo-Name", d->pluginName); config.writeEntry("X-KDE-PluginInfo-Author", d->author); config.writeEntry("X-KDE-PluginInfo-Email", d->email); @@ -120,8 +122,27 @@ d->name = config.readEntry("Name", d->name); d->icon = config.readEntry("Icon", d->icon); d->description = config.readEntry("Comment", d->description); - d->keywords = config.readEntry("Keywords", d->keywords); - d->serviceType = config.readEntry("X-KDE-ServiceTypes", d->serviceType); + bool hasKeywords = config.hasKey("Keywords"); + bool hasXKdeKeywords = config.hasKey("X-KDE-Keywords"); + if (hasKeywords && hasXKdeKeywords) { + d->keywords = config.readEntry("Keywords", d->keywords); + d->keywords.append(config.readEntry("X-KDE-Keywords", d->keywords)); + } else if (hasKeywords) { + d->keywords = config.readEntry("Keywords", d->keywords); + } else if (hasXKdeKeywords) { + d->keywords = config.readEntry("X-KDE-Keywords", d->keywords); + } + bool hasServiceTypes = config.hasKey("ServiceTypes"); + bool hasXKdeServiceTypes = config.hasKey("X-KDE-ServiceTypes"); + if (hasServiceTypes && hasXKdeServiceTypes) { + d->serviceType = config.readEntry("ServiceTypes", d->serviceType); + d->serviceType.append(','); + d->serviceType.append(config.readEntry("X-KDE-ServiceTypes", d->serviceType)); + } else if (hasServiceTypes) { + d->serviceType = config.readEntry("ServiceTypes", d->serviceType); + } else if (hasXKdeServiceTypes) { + d->serviceType = config.readEntry("X-KDE-ServiceTypes", d->serviceType); + } d->pluginName = config.readEntry("X-KDE-PluginInfo-Name", d->pluginName); d->author = config.readEntry("X-KDE-PluginInfo-Author", d->author); d->email = config.readEntry("X-KDE-PluginInfo-Email", d->email); diff -Nru kde4libs-4.7.90/plasma/packagestructure.cpp kde4libs-4.7.95/plasma/packagestructure.cpp --- kde4libs-4.7.90/plasma/packagestructure.cpp 2011-09-26 09:41:11.000000000 +0000 +++ kde4libs-4.7.95/plasma/packagestructure.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -614,7 +614,7 @@ if (mimetype->is("application/zip")) { archive = new KZip(d->path); - } else if (mimetype->is("application/x-compressed-tar") || + } else if (mimetype->is("application/x-compressed-tar") || mimetype->is("application/x-gzip") || mimetype->is("application/x-tar")|| mimetype->is("application/x-bzip-compressed-tar")) { archive = new KTar(d->path); } else { diff -Nru kde4libs-4.7.90/plasma/popupapplet.cpp kde4libs-4.7.95/plasma/popupapplet.cpp --- kde4libs-4.7.90/plasma/popupapplet.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/popupapplet.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -446,7 +446,6 @@ case Horizontal: { const int size = IconSize(KIconLoader::Panel); return QSizeF(size, size); - break; } default: break; @@ -601,6 +600,9 @@ d->autohideTimer->stop(); } } + } else if (event->timerId() == d->showDialogTimer.timerId()) { + d->showDialogTimer.stop(); + d->showDialog(); } else { Applet::timerEvent(event); } @@ -608,6 +610,7 @@ void PopupApplet::hidePopup() { + d->showDialogTimer.stop(); d->delayedShowTimer.stop(); Dialog *dialog = d->dialogPtr.data(); @@ -749,24 +752,34 @@ } ToolTipManager::self()->hide(q); - updateDialogPosition(); + showDialogTimer.start(0, q); + } +} - KWindowSystem::setOnAllDesktops(dialog->winId(), true); - KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager); +void PopupAppletPrivate::showDialog() +{ + Plasma::Dialog *dialog = dialogPtr.data(); + if (!dialog) { + return; + } - if (icon) { - dialog->setAspectRatioMode(savedAspectRatio); - } + updateDialogPosition(); - if (q->location() != Floating) { - dialog->animatedShow(locationToDirection(q->location())); - } else { - dialog->show(); - } + KWindowSystem::setOnAllDesktops(dialog->winId(), true); + KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager); - if (!(dialog->windowFlags() & Qt::X11BypassWindowManagerHint)) { - KWindowSystem::activateWindow(dialog->winId()); - } + if (icon) { + dialog->setAspectRatioMode(savedAspectRatio); + } + + if (q->location() != Floating) { + dialog->animatedShow(locationToDirection(q->location())); + } else { + dialog->show(); + } + + if (!(dialog->windowFlags() & Qt::X11BypassWindowManagerHint)) { + KWindowSystem::activateWindow(dialog->winId()); } } @@ -800,7 +813,7 @@ sizeGroup.writeEntry("DialogHeight", dialog->height()); sizeGroup.writeEntry("DialogWidth", dialog->width()); - updateDialogPosition(); + updateDialogPosition(!dialog->isUserResizing()); emit q->configNeedsSaving(); emit q->appletTransformedByUser(); @@ -890,7 +903,7 @@ } } -void PopupAppletPrivate::updateDialogPosition() +void PopupAppletPrivate::updateDialogPosition(bool move) { Plasma::Dialog *dialog = dialogPtr.data(); if (!dialog) { @@ -907,85 +920,56 @@ return; } - QSize s = dialog->size(); - QPoint pos = view->mapFromScene(q->scenePos()); + const QPoint appletPos = view->mapToGlobal(view->mapFromScene(q->scenePos())); - if (!q->containment() || view == q->containment()->view()) { - pos = corona->popupPosition(q, s, popupAlignment); - } else { - pos = corona->popupPosition(q->parentItem(), s, popupAlignment); + QPoint dialogPos = dialog->pos(); + if (move) { + if (!q->containment() || view == q->containment()->view()) { + dialogPos = corona->popupPosition(q, dialog->size(), popupAlignment); + } else { + dialogPos = corona->popupPosition(q->parentItem(), dialog->size(), popupAlignment); + } } bool reverse = false; if (q->formFactor() == Plasma::Vertical) { - if (view->mapToGlobal(view->mapFromScene(q->scenePos())).y() + q->size().height()/2 < pos.y() + dialog->size().width()/2) { - reverse = true; - } + reverse = (appletPos.y() + (q->size().height() / 2)) < (dialogPos.y() + (dialog->size().height() / 2)); + dialog->setMinimumResizeLimits(-1, appletPos.y(), -1, appletPos.y() + q->size().height()); } else { - if (view->mapToGlobal(view->mapFromScene(q->scenePos())).x() + q->size().width()/2 < pos.x() + dialog->size().width()/2) { - reverse = true; - } + reverse = (appletPos.x() + (q->size().width() / 2)) < (dialogPos.x() + (dialog->size().width() / 2)); + dialog->setMinimumResizeLimits(appletPos.x(), -1, appletPos.x() + q->size().width(), -1); } + Dialog::ResizeCorners resizeCorners = Dialog::NoCorner; switch (q->location()) { case BottomEdge: - if (pos.x() >= q->pos().x()) { - dialog->setResizeHandleCorners(Dialog::NorthEast); - } else { - dialog->setResizeHandleCorners(Dialog::NorthWest); - } - - if (reverse) { - popupPlacement = Plasma::TopPosedLeftAlignedPopup; - } else { - popupPlacement = Plasma::TopPosedRightAlignedPopup; - } + resizeCorners = Dialog::NorthEast | Dialog::NorthWest; + popupPlacement = reverse ? TopPosedLeftAlignedPopup : TopPosedRightAlignedPopup; break; case TopEdge: - if (pos.x() >= q->pos().x()) { - dialog->setResizeHandleCorners(Dialog::SouthEast); - } else { - dialog->setResizeHandleCorners(Dialog::SouthWest); - } - - if (reverse) { - popupPlacement = Plasma::BottomPosedLeftAlignedPopup; - } else { - popupPlacement = Plasma::BottomPosedRightAlignedPopup; - } + resizeCorners = Dialog::SouthEast | Dialog::SouthWest; + popupPlacement = reverse ? Plasma::BottomPosedLeftAlignedPopup : Plasma::BottomPosedRightAlignedPopup; break; case LeftEdge: - if (pos.y() >= q->pos().y()) { - dialog->setResizeHandleCorners(Dialog::SouthEast); - } else { - dialog->setResizeHandleCorners(Dialog::NorthEast); - } - - if (reverse) { - popupPlacement = Plasma::RightPosedTopAlignedPopup; - } else { - popupPlacement = Plasma::RightPosedBottomAlignedPopup; - } + resizeCorners = Dialog::SouthEast | Dialog::NorthEast; + popupPlacement = reverse ? RightPosedTopAlignedPopup : RightPosedBottomAlignedPopup; break; case RightEdge: - if (pos.y() >= q->pos().y()) { - dialog->setResizeHandleCorners(Dialog::SouthWest); - } else { - dialog->setResizeHandleCorners(Dialog::NorthWest); - } - - if (reverse) { - popupPlacement = Plasma::LeftPosedTopAlignedPopup; - } else { - popupPlacement = Plasma::LeftPosedBottomAlignedPopup; - } + resizeCorners = Dialog::SouthWest | Dialog::NorthWest; + popupPlacement = reverse ? LeftPosedTopAlignedPopup : LeftPosedBottomAlignedPopup; break; + default: - dialog->setResizeHandleCorners(Dialog::NorthEast); + popupPlacement = FloatingPopup; + resizeCorners = Dialog::All; + break; } - dialog->move(pos); + dialog->setResizeHandleCorners(resizeCorners); + if (move) { + dialog->move(dialogPos); + } } } // Plasma namespace diff -Nru kde4libs-4.7.90/plasma/private/applet_p.h kde4libs-4.7.95/plasma/private/applet_p.h --- kde4libs-4.7.90/plasma/private/applet_p.h 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/applet_p.h 2011-12-21 00:14:57.000000000 +0000 @@ -126,7 +126,6 @@ void destroyMessageOverlay(); void addGlobalShortcutsPage(KConfigDialog *dialog); void addPublishPage(KConfigDialog *dialog); - void clearShortcutEditorPtr(); void configDialogFinished(); KConfigDialog *generateGenericConfigDialog(); void addStandardConfigurationPages(KConfigDialog *dialog); @@ -193,7 +192,7 @@ KAction *activationAction; // configuration - KKeySequenceWidget *shortcutEditor; //TODO: subclass KConfigDialog and encapsulate this in there + QWeakPointer shortcutEditor; //TODO: subclass KConfigDialog and encapsulate this in there ItemStatus itemStatus; QString remoteLocation; diff -Nru kde4libs-4.7.90/plasma/private/associatedapplicationmanager.cpp kde4libs-4.7.95/plasma/private/associatedapplicationmanager.cpp --- kde4libs-4.7.90/plasma/private/associatedapplicationmanager.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/associatedapplicationmanager.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -100,9 +100,6 @@ QString AssociatedApplicationManager::application(const Plasma::Applet *applet) const { return d->applicationNames.value(applet); - if (!d->applicationNames.contains(applet)) { - connect(applet, SIGNAL(destroyed(QObject *)), this, SLOT(cleanupApplet(QObject *))); - } } void AssociatedApplicationManager::setUrls(Plasma::Applet *applet, const KUrl::List &urls) diff -Nru kde4libs-4.7.90/plasma/private/dialog_p.h kde4libs-4.7.95/plasma/private/dialog_p.h --- kde4libs-4.7.90/plasma/private/dialog_p.h 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/dialog_p.h 2011-12-21 00:14:57.000000000 +0000 @@ -40,6 +40,10 @@ view(0), resizeCorners(Dialog::NoCorner), resizeStartCorner(Dialog::NoCorner), + leftResizeMin(-1), + topResizeMin(-1), + rightResizeMin(-1), + bottomResizeMin(-1), moveTimer(0), aspectRatioMode(Plasma::IgnoreAspectRatio), resizeChecksWithBorderCheck(false) @@ -72,6 +76,10 @@ Dialog::ResizeCorners resizeCorners; QMap resizeAreas; int resizeStartCorner; + int leftResizeMin; + int topResizeMin; + int rightResizeMin; + int bottomResizeMin; QTimer *moveTimer; QTimer *adjustViewTimer; QTimer *adjustSizeTimer; diff -Nru kde4libs-4.7.90/plasma/private/effectwatcher.cpp kde4libs-4.7.95/plasma/private/effectwatcher.cpp --- kde4libs-4.7.90/plasma/private/effectwatcher.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/effectwatcher.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -58,7 +58,7 @@ bool nowEffectActive = isEffectActive(); if (m_effectActive != nowEffectActive) { m_effectActive = nowEffectActive; - emit blurBehindChanged(m_effectActive); + emit effectChanged(m_effectActive); } } } diff -Nru kde4libs-4.7.90/plasma/private/effectwatcher_p.h kde4libs-4.7.95/plasma/private/effectwatcher_p.h --- kde4libs-4.7.90/plasma/private/effectwatcher_p.h 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/effectwatcher_p.h 2011-12-21 00:14:57.000000000 +0000 @@ -41,7 +41,7 @@ #endif Q_SIGNALS: - void blurBehindChanged(bool blur); + void effectChanged(bool on); private: QString m_property; @@ -50,4 +50,4 @@ } -#endif \ No newline at end of file +#endif diff -Nru kde4libs-4.7.90/plasma/private/packages.cpp kde4libs-4.7.95/plasma/private/packages.cpp --- kde4libs-4.7.90/plasma/private/packages.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/packages.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -22,6 +22,7 @@ #include #include // FLT_MAX +#include #include #include @@ -82,7 +83,10 @@ PlasmoidPackage::~PlasmoidPackage() { #ifndef PLASMA_NO_KNEWSTUFF - delete m_knsDialog.data(); + if (!QCoreApplication::closingDown()) { + // let it "leak" on application close as this causes crashes otherwise, BUG 288153 + delete m_knsDialog.data(); + } #endif } @@ -103,6 +107,7 @@ KNS3::DownloadDialog *knsDialog = m_knsDialog.data(); if (!knsDialog) { m_knsDialog = knsDialog = new KNS3::DownloadDialog("plasmoids.knsrc", parent); + knsDialog->setProperty("DoNotCloseController", true); connect(knsDialog, SIGNAL(accepted()), this, SIGNAL(newWidgetBrowserFinished())); } diff -Nru kde4libs-4.7.90/plasma/private/popupapplet_p.h kde4libs-4.7.95/plasma/private/popupapplet_p.h --- kde4libs-4.7.90/plasma/private/popupapplet_p.h 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/popupapplet_p.h 2011-12-21 00:14:57.000000000 +0000 @@ -36,12 +36,13 @@ void iconSizeChanged(int group); void internalTogglePopup(bool fromActivatedSignal = false); + void showDialog(); void hideTimedPopup(); void clearPopupLostFocus(); void dialogSizeChanged(); void dialogStatusChanged(bool status); void restoreDialogSize(); - void updateDialogPosition(); + void updateDialogPosition(bool move = true); void popupConstraintsEvent(Plasma::Constraints constraints); void checkExtenderAppearance(Plasma::FormFactor f); KConfigGroup popupConfigGroup(); @@ -61,6 +62,7 @@ Plasma::AspectRatioMode savedAspectRatio; QTimer *autohideTimer; QBasicTimer delayedShowTimer; + QBasicTimer showDialogTimer; QPoint clicked; ItemStatus preShowStatus; bool popupLostFocus : 1; diff -Nru kde4libs-4.7.90/plasma/private/style.cpp kde4libs-4.7.95/plasma/private/style.cpp --- kde4libs-4.7.90/plasma/private/style.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/style.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -303,12 +303,13 @@ rect.moveCenter(QPoint(option->rect.center().x(), rect.center().y())); } } - return rect; break; } default: - return rect; + break; } + return rect; + } int Style::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const diff -Nru kde4libs-4.7.90/plasma/private/themedwidgetinterface.cpp kde4libs-4.7.95/plasma/private/themedwidgetinterface.cpp --- kde4libs-4.7.90/plasma/private/themedwidgetinterface.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/themedwidgetinterface.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -0,0 +1,85 @@ +/****************************************************************************** +* Copyright 2011 by Aaron Seigo * +* * +* This library is free software; you can redistribute it and/or * +* modify it under the terms of the GNU Library General Public * +* License as published by the Free Software Foundation; either * +* version 2 of the License, or (at your option) any later version. * +* * +* This library is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +* Library General Public License for more details. * +* * +* You should have received a copy of the GNU Library General Public License * +* along with this library; see the file COPYING.LIB. If not, write to * +* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * +* Boston, MA 02110-1301, USA. * +*******************************************************************************/ + +#include "themedwidgetinterface_p.h" + +#include "theme.h" + +namespace Plasma +{ + +PaletteHelper *PaletteHelper::s_paletteHelper = 0; + +PaletteHelper::PaletteHelper() + : QObject() +{ + generatePalettes(); + connect(Theme::defaultTheme(), SIGNAL(themeChanged()), this, SLOT(generatePalettes())); + connect(KGlobalSettings::self(), SIGNAL(kdisplayPaletteChanged()), this, SLOT(generatePalettes())); +} + +PaletteHelper *PaletteHelper::self() +{ + if (!s_paletteHelper) { + s_paletteHelper = new PaletteHelper; + } + + return s_paletteHelper; +} + +void PaletteHelper::generatePalettes() +{ + Theme *theme = Theme::defaultTheme(); + + QColor color = theme->color(Theme::TextColor); + palette = qApp->palette(); + palette.setColor(QPalette::Normal, QPalette::WindowText, color); + palette.setColor(QPalette::Inactive, QPalette::WindowText, color); + + palette.setColor(QPalette::Normal, QPalette::Link, theme->color(Theme::LinkColor)); + palette.setColor(QPalette::Normal, QPalette::LinkVisited, theme->color(Theme::VisitedLinkColor)); + + qreal alpha = color.alphaF(); + color.setAlphaF(0.6); + palette.setColor(QPalette::Disabled, QPalette::WindowText, color); + color.setAlphaF(alpha); + + palette.setColor(QPalette::Normal, QPalette::Text, color); + palette.setColor(QPalette::Inactive, QPalette::Text, color); + + const QColor buttonColor = Theme::defaultTheme()->color(Theme::ButtonTextColor); + palette.setColor(QPalette::Normal, QPalette::ButtonText, buttonColor); + palette.setColor(QPalette::Inactive, QPalette::ButtonText, buttonColor); + + //FIXME: hardcoded colors .. looks incorrect + palette.setColor(QPalette::Normal, QPalette::Base, QColor(0,0,0,0)); + palette.setColor(QPalette::Inactive, QPalette::Base, QColor(0,0,0,0)); + + buttonPalette = palette; + buttonPalette.setColor(QPalette::Normal, QPalette::Text, buttonColor); + buttonPalette.setColor(QPalette::Inactive, QPalette::Text, buttonColor); + + emit palettesUpdated(); +} + + +} // namespace Plasma + +#include "themedwidgetinterface_p.moc" + diff -Nru kde4libs-4.7.90/plasma/private/themedwidgetinterface_p.h kde4libs-4.7.95/plasma/private/themedwidgetinterface_p.h --- kde4libs-4.7.90/plasma/private/themedwidgetinterface_p.h 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/themedwidgetinterface_p.h 2011-12-21 00:14:57.000000000 +0000 @@ -28,6 +28,28 @@ namespace Plasma { +class PaletteHelper : public QObject +{ + Q_OBJECT +public: + static PaletteHelper *self(); + +public Q_SLOTS: + void generatePalettes(); + +Q_SIGNALS: + void palettesUpdated(); + +public: + QPalette palette; + QPalette buttonPalette; + +private: + PaletteHelper(); + static PaletteHelper *s_paletteHelper; +}; + + template class ThemedWidgetInterface { @@ -36,10 +58,10 @@ : q(publicClass), customPalette(false), customFont(false), - buttonColorForText(false) + buttonColorForText(false), + internalPaletteChange(false) { - QObject::connect(Theme::defaultTheme(), SIGNAL(themeChanged()), q, SLOT(setPalette())); - QObject::connect(KGlobalSettings::self(), SIGNAL(kdisplayPaletteChanged()), q, SLOT(setPalette())); + QObject::connect(PaletteHelper::self(), SIGNAL(palettesUpdated()), q, SLOT(setPalette())); } void initTheming() @@ -52,33 +74,10 @@ void setPalette() { if (!customPalette) { - QColor color = Theme::defaultTheme()->color(Theme::TextColor); - QPalette p = q->palette(); - p.setColor(QPalette::Normal, QPalette::WindowText, color); - p.setColor(QPalette::Inactive, QPalette::WindowText, color); - - p.setColor(QPalette::Normal, QPalette::Link, Theme::defaultTheme()->color(Theme::LinkColor)); - p.setColor(QPalette::Normal, QPalette::LinkVisited, Theme::defaultTheme()->color(Theme::VisitedLinkColor)); - - - qreal alpha = color.alphaF(); - color.setAlphaF(0.6); - p.setColor(QPalette::Disabled, QPalette::WindowText, color); - color.setAlphaF(alpha); - - const QColor buttonColor = Theme::defaultTheme()->color(Theme::ButtonTextColor); - p.setColor(QPalette::Normal, QPalette::Text, buttonColorForText ? buttonColor : color); - p.setColor(QPalette::Inactive, QPalette::Text, buttonColorForText ? buttonColor : color); - - p.setColor(QPalette::Normal, QPalette::ButtonText, buttonColor); - p.setColor(QPalette::Inactive, QPalette::ButtonText, buttonColor); - - //FIXME: hardcoded colors .. looks incorrect - p.setColor(QPalette::Normal, QPalette::Base, QColor(0,0,0,0)); - p.setColor(QPalette::Inactive, QPalette::Base, QColor(0,0,0,0)); - - q->setPalette(p); - customPalette = false; + internalPaletteChange = true; + q->setPalette((buttonColorForText ? PaletteHelper::self()->buttonPalette + : PaletteHelper::self()->palette)); + internalPaletteChange = false; } if (!customFont) { @@ -95,7 +94,10 @@ break; case QEvent::PaletteChange: - customPalette = true; + if (!internalPaletteChange && + q->palette() != (buttonColorForText ? PaletteHelper::self()->buttonPalette : PaletteHelper::self()->palette)) { + customPalette = true; + } break; default: @@ -103,6 +105,13 @@ } } + void setWidget(QWidget *widget) + { + internalPaletteChange = true; + q->setWidget(widget); + internalPaletteChange = false; + } + void event(QEvent *event) { if (event->type() == QEvent::Show) { @@ -114,6 +123,7 @@ bool customPalette : 1; bool customFont : 1; bool buttonColorForText : 1; + bool internalPaletteChange : 1; }; } // namespace Plasma diff -Nru kde4libs-4.7.90/plasma/private/tooltip.cpp kde4libs-4.7.95/plasma/private/tooltip.cpp --- kde4libs-4.7.90/plasma/private/tooltip.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/private/tooltip.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -356,10 +356,9 @@ void ToolTip::paintEvent(QPaintEvent *e) { QPainter painter(this); - painter.setRenderHint(QPainter::Antialiasing); painter.setClipRect(e->rect()); painter.setCompositionMode(QPainter::CompositionMode_Source); - painter.fillRect(rect(), Qt::transparent); + painter.fillRect(e->rect(), Qt::transparent); d->background->paintFrame(&painter); } diff -Nru kde4libs-4.7.90/plasma/theme.cpp kde4libs-4.7.95/plasma/theme.cpp --- kde4libs-4.7.90/plasma/theme.cpp 2011-08-22 13:14:07.000000000 +0000 +++ kde4libs-4.7.95/plasma/theme.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -85,8 +85,9 @@ defaultWallpaperWidth(DEFAULT_WALLPAPER_WIDTH), defaultWallpaperHeight(DEFAULT_WALLPAPER_HEIGHT), pixmapCache(0), + cachesToDiscard(NoCache), locolor(false), - compositingActive(KWindowSystem::compositingActive()), + compositingActive(KWindowSystem::self()->compositingActive()), blurActive(false), isDefault(false), useGlobal(true), @@ -97,27 +98,32 @@ ThemeConfig config; cacheTheme = config.cacheTheme(); + saveTimer = new QTimer(q); + saveTimer->setSingleShot(true); + saveTimer->setInterval(600); + QObject::connect(saveTimer, SIGNAL(timeout()), q, SLOT(scheduledCacheUpdate())); + + updateNotificationTimer = new QTimer(q); + updateNotificationTimer->setSingleShot(true); + updateNotificationTimer->setInterval(500); + QObject::connect(updateNotificationTimer, SIGNAL(timeout()), q, SLOT(notifyOfChanged())); + if (QPixmap::defaultDepth() > 8) { QObject::connect(KWindowSystem::self(), SIGNAL(compositingChanged(bool)), q, SLOT(compositingChanged(bool))); #ifdef Q_WS_X11 //watch for blur effect property changes as well - effectWatcher = 0; - effectWatcher = new EffectWatcher("_KDE_NET_WM_BLUR_BEHIND_REGION"); - QObject::connect(effectWatcher, SIGNAL(blurBehindChanged(bool)), q, SLOT(blurBehindChanged(bool))); + if (!s_blurEffectWatcher) { + s_blurEffectWatcher = new EffectWatcher("_KDE_NET_WM_BLUR_BEHIND_REGION"); + } + + QObject::connect(s_blurEffectWatcher, SIGNAL(effectChanged(bool)), q, SLOT(blurBehindChanged(bool))); #endif } - - saveTimer = new QTimer(q); - saveTimer->setSingleShot(true); - QObject::connect(saveTimer, SIGNAL(timeout()), q, SLOT(scheduledCacheUpdate())); } ~ThemePrivate() { delete pixmapCache; -#ifdef Q_WS_X11 - delete effectWatcher; -#endif } KConfigGroup &config() @@ -144,6 +150,8 @@ void compositingChanged(bool active); void discardCache(CacheTypes caches); void scheduledCacheUpdate(); + void scheduleThemeChangeNotification(CacheTypes caches); + void notifyOfChanged(); void colorsChanged(); void blurBehindChanged(bool blur); bool useCache(); @@ -159,7 +167,10 @@ static const char *systemColorsTheme; static const char *themeRcFile; static PackageStructure::Ptr packageStructure; - +#ifdef Q_WS_X11 + static EffectWatcher *s_blurEffectWatcher; +#endif + Theme *q; QString themeName; QList fallbackThemes; @@ -183,10 +194,10 @@ QHash cachedStyleSheets; QHash discoveries; QTimer *saveTimer; + QTimer *updateNotificationTimer; + int toolTipDelay; + CacheTypes cachesToDiscard; -#ifdef Q_WS_X11 - EffectWatcher *effectWatcher; -#endif bool locolor : 1; bool compositingActive : 1; bool blurActive : 1; @@ -203,6 +214,9 @@ // the system colors theme is used to cache unthemed svgs with colorization needs // these svgs do not follow the theme's colors, but rather the system colors const char *ThemePrivate::systemColorsTheme = "internal-system-colors"; +#ifdef Q_WS_X11 +EffectWatcher *ThemePrivate::s_blurEffectWatcher = 0; +#endif bool ThemePrivate::useCache() { @@ -270,8 +284,8 @@ #ifdef Q_WS_X11 if (compositingActive != active) { compositingActive = active; - discardCache(PixmapCache | SvgElementsCache); - emit q->themeChanged(); + //kDebug() << QTime::currentTime(); + scheduleThemeChangeNotification(PixmapCache | SvgElementsCache); } #endif } @@ -324,17 +338,31 @@ void ThemePrivate::colorsChanged() { - discardCache(PixmapCache); colorScheme = KColorScheme(QPalette::Active, KColorScheme::Window, colors); buttonColorScheme = KColorScheme(QPalette::Active, KColorScheme::Button, colors); viewColorScheme = KColorScheme(QPalette::Active, KColorScheme::View, colors); - emit q->themeChanged(); + scheduleThemeChangeNotification(PixmapCache); } void ThemePrivate::blurBehindChanged(bool blur) { - blurActive = blur; - discardCache(PixmapCache | SvgElementsCache); + if (blurActive != blur) { + blurActive = blur; + scheduleThemeChangeNotification(PixmapCache | SvgElementsCache); + } +} + +void ThemePrivate::scheduleThemeChangeNotification(CacheTypes caches) +{ + cachesToDiscard |= caches; + updateNotificationTimer->start(); +} + +void ThemePrivate::notifyOfChanged() +{ + //kDebug() << cachesToDiscard; + discardCache(cachesToDiscard); + cachesToDiscard = NoCache; emit q->themeChanged(); } @@ -508,7 +536,10 @@ void Theme::settingsChanged() { - d->setThemeName(d->config().readEntry("name", ThemePrivate::defaultTheme), false); + KConfigGroup cg = d->config(); + d->setThemeName(cg.readEntry("name", ThemePrivate::defaultTheme), false); + cg = KConfigGroup(cg.config(), "PlasmaToolTips"); + d->toolTipDelay = cg.readEntry("Delay", qreal(0.7)); } void Theme::setThemeName(const QString &themeName) @@ -670,9 +701,7 @@ cg.sync(); } - discardCache(SvgElementsCache); - - emit q->themeChanged(); + scheduleThemeChangeNotification(SvgElementsCache); } QString Theme::themeName() const @@ -685,7 +714,7 @@ // look for a compressed svg file in the theme if (name.contains("../") || name.isEmpty()) { // we don't support relative paths - kDebug() << "Theme says: bad image path " << name; + //kDebug() << "Theme says: bad image path " << name; return QString(); } @@ -958,7 +987,7 @@ d->keysToCache.insert(key, id); d->idsToCache.insert(id, key); - d->saveTimer->start(600); + d->saveTimer->start(); } } @@ -1082,6 +1111,11 @@ return brandConfig.readEntry("homepage", KUrl("http://www.kde.org")); } +int Theme::toolTipDelay() const +{ + return d->toolTipDelay; +} + } #include diff -Nru kde4libs-4.7.90/plasma/theme.h kde4libs-4.7.95/plasma/theme.h --- kde4libs-4.7.90/plasma/theme.h 2011-08-22 13:14:07.000000000 +0000 +++ kde4libs-4.7.95/plasma/theme.h 2011-12-21 00:14:57.000000000 +0000 @@ -379,6 +379,11 @@ */ KUrl homepage() const; + /** + * @return the default tool tip delay; -1 means "no tooltips" + */ + int toolTipDelay() const; + Q_SIGNALS: /** * Emitted when the user changes the theme. SVGs should be reloaded at @@ -404,6 +409,7 @@ Q_PRIVATE_SLOT(d, void settingsFileChanged(const QString &)) Q_PRIVATE_SLOT(d, void scheduledCacheUpdate()) Q_PRIVATE_SLOT(d, void onAppExitCleanup()) + Q_PRIVATE_SLOT(d, void notifyOfChanged()) }; } // Plasma namespace diff -Nru kde4libs-4.7.90/plasma/tooltipmanager.cpp kde4libs-4.7.95/plasma/tooltipmanager.cpp --- kde4libs-4.7.90/plasma/tooltipmanager.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/tooltipmanager.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -140,21 +140,18 @@ return; } - qreal delay = 0.0; - ToolTipContent content = d->tooltips[widget]; + d->delayedHide = false; + d->hideTimer->stop(); + d->showTimer->stop(); + const int defaultDelay = Theme::defaultTheme()->toolTipDelay(); - if (!content.isInstantPopup()) { - KConfig config("plasmarc"); - KConfigGroup cg(&config, "PlasmaToolTips"); - delay = cg.readEntry("Delay", qreal(0.7)); - if (delay < 0) { - return; - } + if (defaultDelay < 0) { + return; } - d->hideTimer->stop(); - d->delayedHide = false; - d->showTimer->stop(); + ToolTipContent content = d->tooltips[widget]; + qreal delay = content.isInstantPopup() ? 0.0 : defaultDelay; + d->currentWidget = widget; if (d->isShown) { @@ -214,6 +211,13 @@ return; } + if (widget == d->currentWidget) { + d->currentWidget = 0; + d->showTimer->stop(); // stop the timer to show the tooltip + d->delayedHide = false; + d->hideTipWidget(); + } + widget->removeEventFilter(this); d->removeWidget(widget); } @@ -350,14 +354,13 @@ void ToolTipManagerPrivate::resetShownState() { - if (currentWidget) { - if (!tipWidget || !tipWidget->isVisible() || delayedHide) { - //One might have moused out and back in again - delayedHide = false; - isShown = false; - currentWidget = 0; - hideTipWidget(); - } + if (!tipWidget || !tipWidget->isVisible() || delayedHide) { + //One might have moused out and back in again + showTimer->stop(); + delayedHide = false; + isShown = false; + currentWidget = 0; + hideTipWidget(); } } diff -Nru kde4libs-4.7.90/plasma/widgets/checkbox.cpp kde4libs-4.7.95/plasma/widgets/checkbox.cpp --- kde4libs-4.7.90/plasma/widgets/checkbox.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/checkbox.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -87,7 +87,7 @@ { QCheckBox *native = new QCheckBox; connect(native, SIGNAL(toggled(bool)), this, SIGNAL(toggled(bool))); - setWidget(native); + d->setWidget(native); native->setWindowIcon(QIcon()); native->setAttribute(Qt::WA_NoSystemBackground); diff -Nru kde4libs-4.7.90/plasma/widgets/combobox.cpp kde4libs-4.7.95/plasma/widgets/combobox.cpp --- kde4libs-4.7.90/plasma/widgets/combobox.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/combobox.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -166,7 +166,7 @@ connect(nativeWidget, SIGNAL(currentIndexChanged(const QString &)), this, SIGNAL(textChanged(const QString &))); - setWidget(nativeWidget); + d->setWidget(nativeWidget); nativeWidget->setWindowIcon(QIcon()); nativeWidget->setAttribute(Qt::WA_NoSystemBackground); diff -Nru kde4libs-4.7.90/plasma/widgets/groupbox.cpp kde4libs-4.7.95/plasma/widgets/groupbox.cpp --- kde4libs-4.7.90/plasma/widgets/groupbox.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/groupbox.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -50,7 +50,7 @@ d(new GroupBoxPrivate(this)) { QGroupBox *native = new QGroupBox; - setWidget(native); + d->setWidget(native); native->setWindowIcon(QIcon()); native->setAttribute(Qt::WA_NoSystemBackground); d->initTheming(); diff -Nru kde4libs-4.7.90/plasma/widgets/label.cpp kde4libs-4.7.95/plasma/widgets/label.cpp --- kde4libs-4.7.90/plasma/widgets/label.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/label.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -105,7 +105,7 @@ connect(native, SIGNAL(linkActivated(QString)), this, SIGNAL(linkActivated(QString))); connect(native, SIGNAL(linkHovered(QString)), this, SIGNAL(linkHovered(QString))); - setWidget(native); + d->setWidget(native); d->initTheming(); } diff -Nru kde4libs-4.7.90/plasma/widgets/lineedit.cpp kde4libs-4.7.95/plasma/widgets/lineedit.cpp --- kde4libs-4.7.90/plasma/widgets/lineedit.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/lineedit.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -130,7 +130,7 @@ nativeWidget->setWindowFlags(nativeWidget->windowFlags()|Qt::BypassGraphicsProxyWidget); - setWidget(nativeWidget); + d->setWidget(nativeWidget); nativeWidget->setWindowIcon(QIcon()); nativeWidget->setAttribute(Qt::WA_NoSystemBackground); diff -Nru kde4libs-4.7.90/plasma/widgets/radiobutton.cpp kde4libs-4.7.95/plasma/widgets/radiobutton.cpp --- kde4libs-4.7.90/plasma/widgets/radiobutton.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/radiobutton.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -77,7 +77,7 @@ { QRadioButton *native = new QRadioButton; connect(native, SIGNAL(toggled(bool)), this, SIGNAL(toggled(bool))); - setWidget(native); + d->setWidget(native); native->setWindowIcon(QIcon()); native->setAttribute(Qt::WA_NoSystemBackground); d->initTheming(); diff -Nru kde4libs-4.7.90/plasma/widgets/signalplotter.cpp kde4libs-4.7.95/plasma/widgets/signalplotter.cpp --- kde4libs-4.7.90/plasma/widgets/signalplotter.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/signalplotter.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -933,7 +933,7 @@ qMax(prev_prev_datapoints[j], prev_prev_prev_datapoints[j]))); double current_minvalue = - qMin(datapoints[j], + qMin(datapoints[j], qMin(prev_datapoints[j], qMin(prev_prev_datapoints[j], prev_prev_prev_datapoints[j]))); diff -Nru kde4libs-4.7.90/plasma/widgets/spinbox.cpp kde4libs-4.7.95/plasma/widgets/spinbox.cpp --- kde4libs-4.7.90/plasma/widgets/spinbox.cpp 2011-11-17 20:54:56.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/spinbox.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -67,7 +67,7 @@ d->focusIndicator = new FocusIndicator(this, "widgets/lineedit"); - setWidget(native); + d->setWidget(native); native->setWindowIcon(QIcon()); native->setAttribute(Qt::WA_NoSystemBackground); native->setAutoFillBackground(false); diff -Nru kde4libs-4.7.90/plasma/widgets/textbrowser.cpp kde4libs-4.7.95/plasma/widgets/textbrowser.cpp --- kde4libs-4.7.90/plasma/widgets/textbrowser.cpp 2011-07-27 18:34:38.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/textbrowser.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -40,7 +40,6 @@ public: TextBrowserPrivate(TextBrowser *browser) : ThemedWidgetInterface(browser), - native(0), savedMinimumHeight(0), savedMaximumHeight(QWIDGETSIZE_MAX), wasNotFixed(true) @@ -49,7 +48,8 @@ void setFixedHeight() { - if (native && native->document() && + KTextBrowser *native = q->nativeWidget(); + if (native->document() && q->sizePolicy().verticalPolicy() == QSizePolicy::Fixed && native->verticalScrollBarPolicy() == Qt::ScrollBarAlwaysOff) { native->document()->setTextWidth(q->size().width()); @@ -84,7 +84,7 @@ connect(native, SIGNAL(textChanged()), this, SIGNAL(textChanged())); connect(native, SIGNAL(textChanged()), this, SLOT(setFixedHeight())); native->setWindowIcon(QIcon()); - setWidget(native); + d->setWidget(native); d->native = native; native->setAttribute(Qt::WA_NoSystemBackground); native->setFrameShape(QFrame::NoFrame); @@ -114,12 +114,12 @@ void TextBrowser::setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy policy) { - d->native->setHorizontalScrollBarPolicy(policy); + nativeWidget()->setHorizontalScrollBarPolicy(policy); } void TextBrowser::setVerticalScrollBarPolicy(Qt::ScrollBarPolicy policy) { - d->native->setVerticalScrollBarPolicy(policy); + nativeWidget()->setVerticalScrollBarPolicy(policy); } void TextBrowser::setStyleSheet(const QString &stylesheet) @@ -173,8 +173,8 @@ void TextBrowser::wheelEvent(QGraphicsSceneWheelEvent *event) { - if (d->native->verticalScrollBarPolicy() == Qt::ScrollBarAlwaysOff && - d->native->horizontalScrollBarPolicy() == Qt::ScrollBarAlwaysOff) { + if (nativeWidget()->verticalScrollBarPolicy() == Qt::ScrollBarAlwaysOff && + nativeWidget()->horizontalScrollBarPolicy() == Qt::ScrollBarAlwaysOff) { event->ignore(); } else { QGraphicsProxyWidget::wheelEvent(event); diff -Nru kde4libs-4.7.90/plasma/widgets/textedit.cpp kde4libs-4.7.95/plasma/widgets/textedit.cpp --- kde4libs-4.7.90/plasma/widgets/textedit.cpp 2011-10-11 14:41:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/widgets/textedit.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -108,7 +108,7 @@ connect(nativeWidget, SIGNAL(textChanged()), this, SIGNAL(textChanged())); nativeWidget->setWindowIcon(QIcon()); - setWidget(nativeWidget); + d->setWidget(nativeWidget); nativeWidget->setAttribute(Qt::WA_NoSystemBackground); nativeWidget->setFrameShape(QFrame::NoFrame); diff -Nru kde4libs-4.7.90/plasma/windoweffects.cpp kde4libs-4.7.95/plasma/windoweffects.cpp --- kde4libs-4.7.90/plasma/windoweffects.cpp 2011-12-02 21:16:54.000000000 +0000 +++ kde4libs-4.7.95/plasma/windoweffects.cpp 2011-12-21 00:14:57.000000000 +0000 @@ -134,22 +134,19 @@ Display *dpy = QX11Info::display(); Atom atom = XInternAtom( dpy, "_KDE_SLIDE", False ); QVarLengthArray data(2); + data[0] = -1; switch (location) { case LeftEdge: - data[0] = widget->geometry().left(); data[1] = 0; break; case TopEdge: - data[0] = widget->geometry().top(); data[1] = 1; break; case RightEdge: - data[0] = widget->geometry().right(); data[1] = 2; break; case BottomEdge: - data[0] = widget->geometry().bottom(); data[1] = 3; default: break;