Merge branch 'f15' into f14
This commit is contained in:
commit
0771d135b6
|
@ -1,2 +1,3 @@
|
||||||
/kdelibs-4.6.2.tar.bz2
|
/kdelibs-4.6.2.tar.bz2
|
||||||
/kdelibs-4.6.3.tar.bz2
|
/kdelibs-4.6.3.tar.bz2
|
||||||
|
/kdelibs-4.6.4.tar.bz2
|
||||||
|
|
|
@ -1,114 +0,0 @@
|
||||||
commit a8d16682c31ef523ffebba6e19283a19cd5f5627
|
|
||||||
Author: Aaron Seigo <aseigo@kde.org>
|
|
||||||
Date: Fri May 6 15:19:09 2011 +0200
|
|
||||||
|
|
||||||
use a QWeakPointer on the KIconLoader passed in as there are no lifetime guarantees
|
|
||||||
|
|
||||||
usually KGlobal::iconLoader() is used, so this isn't an issue seen very often.
|
|
||||||
however, when a local KIconLoader is created, it is easy to get QIcons with a
|
|
||||||
KIconEngine that has a bad KIconLoader pointer in them. particularly as QIcon
|
|
||||||
is implicitly shared and easily passed around. the StatusNotifier Plasma DataEngine
|
|
||||||
was triggering this, though it would be trivial to run into this problem again
|
|
||||||
anytime a KIconLoader is created locally
|
|
||||||
|
|
||||||
thankfully, QWeakPointer does the job and is very fast and light. (confirmed
|
|
||||||
both with my own testing and confirmation from Thiago).
|
|
||||||
|
|
||||||
massive thanks to Michael Pyne for detecting the cause of the problem via Valgrind.
|
|
||||||
|
|
||||||
BUG:258706
|
|
||||||
|
|
||||||
diff --git a/kdeui/icons/kiconengine.cpp b/kdeui/icons/kiconengine.cpp
|
|
||||||
index 087ba1b..73e092c 100644
|
|
||||||
--- a/kdeui/icons/kiconengine.cpp
|
|
||||||
+++ b/kdeui/icons/kiconengine.cpp
|
|
||||||
@@ -27,16 +27,16 @@
|
|
||||||
|
|
||||||
|
|
||||||
KIconEngine::KIconEngine(const QString& iconName, KIconLoader* iconLoader, const QStringList& overlays)
|
|
||||||
+ : mIconName(iconName),
|
|
||||||
+ mIconLoader(iconLoader),
|
|
||||||
+ mOverlays(overlays)
|
|
||||||
{
|
|
||||||
- mIconName = iconName;
|
|
||||||
- mIconLoader = iconLoader;
|
|
||||||
- mOverlays = overlays;
|
|
||||||
}
|
|
||||||
|
|
||||||
KIconEngine::KIconEngine(const QString& iconName, KIconLoader* iconLoader)
|
|
||||||
+ : mIconName(iconName),
|
|
||||||
+ mIconLoader(iconLoader)
|
|
||||||
{
|
|
||||||
- mIconName = iconName;
|
|
||||||
- mIconLoader = iconLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int qIconModeToKIconState( QIcon::Mode mode )
|
|
||||||
@@ -65,8 +65,12 @@ QSize KIconEngine::actualSize( const QSize & size, QIcon::Mode mode, QIcon::Stat
|
|
||||||
return QSize(iconSize, iconSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
-void KIconEngine::paint( QPainter * painter, const QRect & rect, QIcon::Mode mode, QIcon::State state )
|
|
||||||
+void KIconEngine::paint(QPainter * painter, const QRect & rect, QIcon::Mode mode, QIcon::State state)
|
|
||||||
{
|
|
||||||
+ if (!mIconLoader) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
Q_UNUSED(state)
|
|
||||||
|
|
||||||
const int kstate = qIconModeToKIconState(mode);
|
|
||||||
@@ -80,20 +84,27 @@ void KIconEngine::paint( QPainter * painter, const QRect & rect, QIcon::Mode mod
|
|
||||||
}
|
|
||||||
|
|
||||||
const int iconSize = qMin(rect.width(), rect.height());
|
|
||||||
- const QPixmap pix = mIconLoader->loadIcon(mIconName, group, iconSize, kstate, mOverlays);
|
|
||||||
+ const QPixmap pix = mIconLoader.data()->loadIcon(mIconName, group, iconSize, kstate, mOverlays);
|
|
||||||
painter->drawPixmap(rect, pix);
|
|
||||||
}
|
|
||||||
|
|
||||||
-QPixmap KIconEngine::pixmap( const QSize & size, QIcon::Mode mode, QIcon::State state )
|
|
||||||
+QPixmap KIconEngine::pixmap(const QSize & size, QIcon::Mode mode, QIcon::State state)
|
|
||||||
{
|
|
||||||
Q_UNUSED(state)
|
|
||||||
|
|
||||||
+ if (!mIconLoader) {
|
|
||||||
+ QPixmap pm(size);
|
|
||||||
+ pm.fill(Qt::transparent);
|
|
||||||
+ return pm;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
const int kstate = qIconModeToKIconState(mode);
|
|
||||||
const int iconSize = qMin(size.width(), size.height());
|
|
||||||
- QPixmap pix = mIconLoader->loadIcon(mIconName, KIconLoader::Desktop, iconSize, kstate, mOverlays);
|
|
||||||
+ QPixmap pix = mIconLoader.data()->loadIcon(mIconName, KIconLoader::Desktop, iconSize, kstate, mOverlays);
|
|
||||||
|
|
||||||
- if(pix.size() == size)
|
|
||||||
+ if (pix.size() == size) {
|
|
||||||
return pix;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
QPixmap pix2(size);
|
|
||||||
pix2.fill(QColor(0,0,0,0));
|
|
||||||
@@ -111,7 +122,7 @@ QString KIconEngine::key() const
|
|
||||||
|
|
||||||
QIconEngineV2 *KIconEngine::clone() const
|
|
||||||
{
|
|
||||||
- return new KIconEngine(mIconName, mIconLoader, mOverlays);
|
|
||||||
+ return new KIconEngine(mIconName, mIconLoader.data(), mOverlays);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool KIconEngine::read(QDataStream &in)
|
|
||||||
diff --git a/kdeui/icons/kiconengine_p.h b/kdeui/icons/kiconengine_p.h
|
|
||||||
index 8095d2a..9fba63c 100644
|
|
||||||
--- a/kdeui/icons/kiconengine_p.h
|
|
||||||
+++ b/kdeui/icons/kiconengine_p.h
|
|
||||||
@@ -75,7 +75,7 @@ class KIconEngine : public QIconEngineV2
|
|
||||||
private:
|
|
||||||
QString mIconName;
|
|
||||||
QStringList mOverlays;
|
|
||||||
- KIconLoader* mIconLoader;
|
|
||||||
+ QWeakPointer<KIconLoader> mIconLoader;
|
|
||||||
};
|
|
||||||
|
|
||||||
inline KIconEngine::~KIconEngine()
|
|
|
@ -1,27 +0,0 @@
|
||||||
commit 92db24adfa941003db1d885df01157056617f30b
|
|
||||||
Author: Maks Orlovich <maksim@kde.org>
|
|
||||||
Date: Sun May 8 14:39:03 2011 -0400
|
|
||||||
|
|
||||||
Fix the job-on-hold reuse logic, which caused the double-POST problem)
|
|
||||||
|
|
||||||
adawit, could you please at least READ what you're backporting if you are
|
|
||||||
going to be this aggressive? Or better yet, please don't backport anything
|
|
||||||
that's not fixing a critical bug or is trivial, as per:
|
|
||||||
http://techbase.kde.org/Policies/Minor_Point_Release_Policy
|
|
||||||
|
|
||||||
CCMAIL: adawit@kde.org
|
|
||||||
BUG: 272466
|
|
||||||
|
|
||||||
diff --git a/kio/kio/scheduler.cpp b/kio/kio/scheduler.cpp
|
|
||||||
index 55da053..9f5607e 100644
|
|
||||||
--- a/kio/kio/scheduler.cpp
|
|
||||||
+++ b/kio/kio/scheduler.cpp
|
|
||||||
@@ -1151,7 +1151,7 @@ Slave *SchedulerPrivate::heldSlaveForJob(SimpleJob *job)
|
|
||||||
bool canJobReuse = (cmd == CMD_GET || cmd == CMD_MULTI_GET);
|
|
||||||
|
|
||||||
if (KIO::TransferJob *tJob = qobject_cast<KIO::TransferJob *>(job)) {
|
|
||||||
- canJobReuse = cmd == (canJobReuse || cmd == CMD_SPECIAL);
|
|
||||||
+ canJobReuse = (canJobReuse || cmd == CMD_SPECIAL);
|
|
||||||
if (canJobReuse) {
|
|
||||||
KIO::MetaData outgoing = tJob->outgoingMetaData();
|
|
||||||
const QString resume = outgoing.value("resume");
|
|
17
kdelibs.spec
17
kdelibs.spec
|
@ -15,8 +15,8 @@
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Summary: KDE Libraries
|
Summary: KDE Libraries
|
||||||
Version: 4.6.3
|
Version: 4.6.4
|
||||||
Release: 5%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|
||||||
Name: kdelibs
|
Name: kdelibs
|
||||||
Epoch: 6
|
Epoch: 6
|
||||||
|
@ -95,11 +95,7 @@ Patch50: kdelibs-4.5.1-knewstuff_gpg2.patch
|
||||||
# https://git.reviewboard.kde.org/r/101231/
|
# https://git.reviewboard.kde.org/r/101231/
|
||||||
Patch51: kdelibs-4.6.2-uri_mimetypes.patch
|
Patch51: kdelibs-4.6.2-uri_mimetypes.patch
|
||||||
|
|
||||||
## upstream
|
## 4.6 upstream
|
||||||
# https://projects.kde.org/projects/kde/kdelibs/repository/revisions/a8d16682c31ef523ffebba6e19283a19cd5f5627/diff
|
|
||||||
Patch100: kdelibs-4.6.3-kde258706.patch
|
|
||||||
# https://projects.kde.org/projects/kde/kdelibs/repository/revisions/92db24adfa941003db1d885df01157056617f30b/diff
|
|
||||||
Patch101: kdelibs-4.6.3-kio-double-requests-kde#272466.patch
|
|
||||||
|
|
||||||
## security fix
|
## security fix
|
||||||
# Not Upstreamed? why not ? -- Rex
|
# Not Upstreamed? why not ? -- Rex
|
||||||
|
@ -285,9 +281,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
||||||
%patch50 -p1 -b .knewstuff_gpg2
|
%patch50 -p1 -b .knewstuff_gpg2
|
||||||
%patch51 -p1 -b .uri_mimetypes
|
%patch51 -p1 -b .uri_mimetypes
|
||||||
|
|
||||||
# upstream patches
|
# 4.6 upstream patches
|
||||||
%patch100 -p1 -b .kde258706
|
|
||||||
%patch101 -p1 -b .kde272466
|
|
||||||
|
|
||||||
# security fix
|
# security fix
|
||||||
%patch200 -p1 -b .CVE-2009-2702
|
%patch200 -p1 -b .CVE-2009-2702
|
||||||
|
@ -543,6 +537,9 @@ rm -rf %{buildroot}
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 06 2011 Than Ngo <than@redhat.com> - 4.6.4-1
|
||||||
|
- 4.6.4
|
||||||
|
|
||||||
* Tue May 24 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.6.3-5
|
* Tue May 24 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.6.3-5
|
||||||
- fix kio regression causing requests submitted twice (#707146, kde#272466)
|
- fix kio regression causing requests submitted twice (#707146, kde#272466)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue