Cache udisks devices in open/save dialog (#868530)
This commit is contained in:
parent
f296b4697e
commit
b012e5922f
117
kdelibs-4.9.2-cache-solid-device-in-kfileplaces.patch
Normal file
117
kdelibs-4.9.2-cache-solid-device-in-kfileplaces.patch
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
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
|
11
kdelibs.spec
11
kdelibs.spec
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
Summary: KDE Libraries
|
Summary: KDE Libraries
|
||||||
Version: 4.9.2
|
Version: 4.9.2
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
|
|
||||||
Name: kdelibs
|
Name: kdelibs
|
||||||
Epoch: 6
|
Epoch: 6
|
||||||
@ -157,6 +157,10 @@ Patch57: kdelibs-4.9.2-revert-kde#108510-kde#183534.patch
|
|||||||
Patch58: kdelibs-cmake_python3.patch
|
Patch58: kdelibs-cmake_python3.patch
|
||||||
|
|
||||||
## upstream
|
## 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
|
## security fix
|
||||||
# Not Upstreamed? why not ? -- Rex
|
# Not Upstreamed? why not ? -- Rex
|
||||||
@ -330,6 +334,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
|||||||
%patch58 -p1 -b .cmake_python3
|
%patch58 -p1 -b .cmake_python3
|
||||||
|
|
||||||
# upstream patches
|
# upstream patches
|
||||||
|
%patch100 -p1 -b .cache-solid-device-icon
|
||||||
|
|
||||||
# security fixes
|
# security fixes
|
||||||
%patch200 -p1 -b .CVE-2009-2702
|
%patch200 -p1 -b .CVE-2009-2702
|
||||||
@ -585,6 +590,10 @@ rm -rf %{buildroot}
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Oct 25 2012 Dan Vrátil <dvratil@redhat.com> 6:4.9.2-8
|
||||||
|
- Resolves #868530 - cache information about solid device in 'Places'
|
||||||
|
panel in open/save dialog
|
||||||
|
|
||||||
* Wed Oct 24 2012 Rex Dieter <rdieter@fedoraproject.org> 6:4.9.2-7
|
* Wed Oct 24 2012 Rex Dieter <rdieter@fedoraproject.org> 6:4.9.2-7
|
||||||
- rebuild (libjpeg-turbo v8)
|
- rebuild (libjpeg-turbo v8)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user