File indexing completed on 2025-04-27 03:58:35
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2006-02-21 0007 * Description : a generic list view widget to 0008 * display metadata 0009 * 0010 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0011 * 0012 * SPDX-License-Identifier: GPL-2.0-or-later 0013 * 0014 * ============================================================ */ 0015 0016 #ifndef DIGIKAM_META_DATA_LIST_VIEW_H 0017 #define DIGIKAM_META_DATA_LIST_VIEW_H 0018 0019 // Qt includes 0020 0021 #include <QString> 0022 #include <QMap> 0023 #include <QResizeEvent> 0024 #include <QTreeWidget> 0025 0026 // Local includes 0027 0028 #include "searchtextbar.h" 0029 #include "metadatawidget.h" 0030 #include "digikam_export.h" 0031 0032 namespace Digikam 0033 { 0034 0035 class MdKeyListViewItem; 0036 0037 class DIGIKAM_EXPORT MetadataListView : public QTreeWidget 0038 { 0039 Q_OBJECT 0040 0041 public: 0042 0043 explicit MetadataListView(QWidget* const parent); 0044 ~MetadataListView() override; 0045 0046 QString getCurrentItemKey() const; 0047 void setCurrentItemByKey(const QString& itemKey); 0048 0049 void setIfdList(const DMetadata::MetaDataMap& ifds, const QStringList& tagsFilter); 0050 void setIfdList(const DMetadata::MetaDataMap& ifds, const QStringList& keysFilter, 0051 const QStringList& tagsFilter); 0052 0053 Q_SIGNALS: 0054 0055 void signalTextFilterMatch(bool); 0056 0057 public Q_SLOTS: 0058 0059 void slotSearchTextChanged(const SearchTextSettings&); 0060 0061 private Q_SLOTS: 0062 0063 void slotSelectionChanged(QTreeWidgetItem*, int); 0064 0065 private: 0066 0067 MdKeyListViewItem* findMdKeyItem(const QString& key); 0068 void cleanUpMdKeyItem(); 0069 0070 private: 0071 0072 QString m_selectedItemKey; 0073 0074 MetadataWidget* m_parent; 0075 }; 0076 0077 } // namespace Digikam 0078 0079 #endif // DIGIKAM_META_DATA_LIST_VIEW_H