1
/* ============================================================
3
* This file is a part of digiKam project
4
* http://www.digikam.org
7
* Description : remove metadata batch tool.
9
* Copyright (C) 2010 by Gilles Caulier <caulier dot gilles at gmail dot com>
11
* This program is free software; you can redistribute it
12
* and/or modify it under the terms of the GNU General
13
* Public License as published by the Free Software Foundation;
14
* either version 2, or (at your option)
17
* This program is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
* GNU General Public License for more details.
22
* ============================================================ */
24
#include "removemetadata.moc"
34
#include <kiconloader.h>
41
#include "dmetadata.h"
46
RemoveMetadata::RemoveMetadata(QObject* parent)
47
: BatchTool("RemoveMetadata", MetadataTool, parent)
49
setToolTitle(i18n("Remove Metadata"));
50
setToolDescription(i18n("A tool to remove Exif, Iptc, or Xmp metadata from images."));
51
setToolIcon(KIcon(SmallIcon("exifinfo")));
53
KVBox* vbox = new KVBox;
54
m_removeExif = new QCheckBox(i18n("Remove Exif"), vbox);
55
m_removeIptc = new QCheckBox(i18n("Remove Iptc"), vbox);
56
m_removeXmp = new QCheckBox(i18n("Remove Xmp"), vbox);
58
QLabel* space = new QLabel(vbox);
59
vbox->setStretchFactor(space, 10);
61
setSettingsWidget(vbox);
63
connect(m_removeExif, SIGNAL(toggled(bool)),
64
this, SLOT(slotSettingsChanged()));
66
connect(m_removeIptc, SIGNAL(toggled(bool)),
67
this, SLOT(slotSettingsChanged()));
69
connect(m_removeXmp, SIGNAL(toggled(bool)),
70
this, SLOT(slotSettingsChanged()));
73
RemoveMetadata::~RemoveMetadata()
77
BatchToolSettings RemoveMetadata::defaultSettings()
79
BatchToolSettings settings;
80
settings.insert("RemoveExif", false);
81
settings.insert("RemoveIptc", false);
82
settings.insert("RemoveXmp", false);
86
void RemoveMetadata::slotAssignSettings2Widget()
88
m_removeExif->setChecked(settings()["RemoveExif"].toBool());
89
m_removeIptc->setChecked(settings()["RemoveIptc"].toBool());
90
m_removeXmp->setChecked(settings()["RemoveXmp"].toBool());
93
void RemoveMetadata::slotSettingsChanged()
95
BatchToolSettings settings;
96
settings.insert("RemoveExif", m_removeExif->isChecked());
97
settings.insert("RemoveIptc", m_removeIptc->isChecked());
98
settings.insert("RemoveXmp", m_removeXmp->isChecked());
99
BatchTool::slotSettingsChanged(settings);
102
bool RemoveMetadata::toolOperations()
104
bool removeExif = settings()["RemoveExif"].toBool();
105
bool removeIptc = settings()["RemoveIptc"].toBool();
106
bool removeXmp = settings()["RemoveXmp"].toBool();
108
if (!loadToDImg()) return false;
110
DMetadata meta(image().getMetadata());
112
if (removeExif) meta.clearExif();
114
if (removeIptc) meta.clearIptc();
116
if (removeXmp) meta.clearXmp();
118
image().setMetadata(meta.data());
120
return (savefromDImg());
123
} // namespace Digikam