File indexing completed on 2025-03-09 03:50:50
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2009-12-13 0007 * Description : a tool to blend bracketed images. 0008 * 0009 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * SPDX-FileCopyrightText: 2015 by Benjamin Girault <benjamin dot girault at gmail dot com> 0011 * 0012 * SPDX-License-Identifier: GPL-2.0-or-later 0013 * 0014 * ============================================================ */ 0015 0016 #ifndef DIGIKAM_BRACKET_STACK_H 0017 #define DIGIKAM_BRACKET_STACK_H 0018 0019 // Qt includes 0020 0021 #include <QTreeWidget> 0022 #include <QString> 0023 #include <QPixmap> 0024 #include <QUrl> 0025 0026 // Local includes 0027 0028 #include "loadingdescription.h" 0029 0030 using namespace Digikam; 0031 0032 namespace DigikamGenericExpoBlendingPlugin 0033 { 0034 0035 class BracketStackItem : public QTreeWidgetItem 0036 { 0037 public: 0038 0039 explicit BracketStackItem(QTreeWidget* const parent); 0040 ~BracketStackItem() override = default; 0041 0042 void setUrl(const QUrl& url); 0043 const QUrl& url() const; 0044 0045 void setOn(bool b); 0046 bool isOn() const; 0047 0048 void setThumbnail(const QPixmap& pix); 0049 void setExposure(const QString& exp); 0050 0051 private: 0052 0053 bool operator< (const QTreeWidgetItem& other) const override; 0054 0055 private: 0056 0057 QUrl m_url; 0058 0059 private: 0060 0061 Q_DISABLE_COPY(BracketStackItem) 0062 }; 0063 0064 // --------------------------------------------------------------------- 0065 0066 class BracketStackList : public QTreeWidget 0067 { 0068 Q_OBJECT 0069 0070 public: 0071 0072 explicit BracketStackList(QWidget* const parent); 0073 ~BracketStackList() override = default; 0074 0075 void addItems(const QList<QUrl>& list); 0076 0077 QList<QUrl> urls(); 0078 BracketStackItem* findItem(const QUrl& url); 0079 0080 Q_SIGNALS: 0081 0082 void signalAddItems(const QList<QUrl>&); 0083 void signalItemClicked(const QUrl& url); 0084 0085 private Q_SLOTS: 0086 0087 void slotThumbnail(const LoadingDescription&, const QPixmap& pix); 0088 void slotItemClicked(QTreeWidgetItem* item, int column); 0089 }; 0090 0091 } // namespace DigikamGenericExpoBlendingPlugin 0092 0093 #endif // DIGIKAM_BRACKET_STACK_H