Merge branch 'f18' into f17
This commit is contained in:
commit
f2aaad9133
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
/kdelibs-4.8.5.tar.xz
|
||||
/kdelibs-4.9.3.tar.xz
|
||||
/kdelibs-4.9.4.tar.xz
|
||||
|
@ -0,0 +1,25 @@
|
||||
From 0820b3173aff4f0f3c803a9e75e726024da38ee5 Mon Sep 17 00:00:00 2001
|
||||
From: David Faure <faure@kde.org>
|
||||
Date: Thu, 6 Dec 2012 11:55:05 +0100
|
||||
Subject: [PATCH] Fix crash when no service was selected (user clicked on
|
||||
"Open With...")
|
||||
|
||||
---
|
||||
kparts/browserrun.cpp | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/kparts/browserrun.cpp b/kparts/browserrun.cpp
|
||||
index 6d84800..6de0380 100644
|
||||
--- a/kparts/browserrun.cpp
|
||||
+++ b/kparts/browserrun.cpp
|
||||
@@ -304,7 +304,7 @@ BrowserRun::NonEmbeddableResult BrowserRun::handleNonEmbeddable(const QString& _
|
||||
this, SLOT(slotCopyToTempFileResult(KJob*)) );
|
||||
return Delayed; // We'll continue after the job has finished
|
||||
}
|
||||
- if (selectedService) {
|
||||
+ if (selectedService && question.selectedService()) {
|
||||
*selectedService = question.selectedService();
|
||||
// KRun will use this when starting an app
|
||||
KRun::setPreferredService(question.selectedService()->desktopEntryName());
|
||||
--
|
||||
1.7.7
|
@ -0,0 +1,53 @@
|
||||
From 73283f1332e90fbb6fe0caa39a038cb16b83a54c Mon Sep 17 00:00:00 2001
|
||||
From: David Faure <faure@kde.org>
|
||||
Date: Wed, 5 Dec 2012 22:42:25 +0100
|
||||
Subject: [PATCH] Revert "Also check parent mimetypes in
|
||||
protocolForArchiveMimetype()."
|
||||
|
||||
This reverts commit 4f296cfbced2c4ad54beec8f500ed2d3fc04ee05.
|
||||
It breaks opening odt and other zip-based files in external apps.
|
||||
That's what I get for delegating the testing :-)
|
||||
BUG: 311214
|
||||
---
|
||||
kio/kio/kprotocolmanager.cpp | 19 +------------------
|
||||
1 files changed, 1 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/kio/kio/kprotocolmanager.cpp b/kio/kio/kprotocolmanager.cpp
|
||||
index 3f1cadd..502a3e6 100644
|
||||
--- a/kio/kio/kprotocolmanager.cpp
|
||||
+++ b/kio/kio/kprotocolmanager.cpp
|
||||
@@ -47,7 +47,6 @@
|
||||
#include <ksharedconfig.h>
|
||||
#include <kstandarddirs.h>
|
||||
#include <kurl.h>
|
||||
-#include <kmimetype.h>
|
||||
#include <kmimetypetrader.h>
|
||||
#include <kprotocolinfofactory.h>
|
||||
|
||||
@@ -1190,23 +1189,7 @@ QString KProtocolManager::protocolForArchiveMimetype( const QString& mimeType )
|
||||
}
|
||||
}
|
||||
}
|
||||
- const QString prot = d->protocolForArchiveMimetypes.value(mimeType);
|
||||
- if (!prot.isEmpty())
|
||||
- return prot;
|
||||
-
|
||||
- // Check parent mimetypes
|
||||
- KMimeType::Ptr mime = KMimeType::mimeType(mimeType);
|
||||
- if (mime) {
|
||||
- const QStringList parentMimeTypes = mime->allParentMimeTypes();
|
||||
- Q_FOREACH(const QString& parentMimeType, parentMimeTypes) {
|
||||
- const QString res = d->protocolForArchiveMimetypes.value(parentMimeType);
|
||||
- if (!res.isEmpty()) {
|
||||
- return res;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return QString();
|
||||
+ return d->protocolForArchiveMimetypes.value(mimeType);
|
||||
}
|
||||
|
||||
#undef PRIVATE_DATA
|
||||
--
|
||||
1.7.7
|
@ -1,10 +0,0 @@
|
||||
--- kdelibs-4.9.3/plasma/private/packages.cpp 2012-10-19 12:26:32.000000000 +0200
|
||||
+++ kdelibs-4.9.3/plasma/private/packages.cpp_new 2012-11-23 13:19:25.757302077 +0100
|
||||
@@ -109,6 +109,7 @@ void PlasmoidPackage::createNewWidgetBro
|
||||
m_knsDialog = knsDialog = new KNS3::DownloadDialog("plasmoids.knsrc", parent);
|
||||
knsDialog->setProperty("DoNotCloseController", true);
|
||||
connect(knsDialog, SIGNAL(accepted()), this, SIGNAL(newWidgetBrowserFinished()));
|
||||
+ connect(knsDialog, SIGNAL(accepted()), knsDialog, SLOT(deleteLater()));
|
||||
}
|
||||
|
||||
knsDialog->show();
|
12
kdelibs-4.9.3-dot.patch
Normal file
12
kdelibs-4.9.3-dot.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up kdelibs-4.9.3/doc/common/Doxyfile.global.me kdelibs-4.9.3/doc/common/Doxyfile.global
|
||||
--- kdelibs-4.9.3/doc/common/Doxyfile.global.me 2012-12-04 16:57:09.239184154 +0100
|
||||
+++ kdelibs-4.9.3/doc/common/Doxyfile.global 2012-12-04 16:57:13.157191451 +0100
|
||||
@@ -1392,7 +1392,7 @@ HIDE_UNDOC_RELATIONS = NO
|
||||
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
|
||||
# have no effect if this option is set to NO (the default)
|
||||
|
||||
-HAVE_DOT = YES
|
||||
+HAVE_DOT = NO
|
||||
|
||||
# By default doxygen will write a font called FreeSans.ttf to the output
|
||||
# directory and reference it in all dot files that doxygen generates. This
|
12
kdelibs-4.9.3-kcm_ssl.patch
Normal file
12
kdelibs-4.9.3-kcm_ssl.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp.orig kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp
|
||||
--- kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp.orig 2012-11-29 15:37:07.458858688 +0100
|
||||
+++ kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp 2012-11-29 13:52:05.243926802 +0100
|
||||
@@ -291,7 +291,7 @@ void CaCertificatesPage::removeSelection
|
||||
void CaCertificatesPage::addCertificateClicked()
|
||||
{
|
||||
QStringList certFiles
|
||||
- = KFileDialog::getOpenFileNames(KUrl(), QLatin1String("application/x-x509-ca-cert"),
|
||||
+ = KFileDialog::getOpenFileNames(KUrl(), QLatin1String("*.pem *.cert *.crt *.der"),
|
||||
this, i18n("Pick Certificates"));
|
||||
|
||||
QList<QSslCertificate> certs;
|
File diff suppressed because it is too large
Load Diff
406
kdelibs-udisks2-kfileplacesdevicecache.patch
Normal file
406
kdelibs-udisks2-kfileplacesdevicecache.patch
Normal file
@ -0,0 +1,406 @@
|
||||
diff --git a/kfile/CMakeLists.txt b/kfile/CMakeLists.txt
|
||||
index ceae140..c7c4d3d 100644
|
||||
--- a/kfile/CMakeLists.txt
|
||||
+++ b/kfile/CMakeLists.txt
|
||||
@@ -20,6 +20,7 @@ set(kfile_LIB_SRCS
|
||||
kfilefiltercombo.cpp
|
||||
kfiletreeview.cpp
|
||||
kfilewidget.cpp
|
||||
+ kfileplacesdevicecache.cpp
|
||||
kfileplacesitem.cpp
|
||||
kfileplacesmodel.cpp
|
||||
kfileplacessharedbookmarks.cpp
|
||||
@@ -63,6 +64,7 @@ install( FILES
|
||||
kdirselectdialog.h
|
||||
kdirsortfilterproxymodel.h
|
||||
kfilefiltercombo.h
|
||||
+ kfileplacesdevicecache.h
|
||||
kfileplacesmodel.h
|
||||
kfileplacesview.h
|
||||
kfilepreviewgenerator.h
|
||||
diff --git a/kfile/kfileplacesdevicecache.cpp b/kfile/kfileplacesdevicecache.cpp
|
||||
new file mode 100644
|
||||
index 0000000..40f7242
|
||||
--- /dev/null
|
||||
+++ b/kfile/kfileplacesdevicecache.cpp
|
||||
@@ -0,0 +1,174 @@
|
||||
+/*
|
||||
+ Copyright (C) 2012 Dan Vrátil <dvratil@redhat.com>
|
||||
+
|
||||
+ This library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Library General Public
|
||||
+ License version 2 as published by the Free Software Foundation.
|
||||
+
|
||||
+ 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 "kfileplacesdevicecache.h"
|
||||
+
|
||||
+#include <QMutex>
|
||||
+#include <QtConcurrentRun>
|
||||
+#include <QFutureWatcher>
|
||||
+#include <QTimer>
|
||||
+
|
||||
+#include <kprotocolinfo.h>
|
||||
+#include <solid/predicate.h>
|
||||
+#include <solid/device.h>
|
||||
+#include <solid/devicenotifier.h>
|
||||
+#include <solid/genericinterface.h>
|
||||
+
|
||||
+#include <kdebug.h>
|
||||
+
|
||||
+KFilePlacesDeviceCache* KFilePlacesDeviceCache::s_instance = 0;
|
||||
+
|
||||
+class KFilePlacesDeviceCache::Private
|
||||
+{
|
||||
+ public:
|
||||
+ Private(KFilePlacesDeviceCache *parent):
|
||||
+ queryRunning(false),
|
||||
+ q(parent)
|
||||
+ { }
|
||||
+
|
||||
+ ~Private()
|
||||
+ { }
|
||||
+
|
||||
+ /* This method runs asynchronously in thread */
|
||||
+ QSet<QString> listSolidDevicesAsync()
|
||||
+ {
|
||||
+ QSet<QString> udis;
|
||||
+
|
||||
+ kDebug() << "Querying Solid devices...";
|
||||
+ const QList<Solid::Device>& deviceList = Solid::Device::listFromQuery(solidPredicate);
|
||||
+ kDebug() << "Retrieved" << deviceList.count() << "devices";
|
||||
+
|
||||
+ Q_FOREACH (const Solid::Device& device, deviceList) {
|
||||
+ if (solidPredicate.matches(device)) {
|
||||
+ udis << device.udi();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return udis;
|
||||
+ }
|
||||
+
|
||||
+ void _k_slotDeviceAdded(const QString &udi)
|
||||
+ {
|
||||
+ devicesCache << udi;
|
||||
+
|
||||
+ Q_EMIT q->deviceAdded(udi);
|
||||
+ }
|
||||
+
|
||||
+ void _k_slotDeviceRemoved(const QString &udi)
|
||||
+ {
|
||||
+ if (!devicesCache.contains(udi)) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ devicesCache.remove(udi);
|
||||
+
|
||||
+ Q_EMIT q->deviceRemoved(udi);
|
||||
+ }
|
||||
+
|
||||
+ void _k_listSolidDevicesFinished()
|
||||
+ {
|
||||
+ Q_FOREACH (const QString& device, futureWatcher->result()) {
|
||||
+ _k_slotDeviceAdded(device);
|
||||
+ }
|
||||
+
|
||||
+ delete futureWatcher;
|
||||
+ futureWatcher = 0;
|
||||
+
|
||||
+ queryRunning = false;
|
||||
+ }
|
||||
+
|
||||
+ Solid::Predicate solidPredicate;
|
||||
+
|
||||
+ QFutureWatcher< QSet<QString> >* futureWatcher;
|
||||
+
|
||||
+ /* Static */
|
||||
+ QSet<QString> devicesCache;
|
||||
+ bool queryRunning;
|
||||
+
|
||||
+ KFilePlacesDeviceCache *q;
|
||||
+};
|
||||
+
|
||||
+KFilePlacesDeviceCache::KFilePlacesDeviceCache():
|
||||
+ QObject(),
|
||||
+ d(new Private(this))
|
||||
+{
|
||||
+ Solid::DeviceNotifier* notifier = Solid::DeviceNotifier::instance();
|
||||
+ connect(notifier, SIGNAL(deviceAdded(QString)), this, SLOT(_k_slotDeviceAdded(QString)));
|
||||
+ connect(notifier, SIGNAL(deviceRemoved(QString)), this, SLOT(_k_slotDeviceRemoved(QString)));
|
||||
+
|
||||
+ QString predicate("[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]"
|
||||
+ " OR "
|
||||
+ "[ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ]]"
|
||||
+ " OR "
|
||||
+ "OpticalDisc.availableContent & 'Audio' ]"
|
||||
+ " OR "
|
||||
+ "StorageAccess.ignored == false ]");
|
||||
+
|
||||
+ if (KProtocolInfo::isKnownProtocol("mtp")) {
|
||||
+ predicate.prepend("[");
|
||||
+ predicate.append(" OR PortableMediaPlayer.supportedProtocols == 'mtp']");
|
||||
+ }
|
||||
+
|
||||
+ d->solidPredicate = Solid::Predicate::fromString(predicate);
|
||||
+}
|
||||
+
|
||||
+KFilePlacesDeviceCache* KFilePlacesDeviceCache::self()
|
||||
+{
|
||||
+ static QMutex mutex;
|
||||
+
|
||||
+ mutex.lock();
|
||||
+ if (s_instance == 0) {
|
||||
+ s_instance = new KFilePlacesDeviceCache();
|
||||
+ }
|
||||
+ mutex.unlock();
|
||||
+
|
||||
+ return s_instance;
|
||||
+}
|
||||
+
|
||||
+KFilePlacesDeviceCache::~KFilePlacesDeviceCache()
|
||||
+{
|
||||
+ Solid::DeviceNotifier* notifier = Solid::DeviceNotifier::instance();
|
||||
+ disconnect(notifier, SIGNAL(deviceAdded(QString)));
|
||||
+ disconnect(notifier, SIGNAL(deviceRemoved(QString)));
|
||||
+
|
||||
+ delete d;
|
||||
+}
|
||||
+
|
||||
+const Solid::Predicate& KFilePlacesDeviceCache::predicate() const
|
||||
+{
|
||||
+ return d->solidPredicate;
|
||||
+}
|
||||
+
|
||||
+const QSet<QString>& KFilePlacesDeviceCache::devices() const
|
||||
+{
|
||||
+ kDebug();
|
||||
+ if (d->devicesCache.isEmpty() && !d->queryRunning) {
|
||||
+ d->queryRunning = true;
|
||||
+ d->futureWatcher = new QFutureWatcher< QSet<QString> >;
|
||||
+ connect(d->futureWatcher, SIGNAL(finished()), this, SLOT(_k_listSolidDevicesFinished()));
|
||||
+
|
||||
+ QFuture< QSet<QString> > future = QtConcurrent::run(d, &Private::listSolidDevicesAsync);
|
||||
+ d->futureWatcher->setFuture(future);
|
||||
+ }
|
||||
+
|
||||
+ return d->devicesCache;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+#include "kfileplacesdevicecache.moc"
|
||||
diff --git a/kfile/kfileplacesdevicecache.h b/kfile/kfileplacesdevicecache.h
|
||||
new file mode 100644
|
||||
index 0000000..7293d03
|
||||
--- /dev/null
|
||||
+++ b/kfile/kfileplacesdevicecache.h
|
||||
@@ -0,0 +1,96 @@
|
||||
+/*
|
||||
+ Copyright (C) 2012 Dan Vrátil <dvratil@redhat.com>
|
||||
+
|
||||
+ This library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Library General Public
|
||||
+ License version 2 as published by the Free Software Foundation.
|
||||
+
|
||||
+ 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.
|
||||
+*/
|
||||
+
|
||||
+#ifndef KFILEPLACESDEVICECACHE_H
|
||||
+#define KFILEPLACESDEVICECACHE_H
|
||||
+
|
||||
+#include <kfile_export.h>
|
||||
+
|
||||
+#include <QObject>
|
||||
+#include <QSet>
|
||||
+
|
||||
+#include <solid/predicate.h>
|
||||
+
|
||||
+/**
|
||||
+ * @short Asynchronous cache for Solid devices
|
||||
+ *
|
||||
+ * Purpose of this cache is to load Solid devices asynchronously, because
|
||||
+ * udisks2 backend can take quite a lot of time to enumerate devices, and
|
||||
+ * since Solid does not have async API, the UI thread is blocked for too long.
|
||||
+ *
|
||||
+ * When libsolid2 with asynchronous API is available, this class can go away.
|
||||
+ *
|
||||
+ * The cache keeps itself up-to-date and notifies listeners when a
|
||||
+ * new devices is added or removed.
|
||||
+ */
|
||||
+class KFILE_EXPORT KFilePlacesDeviceCache : public QObject
|
||||
+{
|
||||
+ Q_OBJECT
|
||||
+
|
||||
+public:
|
||||
+ /**
|
||||
+ * Returns a global instance of the cache
|
||||
+ */
|
||||
+ static KFilePlacesDeviceCache* self();
|
||||
+
|
||||
+ /**
|
||||
+ * Returns list of Solid devices.
|
||||
+ *
|
||||
+ * This method always returns immediatelly. When there are no
|
||||
+ * devices in the cache, it returns an empty list and will asynchronously
|
||||
+ * query Solid for devices and will notify listeners by emitting
|
||||
+ * deviceAdded() signal for each devices loaded.
|
||||
+ */
|
||||
+ const QSet<QString>& devices() const;
|
||||
+
|
||||
+ /**
|
||||
+ * Returns Solid::Predicate used to obtain devices from Solid
|
||||
+ */
|
||||
+ const Solid::Predicate& predicate() const;
|
||||
+
|
||||
+Q_SIGNALS:
|
||||
+ /**
|
||||
+ * Emitted whenever a new device is discovered.
|
||||
+ *
|
||||
+ * @param udi UDI (Universal Device ID) of the newly discovered device
|
||||
+ */
|
||||
+ void deviceAdded(const QString& udi);
|
||||
+
|
||||
+ /**
|
||||
+ * Emitted whenever a device is removed from system
|
||||
+ *
|
||||
+ * @param udi UDI (Universal Device ID) of the removed device
|
||||
+ */
|
||||
+ void deviceRemoved(const QString& udi);
|
||||
+
|
||||
+private:
|
||||
+ Q_PRIVATE_SLOT(d, void _k_listSolidDevicesFinished())
|
||||
+ Q_PRIVATE_SLOT(d, void _k_slotDeviceAdded(const QString&))
|
||||
+ Q_PRIVATE_SLOT(d, void _k_slotDeviceRemoved(const QString&))
|
||||
+
|
||||
+ class Private;
|
||||
+ Private * const d;
|
||||
+ friend class Private;
|
||||
+
|
||||
+ explicit KFilePlacesDeviceCache();
|
||||
+ virtual ~KFilePlacesDeviceCache();
|
||||
+
|
||||
+ static KFilePlacesDeviceCache* s_instance;
|
||||
+};
|
||||
+
|
||||
+#endif // KFILEPLACESDEVICECACHE_H
|
||||
diff --git a/kfile/kfileplacesmodel.cpp b/kfile/kfileplacesmodel.cpp
|
||||
index 0192926..e0b01c6 100644
|
||||
--- a/kfile/kfileplacesmodel.cpp
|
||||
+++ b/kfile/kfileplacesmodel.cpp
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "kfileplacesmodel.h"
|
||||
#include "kfileplacesitem_p.h"
|
||||
#include "kfileplacessharedbookmarks_p.h"
|
||||
+#include "kfileplacesdevicecache.h"
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
#include "Windows.h"
|
||||
@@ -49,14 +50,12 @@
|
||||
#include <kio/netaccess.h>
|
||||
#include <kprotocolinfo.h>
|
||||
|
||||
-#include <solid/devicenotifier.h>
|
||||
#include <solid/storageaccess.h>
|
||||
#include <solid/storagedrive.h>
|
||||
#include <solid/storagevolume.h>
|
||||
#include <solid/opticaldrive.h>
|
||||
#include <solid/opticaldisc.h>
|
||||
#include <solid/portablemediaplayer.h>
|
||||
-#include <solid/predicate.h>
|
||||
|
||||
class KFilePlacesModel::Private
|
||||
{
|
||||
@@ -74,7 +73,6 @@ public:
|
||||
QSet<QString> availableDevices;
|
||||
QMap<QObject*, QPersistentModelIndex> setupInProgress;
|
||||
|
||||
- Solid::Predicate predicate;
|
||||
KBookmarkManager *bookmarkManager;
|
||||
KFilePlacesSharedBookmarks * sharedBookmarks;
|
||||
|
||||
@@ -149,30 +147,12 @@ KFilePlacesModel::KFilePlacesModel(QObject *parent)
|
||||
// create after, so if we have own places, they are added afterwards, in case of equal priorities
|
||||
d->sharedBookmarks = new KFilePlacesSharedBookmarks(d->bookmarkManager);
|
||||
|
||||
- QString predicate("[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]"
|
||||
- " OR "
|
||||
- "[ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ]]"
|
||||
- " OR "
|
||||
- "OpticalDisc.availableContent & 'Audio' ]"
|
||||
- " OR "
|
||||
- "StorageAccess.ignored == false ]");
|
||||
-
|
||||
- if (KProtocolInfo::isKnownProtocol("mtp")) {
|
||||
- predicate.prepend("[");
|
||||
- predicate.append(" OR PortableMediaPlayer.supportedProtocols == 'mtp']");
|
||||
- }
|
||||
-
|
||||
- d->predicate = Solid::Predicate::fromString(predicate);
|
||||
-
|
||||
- Q_ASSERT(d->predicate.isValid());
|
||||
-
|
||||
connect(d->bookmarkManager, SIGNAL(changed(QString,QString)),
|
||||
this, SLOT(_k_reloadBookmarks()));
|
||||
connect(d->bookmarkManager, SIGNAL(bookmarksChanged(QString)),
|
||||
this, SLOT(_k_reloadBookmarks()));
|
||||
|
||||
- d->_k_reloadBookmarks();
|
||||
- QTimer::singleShot(0, this, SLOT(_k_initDeviceList()));
|
||||
+ d->_k_initDeviceList();
|
||||
}
|
||||
|
||||
KFilePlacesModel::~KFilePlacesModel()
|
||||
@@ -313,30 +293,21 @@ QModelIndex KFilePlacesModel::closestItem(const KUrl &url) const
|
||||
|
||||
void KFilePlacesModel::Private::_k_initDeviceList()
|
||||
{
|
||||
- Solid::DeviceNotifier *notifier = Solid::DeviceNotifier::instance();
|
||||
-
|
||||
- connect(notifier, SIGNAL(deviceAdded(QString)),
|
||||
+ KFilePlacesDeviceCache *cache = KFilePlacesDeviceCache::self();
|
||||
+ connect(cache, SIGNAL(deviceAdded(QString)),
|
||||
q, SLOT(_k_deviceAdded(QString)));
|
||||
- connect(notifier, SIGNAL(deviceRemoved(QString)),
|
||||
+ connect(cache, SIGNAL(deviceRemoved(QString)),
|
||||
q, SLOT(_k_deviceRemoved(QString)));
|
||||
|
||||
- const QList<Solid::Device> &deviceList = Solid::Device::listFromQuery(predicate);
|
||||
-
|
||||
- foreach(const Solid::Device &device, deviceList) {
|
||||
- availableDevices << device.udi();
|
||||
- }
|
||||
+ availableDevices = cache->devices();
|
||||
|
||||
_k_reloadBookmarks();
|
||||
}
|
||||
|
||||
void KFilePlacesModel::Private::_k_deviceAdded(const QString &udi)
|
||||
{
|
||||
- Solid::Device d(udi);
|
||||
-
|
||||
- if (predicate.matches(d)) {
|
||||
- availableDevices << udi;
|
||||
- _k_reloadBookmarks();
|
||||
- }
|
||||
+ availableDevices << udi;
|
||||
+ _k_reloadBookmarks();
|
||||
}
|
||||
|
||||
void KFilePlacesModel::Private::_k_deviceRemoved(const QString &udi)
|
44
kdelibs.spec
44
kdelibs.spec
@ -24,7 +24,7 @@
|
||||
%global dbusmenu_qt_version %(pkg-config --modversion dbusmenu-qt 2>/dev/null || echo %{dbusmenu_qt_ver})
|
||||
|
||||
Summary: KDE Libraries
|
||||
Version: 4.9.3
|
||||
Version: 4.9.4
|
||||
Release: 4%{?dist}
|
||||
|
||||
Name: kdelibs
|
||||
@ -124,6 +124,11 @@ Patch45: kdelibs-4.7.3-halectomy.patch
|
||||
# udisks2 Solid backend
|
||||
Patch47: kdelibs-udisks2-backend.patch
|
||||
|
||||
# cache to improve performance of apps using Solid with udisks2 (#868530)
|
||||
# disable now, this patch causes new regression, backend devices are destroyed!
|
||||
# the latest solid backend works fine without this patch
|
||||
# Patch48: kdelibs-udisks2-kfileplacesdevicecache.patch
|
||||
|
||||
## upstreamable
|
||||
# knewstuff2 variant of:
|
||||
# https://git.reviewboard.kde.org/r/102439/
|
||||
@ -155,8 +160,12 @@ Patch56: kdelibs-4.9.1-FindKipi-libkipi2.patch
|
||||
# required or not -- rex
|
||||
Patch58: kdelibs-cmake_python3.patch
|
||||
|
||||
# make filter working
|
||||
Patch59: kdelibs-4.9.3-kcm_ssl.patch
|
||||
|
||||
## upstream
|
||||
Patch100: kdelibs-4.9.3-delete-downloadDialog.patch
|
||||
Patch100: 0001-Revert-Also-check-parent-mimetypes-in-protocolForArc.patch
|
||||
Patch101: 0001-Fix-crash-when-no-service-was-selected-user-clicked-.patch
|
||||
|
||||
## security fix
|
||||
# Not Upstreamed? why not ? -- Rex
|
||||
@ -164,6 +173,7 @@ Patch200: kdelibs-4.3.1-CVE-2009-2702.patch
|
||||
|
||||
# rhel patches
|
||||
Patch300: kdelibs-4.8.3-webkit.patch
|
||||
Patch301: kdelibs-4.9.3-dot.patch
|
||||
|
||||
# kmailservice moved here
|
||||
Conflicts: kdelibs3 < 3.5.10-38
|
||||
@ -314,6 +324,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
||||
|
||||
%if "%{?udisks}" == "udisks2"
|
||||
%patch47 -p1 -b .udisks2backend
|
||||
#patch48 -p1 -b .kfileplacesdevicescache
|
||||
%else
|
||||
%patch45 -p1 -b .halectomy
|
||||
%endif
|
||||
@ -327,9 +338,11 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
||||
%patch55 -p1 -b .FindSamba-samba4
|
||||
%patch56 -p1 -b .FindKipi-libkipi2
|
||||
%patch58 -p1 -b .cmake_python3
|
||||
%patch59 -p1 -b .filter
|
||||
|
||||
# upstream patches
|
||||
%patch100 -p1 -b .delete-downloadDialog
|
||||
%patch100 -p1 -b .kio
|
||||
%patch101 -p1 -b .crash
|
||||
|
||||
# security fixes
|
||||
%patch200 -p1 -b .CVE-2009-2702
|
||||
@ -337,6 +350,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
||||
# rhel patches
|
||||
%if 0%{?rhel}
|
||||
%patch300 -p1 -b .webkit
|
||||
%patch301 -p1 -b .dot
|
||||
%endif
|
||||
|
||||
%build
|
||||
@ -588,6 +602,30 @@ rm -rf %{buildroot}
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Dec 06 2012 Than Ngo <than@redhat.com> - 6:4.9.4-4
|
||||
- apply upstream patch to fix crash when no service was selected
|
||||
|
||||
* Thu Dec 06 2012 Than Ngo <than@redhat.com> - 6:4.9.4-3
|
||||
- apply upstream patch to revert the check parent mimetypes in
|
||||
protocolForArchiveMimetype() (kde#311214)
|
||||
|
||||
* Tue Dec 04 2012 Than Ngo <than@redhat.com> - 6:4.9.4-2
|
||||
- disable kfileplacesdevicecache which causes bad regression
|
||||
- add rhel condition
|
||||
|
||||
* Mon Dec 03 2012 Than Ngo <than@redhat.com> - 6:4.9.4-1
|
||||
- 4.9.4
|
||||
- update udisks2 backend patch to fix ghost devices
|
||||
|
||||
* Fri Nov 30 2012 Dan Vrátil <dvratil@redhat.com> - 6:4.9.3-7
|
||||
- update udisks2 backend patch
|
||||
|
||||
* Thu Nov 29 2012 Than Ngo <than@redhat.com> - 6:4.9.3-6
|
||||
- fix file filter
|
||||
|
||||
* Thu Nov 29 2012 Lukáš Tinkl <ltinkl@redhat.com> 6:4.9.3-5
|
||||
- update udisks2 backend patch
|
||||
|
||||
* Fri Nov 23 2012 Jan Grulich <jgrulich@redhat.com> 6:4.9.3-4
|
||||
- Fix previous patch
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user