File indexing completed on 2025-11-09 04:03:46

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2018-07-30
0007  * Description : a plugin to adjust items date-time.
0008  *
0009  * SPDX-FileCopyrightText: 2018-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0010  *
0011  * SPDX-License-Identifier: GPL-2.0-or-later
0012  *
0013  * ============================================================ */
0014 
0015 #include "timeadjustplugin.h"
0016 
0017 // Qt includes
0018 
0019 #include <QPointer>
0020 
0021 // KDE includes
0022 
0023 #include <klocalizedstring.h>
0024 
0025 // Local includes
0026 
0027 #include "timeadjustdialog.h"
0028 
0029 namespace DigikamGenericTimeAdjustPlugin
0030 {
0031 
0032 TimeAdjustPlugin::TimeAdjustPlugin(QObject* const parent)
0033     : DPluginGeneric(parent)
0034 {
0035 }
0036 
0037 TimeAdjustPlugin::~TimeAdjustPlugin()
0038 {
0039 }
0040 
0041 QString TimeAdjustPlugin::name() const
0042 {
0043     return i18nc("@title", "Time Adjust");
0044 }
0045 
0046 QString TimeAdjustPlugin::iid() const
0047 {
0048     return QLatin1String(DPLUGIN_IID);
0049 }
0050 
0051 QIcon TimeAdjustPlugin::icon() const
0052 {
0053     return QIcon::fromTheme(QLatin1String("appointment-new"));
0054 }
0055 
0056 QString TimeAdjustPlugin::description() const
0057 {
0058     return i18nc("@info", "A tool to adjust items date-time");
0059 }
0060 
0061 QString TimeAdjustPlugin::details() const
0062 {
0063     return i18nc("@info", "This tool allows users to adjust date time-stamp of items in batch.\n\n"
0064                  "Many source of original time-stamp can be selected from original items, or a from a common file.\n\n"
0065                  "Many metadata time-stamp can be adjusted or left untouched. The adjustment can be an offset of time or a specific date.");
0066 }
0067 
0068 QString TimeAdjustPlugin::handbookSection() const
0069 {
0070     return QLatin1String("post_processing");
0071 }
0072 
0073 QString TimeAdjustPlugin::handbookChapter() const
0074 {
0075     return QLatin1String("time_adjust");
0076 }
0077 
0078 QList<DPluginAuthor> TimeAdjustPlugin::authors() const
0079 {
0080     return QList<DPluginAuthor>()
0081             << DPluginAuthor(QString::fromUtf8("Jesper K. Pedersen"),
0082                              QString::fromUtf8("blackie at kde dot org"),
0083                              QString::fromUtf8("(C) 2003-2005"))
0084             << DPluginAuthor(QString::fromUtf8("Smit Mehta"),
0085                              QString::fromUtf8("smit dot meh at gmail dot com"),
0086                              QString::fromUtf8("(C) 2012"))
0087             << DPluginAuthor(QString::fromUtf8("Pieter Edelman"),
0088                              QString::fromUtf8("p dot edelman at gmx dot net"),
0089                              QString::fromUtf8("(C) 2008"))
0090             << DPluginAuthor(QString::fromUtf8("Maik Qualmann"),
0091                              QString::fromUtf8("metzpinguin at gmail dot com"),
0092                              QString::fromUtf8("(C) 2018-2021"))
0093             << DPluginAuthor(QString::fromUtf8("Gilles Caulier"),
0094                              QString::fromUtf8("caulier dot gilles at gmail dot com"),
0095                              QString::fromUtf8("(C) 2006-2021"))
0096             ;
0097 }
0098 
0099 void TimeAdjustPlugin::setup(QObject* const parent)
0100 {
0101     DPluginAction* const ac = new DPluginAction(parent);
0102     ac->setIcon(icon());
0103     ac->setText(i18nc("@action", "Adjust Time && Date..."));
0104     ac->setObjectName(QLatin1String("timeadjust_edit"));
0105     ac->setActionCategory(DPluginAction::GenericMetadata);
0106     ac->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_D);
0107 
0108     connect(ac, SIGNAL(triggered(bool)),
0109             this, SLOT(slotTimeAdjust()));
0110 
0111     addAction(ac);
0112 }
0113 
0114 void TimeAdjustPlugin::slotTimeAdjust()
0115 {
0116     QPointer<TimeAdjustDialog> dialog = new TimeAdjustDialog(nullptr, infoIface(sender()));
0117     dialog->setPlugin(this);
0118     dialog->exec();
0119     delete dialog;
0120 }
0121 
0122 } // namespace DigikamGenericTimeAdjustPlugin
0123 
0124 #include "moc_timeadjustplugin.cpp"