mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00
kio: implement option to disable metadata plugins
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
6197c25884
commit
e175ca1377
5 changed files with 33 additions and 19 deletions
|
@ -53,21 +53,27 @@ void KFileMetaInfoPrivate::init(const QString &filename, const KUrl &url, KFileM
|
|||
{
|
||||
m_url = url;
|
||||
|
||||
KConfig config("kmetainformationrc", KConfig::NoGlobals);
|
||||
KConfigGroup pluginsgroup = config.group("Plugins");
|
||||
const KMimeType::Ptr filemimetype = KMimeType::findByUrl(url);
|
||||
const KService::List kfmdplugins = KServiceTypeTrader::self()->query("KFileMetaData/Plugin");
|
||||
foreach (const KService::Ptr &kfmdplugin, kfmdplugins) {
|
||||
KFileMetaDataPlugin *kfmdplugininstance = kfmdplugin->createInstance<KFileMetaDataPlugin>();
|
||||
if (kfmdplugininstance) {
|
||||
// qDebug() << Q_FUNC_INFO << filemimetype->name() << kfmdplugininstance->mimeTypes();
|
||||
foreach (const QString &kfmdpluginmime, kfmdplugininstance->mimeTypes()) {
|
||||
if (filemimetype->is(kfmdpluginmime)) {
|
||||
items.append(kfmdplugininstance->metaData(url, w));
|
||||
break;
|
||||
const QString key = kfmdplugin->desktopEntryName();
|
||||
const bool enable = pluginsgroup.readEntry(key, true);
|
||||
if (enable) {
|
||||
KFileMetaDataPlugin *kfmdplugininstance = kfmdplugin->createInstance<KFileMetaDataPlugin>();
|
||||
if (kfmdplugininstance) {
|
||||
// qDebug() << Q_FUNC_INFO << filemimetype->name() << kfmdplugininstance->mimeTypes();
|
||||
foreach (const QString &kfmdpluginmime, kfmdplugininstance->mimeTypes()) {
|
||||
if (filemimetype->is(kfmdpluginmime)) {
|
||||
items.append(kfmdplugininstance->metaData(url, w));
|
||||
break;
|
||||
}
|
||||
}
|
||||
delete kfmdplugininstance;
|
||||
} else {
|
||||
kWarning() << "Could not create KFileMetaDataPlugin instance";
|
||||
}
|
||||
delete kfmdplugininstance;
|
||||
} else {
|
||||
kWarning() << "Could not create KFileMetaDataPlugin instance";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -185,9 +191,9 @@ QStringList KFileMetaInfo::preferredKeys() const
|
|||
{
|
||||
QStringList result;
|
||||
KConfig config("kmetainformationrc", KConfig::NoGlobals);
|
||||
KConfigGroup settings = config.group("Show");
|
||||
KConfigGroup showgroup = config.group("Show");
|
||||
foreach (const QString &key, supportedKeys()) {
|
||||
const bool show = settings.readEntry(key, true);
|
||||
const bool show = showgroup.readEntry(key, true);
|
||||
if (show) {
|
||||
result.append(key);
|
||||
}
|
||||
|
@ -201,14 +207,20 @@ QStringList KFileMetaInfo::supportedKeys()
|
|||
<< QString::fromLatin1("http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName")
|
||||
<< QString::fromLatin1("http://www.semanticdesktop.org/ontologies/2007/01/19/nie#url");
|
||||
|
||||
KConfig config("kmetainformationrc", KConfig::NoGlobals);
|
||||
KConfigGroup pluginsgroup = config.group("Plugins");
|
||||
const KService::List kfmdplugins = KServiceTypeTrader::self()->query("KFileMetaData/Plugin");
|
||||
foreach (const KService::Ptr &kfmdplugin, kfmdplugins) {
|
||||
KFileMetaDataPlugin *kfmdplugininstance = kfmdplugin->createInstance<KFileMetaDataPlugin>();
|
||||
if (kfmdplugininstance) {
|
||||
keys.append(kfmdplugininstance->keys());
|
||||
delete kfmdplugininstance;
|
||||
} else {
|
||||
kWarning() << "Could not create KFileMetaDataPlugin instance";
|
||||
const QString key = kfmdplugin->desktopEntryName();
|
||||
const bool enable = pluginsgroup.readEntry(key, true);
|
||||
if (enable) {
|
||||
KFileMetaDataPlugin *kfmdplugininstance = kfmdplugin->createInstance<KFileMetaDataPlugin>();
|
||||
if (kfmdplugininstance) {
|
||||
keys.append(kfmdplugininstance->keys());
|
||||
delete kfmdplugininstance;
|
||||
} else {
|
||||
kWarning() << "Could not create KFileMetaDataPlugin instance";
|
||||
}
|
||||
}
|
||||
}
|
||||
keys.removeDuplicates();
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=KFileMetaDataExiv2Plugin
|
||||
GenericName=Exiv2 metadata extractor
|
||||
X-KDE-Library=kfilemetadata_exiv2
|
||||
X-KDE-ServiceTypes=KFileMetaData/Plugin
|
||||
InitialPreference=1
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=KFileMetaDataFFmpegPlugin
|
||||
GenericName=FFmpeg metadata extractor
|
||||
X-KDE-Library=kfilemetadata_ffmpeg
|
||||
X-KDE-ServiceTypes=KFileMetaData/Plugin
|
||||
InitialPreference=1
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include "kfilemetadata_taglib.h"
|
||||
#include "kpluginfactory.h"
|
||||
#include "kmimetype.h"
|
||||
#include "kglobal.h"
|
||||
#include "klocale.h"
|
||||
#include "kdebug.h"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=KFileMetaDataTagLibPlugin
|
||||
GenericName=TagLib metadata extractor
|
||||
X-KDE-Library=kfilemetadata_taglib
|
||||
X-KDE-ServiceTypes=KFileMetaData/Plugin
|
||||
InitialPreference=1
|
||||
|
|
Loading…
Add table
Reference in a new issue