File indexing completed on 2025-04-27 03:58:34

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2021-04-18
0007  * Description : ExifTool metadata list view item.
0008  *
0009  * SPDX-FileCopyrightText: 2021-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 "exiftoollistviewitem.h"
0016 
0017 // Qt includes
0018 
0019 #include <QHeaderView>
0020 #include <QFont>
0021 
0022 // KDE includes
0023 
0024 #include <klocalizedstring.h>
0025 
0026 // Local includes
0027 
0028 #include "ditemtooltip.h"
0029 #include "exiftoollistviewgroup.h"
0030 
0031 namespace Digikam
0032 {
0033 
0034 class Q_DECL_HIDDEN ExifToolListViewItem::Private
0035 {
0036 public:
0037 
0038     explicit Private()
0039     {
0040     }
0041 
0042     QString key;
0043     QString desc;
0044 };
0045 
0046 ExifToolListViewItem::ExifToolListViewItem(ExifToolListViewGroup* const parent,
0047                                            const QString& key,
0048                                            const QString& value,
0049                                            const QString& desc)
0050     : QTreeWidgetItem(parent),
0051       d              (new Private)
0052 {
0053     d->key  = key;
0054     d->desc = desc;
0055 
0056     setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicator);
0057     setDisabled(false);
0058     setSelected(false);
0059 
0060     QString name = d->key.section(QLatin1Char('.'), -1);
0061     setText(0, name);
0062     setToolTip(0, name);
0063 
0064     QString tagVal = value.simplified();
0065 
0066     if (tagVal.length() > 512)
0067     {
0068         tagVal.truncate(512);
0069         tagVal.append(QLatin1String("..."));
0070     }
0071 
0072     setText(1, tagVal);
0073 
0074     DToolTipStyleSheet cnt;
0075     setToolTip(1, QLatin1String("<qt><p>") + cnt.breakString(tagVal) + QLatin1String("</p></qt>"));
0076 }
0077 
0078 ExifToolListViewItem::ExifToolListViewItem(ExifToolListViewGroup* const parent,
0079                                            const QString& key)
0080     : QTreeWidgetItem(parent),
0081       d              (new Private)
0082 {
0083     d->key = key;
0084 
0085     setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicator);
0086 
0087     QString name = d->key.section(QLatin1Char('.'), -1);
0088     setText(0, name);
0089     setToolTip(0, name);
0090 
0091     setDisabled(true);
0092     setText(1, i18n("Unavailable"));
0093     QFont fnt = font(1);
0094     fnt.setItalic(true);
0095     setFont(1, fnt);
0096 }
0097 
0098 ExifToolListViewItem::~ExifToolListViewItem()
0099 {
0100     delete d;
0101 }
0102 
0103 QString ExifToolListViewItem::getKey() const
0104 {
0105     return d->key;
0106 }
0107 
0108 QString ExifToolListViewItem::getTitle() const
0109 {
0110     return text(0);
0111 }
0112 
0113 QString ExifToolListViewItem::getValue() const
0114 {
0115     return text(1);
0116 }
0117 
0118 QString ExifToolListViewItem::getDescription() const
0119 {
0120     return d->desc;
0121 }
0122 
0123 } // namespace Digikam