Warning, file /libraries/baloo-widgets/src/metadatafilter.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2012 Vishesh Handa <me@vhanda.in> 0003 0004 Adapted from KFileMetadataWidget 0005 SPDX-FileCopyrightText: 2008 Sebastian Trueg <trueg@kde.org> 0006 SPDX-FileCopyrightText: 2009-2010 Peter Penz <peter.penz@gmx.at> 0007 0008 SPDX-License-Identifier: LGPL-2.1-or-later 0009 */ 0010 0011 #include "metadatafilter.h" 0012 0013 #include <KConfig> 0014 #include <KConfigGroup> 0015 0016 using namespace Baloo; 0017 0018 MetadataFilter::MetadataFilter(QObject *parent) 0019 : QObject(parent) 0020 { 0021 initMetaInformationSettings(); 0022 } 0023 0024 MetadataFilter::~MetadataFilter() = default; 0025 0026 void MetadataFilter::initMetaInformationSettings() 0027 { 0028 const int currentVersion = 13; // increase version, if the blacklist of disabled 0029 // properties should be updated 0030 0031 KConfig config(QStringLiteral("baloofileinformationrc"), KConfig::NoGlobals); 0032 if (config.group("Misc").readEntry("version", 0) < currentVersion) { 0033 // The resource file is read the first time. Assure 0034 // that some meta information is disabled per default. 0035 0036 // clear old info 0037 config.deleteGroup("Show"); 0038 KConfigGroup settings = config.group("Show"); 0039 0040 static const char *const disabledProperties[] = { 0041 "width", 0042 "height", // replaced by dimensions 0043 "comment", 0044 "contentSize", 0045 "depends", 0046 "lastModified", 0047 "created", 0048 "contentCreated", 0049 "mimeType", 0050 "url", 0051 "channels", 0052 "fileName", 0053 "fileSize", 0054 "kfileitem#owner", 0055 "kfileitem#group", 0056 "kfileitem#permissions", 0057 "replayGainAlbumPeak", 0058 "replayGainAlbumGain", 0059 "replayGainTrackPeak", 0060 "replayGainTrackGain", 0061 "embeddedRating", 0062 "lyrics", 0063 "photoWhiteBalance", 0064 "photoMeteringMode", 0065 "photoSharpness", 0066 "photoSaturation", 0067 "photoPixelXDimension", 0068 "photoPixelYDimension", 0069 "photoGpsLongitude", 0070 "photoGpsLatitude", 0071 }; 0072 0073 for (const auto property : disabledProperties) { 0074 settings.writeEntry(property, false); 0075 } 0076 0077 // mark the group as initialized 0078 config.group("Misc").writeEntry("version", currentVersion); 0079 } 0080 } 0081 0082 QVariantMap MetadataFilter::filter(const QVariantMap &data) 0083 { 0084 if (data.isEmpty()) 0085 return data; 0086 0087 QVariantMap finalData(data); 0088 0089 // 0090 // Remove all items, that are marked as hidden in kmetainformationrc 0091 KConfig config(QStringLiteral("baloofileinformationrc"), KConfig::NoGlobals); 0092 KConfigGroup settings = config.group("Show"); 0093 QVariantMap::iterator it = finalData.begin(); 0094 while (it != finalData.end()) { 0095 const QString uriString = it.key(); 0096 if (!settings.readEntry(uriString, true)) { 0097 it = finalData.erase(it); 0098 } else { 0099 ++it; 0100 } 0101 } 0102 0103 return finalData; 0104 }