File indexing completed on 2024-05-12 15:59:15
0001 /* 0002 * SPDX-FileCopyrightText: 2008 Cyrille Berger <cberger@cberger.net> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "kis_meta_data_filter_p.h" 0008 #include <QDate> 0009 0010 #include <klocalizedstring.h> 0011 #include <KritaVersionWrapper.h> 0012 0013 #include "kis_meta_data_entry.h" 0014 #include "kis_meta_data_schema.h" 0015 #include "kis_meta_data_schema_registry.h" 0016 #include "kis_meta_data_store.h" 0017 #include "kis_meta_data_value.h" 0018 0019 #include "kis_debug.h" 0020 0021 using namespace KisMetaData; 0022 0023 AnonymizerFilter::~AnonymizerFilter() 0024 { 0025 } 0026 0027 bool AnonymizerFilter::defaultEnabled() const 0028 { 0029 return false; 0030 } 0031 0032 QString AnonymizerFilter::id() const 0033 { 0034 return "Anonymizer"; 0035 } 0036 0037 QString AnonymizerFilter::name() const 0038 { 0039 return i18n("Anonymizer"); 0040 } 0041 0042 QString AnonymizerFilter::description() const 0043 { 0044 return i18n("Remove personal information: author, location..."); 0045 } 0046 0047 void AnonymizerFilter::filter(KisMetaData::Store* store) const 0048 { 0049 dbgMetaData << "Anonymize a store"; 0050 const KisMetaData::Schema* dcSchema = KisMetaData::SchemaRegistry::instance()->schemaFromUri(KisMetaData::Schema::DublinCoreSchemaUri); 0051 store->removeEntry(dcSchema, "contributor"); 0052 store->removeEntry(dcSchema, "creator"); 0053 store->removeEntry(dcSchema, "publisher"); 0054 store->removeEntry(dcSchema, "rights"); 0055 0056 const KisMetaData::Schema* psSchema = KisMetaData::SchemaRegistry::instance()->schemaFromUri(KisMetaData::Schema::PhotoshopSchemaUri); 0057 store->removeEntry(psSchema, "AuthorsPosition"); 0058 store->removeEntry(psSchema, "CaptionWriter"); 0059 store->removeEntry(psSchema, "Credit"); 0060 store->removeEntry(psSchema, "City"); 0061 store->removeEntry(psSchema, "Country"); 0062 } 0063 0064 //------------------------------------// 0065 //---------- ToolInfoFilter ----------// 0066 //------------------------------------// 0067 0068 ToolInfoFilter::~ToolInfoFilter() 0069 { 0070 } 0071 0072 bool ToolInfoFilter::defaultEnabled() const 0073 { 0074 return true; 0075 } 0076 0077 QString ToolInfoFilter::id() const 0078 { 0079 return "ToolInfo"; 0080 } 0081 0082 QString ToolInfoFilter::name() const 0083 { 0084 return i18n("Tool information"); 0085 } 0086 0087 QString ToolInfoFilter::description() const 0088 { 0089 return i18n("Add the name of the tool used for creation and the modification date"); 0090 } 0091 0092 void ToolInfoFilter::filter(KisMetaData::Store* store) const 0093 { 0094 const KisMetaData::Schema* xmpSchema = KisMetaData::SchemaRegistry::instance()->schemaFromUri(KisMetaData::Schema::XMPSchemaUri); 0095 store->getEntry(xmpSchema, "ModifyDate").value() = Value(QDate::currentDate()); 0096 store->getEntry(xmpSchema, "MetadataDate").value() = Value(QDate::currentDate()); 0097 if (!store->containsEntry(xmpSchema, "CreatorTool")) { 0098 store->getEntry(xmpSchema, "CreatorTool").value() = Value(i18n("Krita %1", KritaVersionWrapper::versionString())); 0099 } 0100 }