Merge branch 'f18' into f17

This commit is contained in:
Rex Dieter 2012-11-06 10:35:41 -06:00
commit d938e3bbc2
8 changed files with 12 additions and 293 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/kdelibs-4.8.5.tar.xz
/kdelibs-4.9.2.tar.xz
/kdelibs-4.9.3.tar.xz

View File

@ -1,117 +0,0 @@
diff --git a/kfile/kfileplacesitem.cpp b/kfile/kfileplacesitem.cpp
index 3ada0c3..52bbef1 100644
--- a/kfile/kfileplacesitem.cpp
+++ b/kfile/kfileplacesitem.cpp
@@ -36,7 +36,8 @@
KFilePlacesItem::KFilePlacesItem(KBookmarkManager *manager,
const QString &address,
const QString &udi)
- : m_manager(manager), m_lister(0), m_folderIsEmpty(true), m_device(udi)
+ : m_manager(manager), m_lister(0), m_folderIsEmpty(true), m_isCdrom(false),
+ m_isAccessible(false), m_device(udi)
{
setBookmark(m_manager->findByAddress(address));
@@ -58,8 +59,11 @@ KFilePlacesItem::KFilePlacesItem(KBookmarkManager *manager,
m_disc = m_device.as<Solid::OpticalDisc>();
if (m_access) {
connect(m_access, SIGNAL(accessibilityChanged(bool,QString)),
- this, SLOT(onAccessibilityChanged()));
+ this, SLOT(onAccessibilityChanged(bool)));
+ onAccessibilityChanged(m_access->isAccessible());
}
+ m_iconPath = m_device.icon();
+ m_emblems = m_device.emblems();
}
}
@@ -171,7 +175,7 @@ QVariant KFilePlacesItem::deviceData(int role) const
case Qt::DisplayRole:
return d.description();
case Qt::DecorationRole:
- return KIcon(d.icon(), 0, d.emblems());
+ return KIcon(m_iconPath, 0, m_emblems);
case KFilePlacesModel::UrlRole:
if (m_access) {
return QUrl(KUrl(m_access->filePath()));
@@ -183,7 +187,7 @@ QVariant KFilePlacesItem::deviceData(int role) const
}
case KFilePlacesModel::SetupNeededRole:
if (m_access) {
- return !m_access->isAccessible();
+ return !m_isAccessible;
} else {
return QVariant();
}
@@ -203,16 +207,7 @@ QVariant KFilePlacesItem::deviceData(int role) const
}
case KFilePlacesModel::CapacityBarRecommendedRole:
- {
- bool accessible = m_access && m_access->isAccessible();
- bool isCdrom =
- ((m_device.is<Solid::StorageDrive>()
- && m_device.as<Solid::StorageDrive>()->driveType() == Solid::StorageDrive::CdromDrive)
- || (m_device.parent().is<Solid::StorageDrive>()
- && m_device.parent().as<Solid::StorageDrive>()->driveType() == Solid::StorageDrive::CdromDrive));
-
- return accessible && !isCdrom;
- }
+ return m_isAccessible && !m_isCdrom;
default:
return QVariant();
@@ -291,8 +286,15 @@ QString KFilePlacesItem::generateNewId()
// + '/' + QString::number(qrand());
}
-void KFilePlacesItem::onAccessibilityChanged()
+void KFilePlacesItem::onAccessibilityChanged(bool isAccessible)
{
+ m_isAccessible = isAccessible;
+ m_isCdrom = ((m_device.is<Solid::StorageDrive>()
+ && m_device.as<Solid::StorageDrive>()->driveType() == Solid::StorageDrive::CdromDrive)
+ || (m_device.parent().is<Solid::StorageDrive>()
+ && m_device.parent().as<Solid::StorageDrive>()->driveType() == Solid::StorageDrive::CdromDrive));
+ m_emblems = m_device.emblems();
+
emit itemChanged(id());
}
diff --git a/kfile/kfileplacesitem_p.h b/kfile/kfileplacesitem_p.h
index 3c6bd30..dec3e64 100644
--- a/kfile/kfileplacesitem_p.h
+++ b/kfile/kfileplacesitem_p.h
@@ -24,6 +24,7 @@
#include <QtCore/QObject>
#include <QtCore/QPointer>
#include <QtCore/QModelIndex>
+#include <QtCore/QStringList>
#include <kbookmark.h>
#include <solid/device.h>
@@ -69,7 +70,7 @@ Q_SIGNALS:
void itemChanged(const QString &id);
private Q_SLOTS:
- void onAccessibilityChanged();
+ void onAccessibilityChanged(bool);
void onListerCompleted();
private:
@@ -85,11 +86,15 @@ private:
KBookmark m_bookmark;
KDirLister *m_lister;
bool m_folderIsEmpty;
+ bool m_isCdrom;
+ bool m_isAccessible;
QString m_text;
mutable Solid::Device m_device;
mutable QPointer<Solid::StorageAccess> m_access;
mutable QPointer<Solid::StorageVolume> m_volume;
mutable QPointer<Solid::OpticalDisc> m_disc;
+ QString m_iconPath;
+ QStringList m_emblems;
};
#endif

View File

@ -1,57 +0,0 @@
diff -up kdelibs-4.9.2/kinit/kinit.cpp.me kdelibs-4.9.2/kinit/kinit.cpp
--- kdelibs-4.9.2/kinit/kinit.cpp.me 2012-10-04 14:14:07.992428593 +0200
+++ kdelibs-4.9.2/kinit/kinit.cpp 2012-10-04 14:19:28.783484339 +0200
@@ -57,7 +57,6 @@
#include <klibrary.h>
#include <kdemacros.h>
#include <kstandarddirs.h>
-#include <kglobalsettings.h>
#include <kglobal.h>
#include <kconfig.h>
#include <kapplication.h>
@@ -538,7 +537,6 @@ static pid_t launch(int argc, const char
#endif
// find out these paths before forking, doing it afterwards
// crashes on some platforms, notably OSX
- const QByteArray docPath = QFile::encodeName(KGlobalSettings::documentPath());
#ifdef Q_WS_MAC
const QString bundlepath = s_instance->dirs()->findExe(QFile::decodeName(execpath));
#endif
@@ -567,12 +565,6 @@ static pid_t launch(int argc, const char
// we still want to execute `foo` even if the chdir() failed.
if (cwd && *cwd) {
(void)chdir(cwd);
- } else {
- // on Maemo5, documentPath() is on the SD card, setting it as working directory would block
- // USB mass storage access
-#ifndef Q_WS_MAEMO_5
- (void)chdir(docPath.constData());
-#endif
}
if( reset_env ) // KWRAPPER/SHELL
diff -up kdelibs-4.9.2/kio/kio/krun.cpp.me kdelibs-4.9.2/kio/kio/krun.cpp
--- kdelibs-4.9.2/kio/kio/krun.cpp.me 2012-10-04 14:24:07.520105922 +0200
+++ kdelibs-4.9.2/kio/kio/krun.cpp 2012-10-04 14:45:34.687377085 +0200
@@ -55,7 +55,6 @@
#include <kmessageboxwrapper.h>
#include <kurl.h>
#include <kglobal.h>
-#include <kglobalsettings.h>
#include <ktoolinvocation.h>
#include <kdebug.h>
#include <klocale.h>
@@ -1073,13 +1072,6 @@ bool KRun::runCommand(const QString& cmd
kDebug(7010) << "runCommand " << cmd << "," << execName;
KProcess * proc = new KProcess;
proc->setShellCommand(cmd);
- if (workingDirectory.isEmpty()) {
- // see bug 108510, and we need "alt+f2 editor" (which starts a desktop file via klauncher)
- // and "alt+f2 editor -someoption" (which calls runCommand) to be consistent.
- proc->setWorkingDirectory(KGlobalSettings::documentPath());
- } else {
- proc->setWorkingDirectory(workingDirectory);
- }
QString bin = binaryName(execName, true);
KService::Ptr service = KService::serviceByDesktopName(bin);
return runCommandInternal(proc, service.data(),

View File

@ -1,27 +0,0 @@
commit 65464349951e0df9b5d80c2eb3cc7458d54923ae
Author: David Faure <faure@kde.org>
Date: Fri Oct 19 11:33:41 2012 +0200
Fix crash when trying to reuse a frame with a null part.
BUG: 271528
FIXED-IN: 4.9.3
diff --git a/khtml/khtml_part.cpp b/khtml/khtml_part.cpp
index ad00ea5..6165710 100644
--- a/khtml/khtml_part.cpp
+++ b/khtml/khtml_part.cpp
@@ -5242,8 +5242,12 @@ KHTMLPart* KHTMLPartPrivate::top()
bool KHTMLPartPrivate::canNavigate(KParts::ReadOnlyPart* bCand)
{
+ if (!bCand) // No part here (e.g. invalid url), reuse that frame
+ return true;
+
KHTMLPart* b = qobject_cast<KHTMLPart*>(bCand);
- assert(b);
+ if (!b) // Another kind of part? Not sure what to do...
+ return false;
// HTML5 gives conditions for this (a) being able to navigate b

View File

@ -1,50 +0,0 @@
commit 4f2eb356f1c23444fff2cfe0a7ae10efe303d6d8
Author: David Faure <faure@kde.org>
Date: Wed Oct 24 20:04:31 2012 +0200
Fix crash when a redirect happens in an iframe while the context menu is shown
diff --git a/khtml/rendering/render_replaced.cpp b/khtml/rendering/render_replaced.cpp
index 195dcba..6bc5caa 100644
--- a/khtml/rendering/render_replaced.cpp
+++ b/khtml/rendering/render_replaced.cpp
@@ -1030,7 +1030,7 @@ bool RenderWidget::handleEvent(const DOM::EventImpl& ev)
p.setY(qMin(qMax(0,p.y()),m_widget->height()));
}
- QWidget* target = 0;
+ QPointer<QWidget> target;
target = m_widget->childAt(p);
if (target) {
@@ -1103,16 +1103,18 @@ bool RenderWidget::handleEvent(const DOM::EventImpl& ev)
}
}
- QEvent *e = isMouseWheel ?
+ QScopedPointer<QEvent> e(isMouseWheel ?
static_cast<QEvent*>(new QWheelEvent(p, -me.detail()*40, buttons, state, orient)) :
- static_cast<QEvent*>(new QMouseEvent(type, p, button, buttons, state));
+ static_cast<QEvent*>(new QMouseEvent(type, p, button, buttons, state)));
- ret = bubblingSend(target, e, m_widget);
+ ret = bubblingSend(target, e.data(), m_widget);
+ if (!target)
+ break;
if (needContextMenuEvent) {
QContextMenuEvent cme(QContextMenuEvent::Mouse, p);
- static_cast<EventPropagator *>(target)->sendEvent(&cme);
+ static_cast<EventPropagator *>(target.data())->sendEvent(&cme);
} else if (type == QEvent::MouseMove && target->testAttribute(Qt::WA_Hover)) {
QHoverEvent he( QEvent::HoverMove, p, p );
QApplication::sendEvent(target, &he);
@@ -1120,7 +1122,6 @@ bool RenderWidget::handleEvent(const DOM::EventImpl& ev)
if (ev.id() == EventImpl::MOUSEUP_EVENT) {
view()->setMouseEventsTarget( 0 );
}
- delete e;
break;
}
case EventImpl::KEYDOWN_EVENT:

View File

@ -27,28 +27,3 @@
if(WIN32)
string(REPLACE "\\" "/" PYTHON_SITE_PACKAGES_DIR ${PYTHON_SITE_PACKAGES_DIR})
endif(WIN32)
--- a/cmake/modules/PythonMacros.cmake 2011-07-27 13:34:31.000000000 -0500
+++ b/cmake/modules/PythonMacros.cmake 2012-07-24 15:31:33.386764200 -0500
@@ -34,7 +34,13 @@
endif(WIN32)
SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename})
- SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
+ if(PYTHON_VERSION_STRING VERSION_GREATER "3.1.99")
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import imp; print(imp.cache_from_source('${_filename}'), end='')" OUTPUT_VARIABLE _filename_pyc)
+ SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename_pyc})
+ GET_FILENAME_COMPONENT(_basepath_pyc ${_filename_pyc} PATH)
+ else(PYTHON_VERSION_STRING VERSION_GREATER "3.1.99")
+ SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
+ endif(PYTHON_VERSION_STRING VERSION_GREATER "3.1.99")
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath})
@@ -58,5 +64,6 @@
)
ENDIF(_abs_bin_py STREQUAL ${_absfilename})
- INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR})
+ INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR}/${_basepath_pyc})
+
ENDMACRO(PYTHON_INSTALL)

View File

@ -24,8 +24,8 @@
%global dbusmenu_qt_version %(pkg-config --modversion dbusmenu-qt 2>/dev/null || echo %{dbusmenu_qt_ver})
Summary: KDE Libraries
Version: 4.9.2
Release: 11%{?dist}
Version: 4.9.3
Release: 2%{?dist}
Name: kdelibs
Epoch: 6
@ -149,24 +149,17 @@ Patch55: kdelibs-4.9.2-FindSamba_samba4.patch
# backport FindKipi.cmake from Digikam SC 3.0.0-beta1 for libkipi 2 (kde#307213)
Patch56: kdelibs-4.9.1-FindKipi-libkipi2.patch
# krunner using ~/Documents as working directory, revert kde#108510, kde#183534
Patch57: kdelibs-4.9.2-revert-kde#108510-kde#183534.patch
# cmake/python3 love, see # https://bugs.kde.org/show_bug.cgi?id=275919
# see also http://git.reviewboard.kde.org/r/106707/
# reviewboard finished, double check if these remaining patches are still
# required or not -- rex
Patch58: kdelibs-cmake_python3.patch
## upstream
# cache solid device icon so that it does not poll udisks2 constantly (rhbz#868530)
# see https://git.reviewboard.kde.org/r/107030/
Patch100: kdelibs-4.9.2-cache-solid-device-in-kfileplaces.patch
## security fix
# Not Upstreamed? why not ? -- Rex
Patch200: kdelibs-4.3.1-CVE-2009-2702.patch
Patch201: kdelibs-4.9.x-CVE-2012-4515.patch
Patch202: kdelibs-4.9.x-CVE-2012-4514.patch
# rhel patches
Patch300: kdelibs-4.8.3-webkit.patch
@ -332,16 +325,12 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch54 -p1 -b .kjs-locale
%patch55 -p1 -b .FindSamba-samba4
%patch56 -p1 -b .FindKipi-libkipi2
%patch57 -p1 -b .revert-kde#108510-kde#183534
%patch58 -p1 -b .cmake_python3
# upstream patches
%patch100 -p1 -b .cache-solid-device-icon
# security fixes
%patch200 -p1 -b .CVE-2009-2702
%patch201 -p1 -b .CVE-2012-4515
%patch202 -p1 -b .CVE-2012-4514
# rhel patches
%if 0%{?rhel}
@ -597,6 +586,12 @@ rm -rf %{buildroot}
%changelog
* Fri Nov 02 2012 Rex Dieter <rdieter@fedoraproject.org> 6:4.9.3-2
- (re)enable apidocs
* Fri Nov 02 2012 Rex Dieter <rdieter@fedoraproject.org> 6:4.9.3-1
- 4.9.3
* Wed Oct 31 2012 Than Ngo <than@redhat.com> - 6:4.9.2-11
- Resolves: CVE-2012-4514

View File

@ -1 +1 @@
421a0cb4e51db7d8eb6bb8aff508aeab kdelibs-4.9.2.tar.xz
91e9cf8446491e7e852b04be7a22c61c kdelibs-4.9.3.tar.xz