mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 19:02:48 +00:00
Merge branch 'master' of https://github.com/fluxer/kdelibs into devinfo
This commit is contained in:
commit
67586d425a
4 changed files with 58 additions and 86 deletions
|
@ -27,10 +27,8 @@
|
||||||
#include <klocale.h>
|
#include <klocale.h>
|
||||||
#include <ksettings.h>
|
#include <ksettings.h>
|
||||||
#include <solid/block.h>
|
#include <solid/block.h>
|
||||||
#include <solid/opticaldisc.h>
|
|
||||||
#include <solid/opticaldrive.h>
|
#include <solid/opticaldrive.h>
|
||||||
#include <solid/storageaccess.h>
|
#include <solid/storageaccess.h>
|
||||||
#include <solid/storagevolume.h>
|
|
||||||
#include <solid/storagedrive.h>
|
#include <solid/storagedrive.h>
|
||||||
#include <solid/portablemediaplayer.h>
|
#include <solid/portablemediaplayer.h>
|
||||||
|
|
||||||
|
@ -54,8 +52,6 @@ KFilePlacesItem::KFilePlacesItem(KBookmarkManager *manager,
|
||||||
this, SLOT(trashConfigChanged(QString)));
|
this, SLOT(trashConfigChanged(QString)));
|
||||||
} else if (!udi.isEmpty() && m_device.isValid()) {
|
} else if (!udi.isEmpty() && m_device.isValid()) {
|
||||||
m_access = m_device.as<Solid::StorageAccess>();
|
m_access = m_device.as<Solid::StorageAccess>();
|
||||||
m_volume = m_device.as<Solid::StorageVolume>();
|
|
||||||
m_disc = m_device.as<Solid::OpticalDisc>();
|
|
||||||
m_mtp = m_device.as<Solid::PortableMediaPlayer>();
|
m_mtp = m_device.as<Solid::PortableMediaPlayer>();
|
||||||
if (m_access) {
|
if (m_access) {
|
||||||
connect(m_access, SIGNAL(accessibilityChanged(bool,QString)),
|
connect(m_access, SIGNAL(accessibilityChanged(bool,QString)),
|
||||||
|
@ -112,13 +108,9 @@ Solid::Device KFilePlacesItem::device() const
|
||||||
m_device = Solid::Device(bookmark().metaDataItem("UDI"));
|
m_device = Solid::Device(bookmark().metaDataItem("UDI"));
|
||||||
if (m_device.isValid()) {
|
if (m_device.isValid()) {
|
||||||
m_access = m_device.as<Solid::StorageAccess>();
|
m_access = m_device.as<Solid::StorageAccess>();
|
||||||
m_volume = m_device.as<Solid::StorageVolume>();
|
|
||||||
m_disc = m_device.as<Solid::OpticalDisc>();
|
|
||||||
m_mtp = m_device.as<Solid::PortableMediaPlayer>();
|
m_mtp = m_device.as<Solid::PortableMediaPlayer>();
|
||||||
} else {
|
} else {
|
||||||
m_access = 0;
|
m_access = 0;
|
||||||
m_volume = 0;
|
|
||||||
m_disc = 0;
|
|
||||||
m_mtp = 0;
|
m_mtp = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,26 +136,32 @@ QVariant KFilePlacesItem::bookmarkData(int role) const
|
||||||
|
|
||||||
if (b.isNull()) return QVariant();
|
if (b.isNull()) return QVariant();
|
||||||
|
|
||||||
switch (role)
|
switch (role) {
|
||||||
{
|
case Qt::DisplayRole: {
|
||||||
case Qt::DisplayRole:
|
return m_text;
|
||||||
return m_text;
|
}
|
||||||
case Qt::DecorationRole:
|
case Qt::DecorationRole: {
|
||||||
return KIcon(iconNameForBookmark(b));
|
return KIcon(iconNameForBookmark(b));
|
||||||
case Qt::BackgroundRole:
|
}
|
||||||
if (b.metaDataItem("IsHidden")=="true") {
|
case Qt::BackgroundRole: {
|
||||||
return Qt::lightGray;
|
if (b.metaDataItem("IsHidden")=="true") {
|
||||||
} else {
|
return Qt::lightGray;
|
||||||
|
} else {
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case KFilePlacesModel::UrlRole: {
|
||||||
|
return QUrl(b.url());
|
||||||
|
}
|
||||||
|
case KFilePlacesModel::SetupNeededRole: {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case KFilePlacesModel::HiddenRole: {
|
||||||
|
return b.metaDataItem("IsHidden")=="true";
|
||||||
|
}
|
||||||
|
default: {
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
case KFilePlacesModel::UrlRole:
|
|
||||||
return QUrl(b.url());
|
|
||||||
case KFilePlacesModel::SetupNeededRole:
|
|
||||||
return false;
|
|
||||||
case KFilePlacesModel::HiddenRole:
|
|
||||||
return b.metaDataItem("IsHidden")=="true";
|
|
||||||
default:
|
|
||||||
return QVariant();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,55 +170,43 @@ QVariant KFilePlacesItem::deviceData(int role) const
|
||||||
Solid::Device d = device();
|
Solid::Device d = device();
|
||||||
|
|
||||||
if (d.isValid()) {
|
if (d.isValid()) {
|
||||||
switch (role)
|
switch (role) {
|
||||||
{
|
case Qt::DisplayRole: {
|
||||||
case Qt::DisplayRole:
|
return d.description();
|
||||||
return d.description();
|
}
|
||||||
case Qt::DecorationRole:
|
case Qt::DecorationRole: {
|
||||||
return KIcon(m_iconPath, 0, m_emblems);
|
return KIcon(m_iconPath, 0, m_emblems);
|
||||||
case KFilePlacesModel::UrlRole:
|
}
|
||||||
if (m_access) {
|
case KFilePlacesModel::UrlRole: {
|
||||||
return QUrl(KUrl(m_access->filePath()));
|
if (m_access) {
|
||||||
} else if (m_disc && (m_disc->availableContent() & Solid::OpticalDisc::Audio)!=0) {
|
return QUrl(KUrl(m_access->filePath()));
|
||||||
Solid::Block *block = d.as<Solid::Block>();
|
} else if (m_mtp) {
|
||||||
if (block) {
|
return QUrl(QString("mtp:udi=%1").arg(d.udi()));
|
||||||
QString device = block->device();
|
|
||||||
return QUrl(QString("audiocd:/?device=%1").arg(device));
|
|
||||||
}
|
}
|
||||||
// We failed to get the block device. Assume audiocd:/ can
|
|
||||||
// figure it out, but cannot handle multiple disc drives.
|
|
||||||
// See https://bugs.kde.org/show_bug.cgi?id=314544#c40
|
|
||||||
return QUrl(QString("audiocd:/"));
|
|
||||||
} else if (m_mtp) {
|
|
||||||
return QUrl(QString("mtp:udi=%1").arg(d.udi()));
|
|
||||||
} else {
|
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
case KFilePlacesModel::SetupNeededRole:
|
case KFilePlacesModel::SetupNeededRole: {
|
||||||
if (m_access) {
|
if (m_access) {
|
||||||
return !m_isAccessible;
|
return !m_isAccessible;
|
||||||
} else {
|
}
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
case KFilePlacesModel::FixedDeviceRole: {
|
||||||
case KFilePlacesModel::FixedDeviceRole:
|
|
||||||
{
|
|
||||||
Solid::StorageDrive *drive = m_device.as<Solid::StorageDrive>();
|
Solid::StorageDrive *drive = m_device.as<Solid::StorageDrive>();
|
||||||
if (drive!=0) {
|
if (drive!=0) {
|
||||||
return !drive->isHotpluggable() && !drive->isRemovable();
|
return !drive->isHotpluggable() && !drive->isRemovable();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
case KFilePlacesModel::CapacityBarRecommendedRole: {
|
||||||
case KFilePlacesModel::CapacityBarRecommendedRole:
|
return m_isAccessible && !m_isCdrom;
|
||||||
return m_isAccessible && !m_isCdrom;
|
}
|
||||||
|
default: {
|
||||||
default:
|
return QVariant();
|
||||||
return QVariant();
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return QVariant();
|
|
||||||
}
|
}
|
||||||
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
KBookmark KFilePlacesItem::createBookmark(KBookmarkManager *manager,
|
KBookmark KFilePlacesItem::createBookmark(KBookmarkManager *manager,
|
||||||
|
@ -230,8 +216,9 @@ KBookmark KFilePlacesItem::createBookmark(KBookmarkManager *manager,
|
||||||
KFilePlacesItem *after)
|
KFilePlacesItem *after)
|
||||||
{
|
{
|
||||||
KBookmarkGroup root = manager->root();
|
KBookmarkGroup root = manager->root();
|
||||||
if (root.isNull())
|
if (root.isNull()) {
|
||||||
return KBookmark();
|
return KBookmark();
|
||||||
|
}
|
||||||
QString empty_icon = iconName;
|
QString empty_icon = iconName;
|
||||||
if (url == KUrl("trash:/")) {
|
if (url == KUrl("trash:/")) {
|
||||||
if (empty_icon.endsWith(QLatin1String("-full"))) {
|
if (empty_icon.endsWith(QLatin1String("-full"))) {
|
||||||
|
|
|
@ -88,8 +88,6 @@ private:
|
||||||
QString m_text;
|
QString m_text;
|
||||||
mutable Solid::Device m_device;
|
mutable Solid::Device m_device;
|
||||||
mutable QPointer<Solid::StorageAccess> m_access;
|
mutable QPointer<Solid::StorageAccess> m_access;
|
||||||
mutable QPointer<Solid::StorageVolume> m_volume;
|
|
||||||
mutable QPointer<Solid::OpticalDisc> m_disc;
|
|
||||||
mutable QPointer<Solid::PortableMediaPlayer> m_mtp;
|
mutable QPointer<Solid::PortableMediaPlayer> m_mtp;
|
||||||
QString m_iconPath;
|
QString m_iconPath;
|
||||||
QStringList m_emblems;
|
QStringList m_emblems;
|
||||||
|
|
|
@ -160,6 +160,8 @@ public:
|
||||||
static const char* avarageBitrateField = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#averageBitrate";
|
static const char* avarageBitrateField = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#averageBitrate";
|
||||||
static const char* frameRateField = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#frameRate";
|
static const char* frameRateField = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#frameRate";
|
||||||
static const char* sampleRateField = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#sampleRate";
|
static const char* sampleRateField = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#sampleRate";
|
||||||
|
// datetime field, not registered as such by strigi
|
||||||
|
static const char* contentCreatedField = "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#contentCreated";
|
||||||
const std::string name(field->key());
|
const std::string name(field->key());
|
||||||
if (qstrncmp(name.c_str(), durationField, name.size()) == 0) {
|
if (qstrncmp(name.c_str(), durationField, name.size()) == 0) {
|
||||||
const QString durationstring = KGlobal::locale()->prettyFormatDuration(value * 1000);
|
const QString durationstring = KGlobal::locale()->prettyFormatDuration(value * 1000);
|
||||||
|
@ -177,6 +179,11 @@ public:
|
||||||
const QString bitratestring = i18n("%1 kHz").arg(value / 1000);
|
const QString bitratestring = i18n("%1 kHz").arg(value / 1000);
|
||||||
addValue(idx, field, QVariant(bitratestring));
|
addValue(idx, field, QVariant(bitratestring));
|
||||||
return;
|
return;
|
||||||
|
} else if (qstrncmp(name.c_str(), contentCreatedField, name.size()) == 0) {
|
||||||
|
const QDateTime datetime = QDateTime::fromTime_t(value);
|
||||||
|
// NOTE: keep in sync with kdelibs/kio/kfile/kfilemetadataprovider.cpp
|
||||||
|
const QString datestring = KGlobal::locale()->formatDateTime(datetime, KLocale::FancyLongDate);
|
||||||
|
addValue(idx, field, QVariant(datestring));
|
||||||
}
|
}
|
||||||
|
|
||||||
addValue(idx, field, QVariant((quint32)value));
|
addValue(idx, field, QVariant((quint32)value));
|
||||||
|
|
|
@ -447,35 +447,15 @@
|
||||||
<entry key="UseFileThumbnails" type="Bool" />
|
<entry key="UseFileThumbnails" type="Bool" />
|
||||||
<entry key="Plugins" type="StringList" />
|
<entry key="Plugins" type="StringList" />
|
||||||
<entry key="ar" type="Bool" />
|
<entry key="ar" type="Bool" />
|
||||||
<entry key="audiocd" type="Bool" />
|
|
||||||
<entry key="devices" type="Bool" />
|
|
||||||
<entry key="file" type="Bool" />
|
<entry key="file" type="Bool" />
|
||||||
<entry key="fish" type="Bool" />
|
|
||||||
<entry key="floppy" type="Bool" />
|
<entry key="floppy" type="Bool" />
|
||||||
<entry key="fonts" type="Bool" />
|
<entry key="fonts" type="Bool" />
|
||||||
<entry key="ftp" type="Bool" />
|
<entry key="ftp" type="Bool" />
|
||||||
<entry key="imap" type="Bool" />
|
|
||||||
<entry key="imaps" type="Bool" />
|
|
||||||
<entry key="kdeapi" type="Bool" />
|
|
||||||
<entry key="lan" type="Bool" />
|
|
||||||
<entry key="mac" type="Bool" />
|
|
||||||
<entry key="man" type="Bool" />
|
|
||||||
<entry key="nfs" type="Bool" />
|
<entry key="nfs" type="Bool" />
|
||||||
<entry key="nntp" type="Bool" />
|
|
||||||
<entry key="perldoc" type="Bool" />
|
|
||||||
<entry key="pop3" type="Bool" />
|
|
||||||
<entry key="pop3s" type="Bool" />
|
|
||||||
<entry key="print" type="Bool" />
|
|
||||||
<entry key="printdb" type="Bool" />
|
|
||||||
<entry key="programs" type="Bool" />
|
|
||||||
<entry key="pydoc" type="Bool" />
|
|
||||||
<entry key="rlan" type="Bool" />
|
|
||||||
<entry key="settings" type="Bool" />
|
<entry key="settings" type="Bool" />
|
||||||
<entry key="sftp" type="Bool" />
|
<entry key="sftp" type="Bool" />
|
||||||
<entry key="sieve" type="Bool" />
|
|
||||||
<entry key="smb" type="Bool" />
|
<entry key="smb" type="Bool" />
|
||||||
<entry key="smtp" type="Bool" />
|
<entry key="mtp" type="Bool" />
|
||||||
<entry key="smtps" type="Bool" />
|
|
||||||
<entry key="system" type="Bool" />
|
<entry key="system" type="Bool" />
|
||||||
<entry key="tar" type="Bool" />
|
<entry key="tar" type="Bool" />
|
||||||
<entry key="webdav" type="Bool" />
|
<entry key="webdav" type="Bool" />
|
||||||
|
|
Loading…
Add table
Reference in a new issue