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_EXPO_BLENDING_DLG_H
0017 #define DIGIKAM_EXPO_BLENDING_DLG_H
0018 
0019 // Qt includes
0020 
0021 #include <QString>
0022 #include <QPixmap>
0023 #include <QDialog>
0024 #include <QDialogButtonBox>
0025 
0026 // Local includes
0027 
0028 #include "expoblendingactions.h"
0029 
0030 class QCloseEvent;
0031 
0032 namespace DigikamGenericExpoBlendingPlugin
0033 {
0034 
0035 class ExpoBlendingManager;
0036 class ExpoBlendingActionData;
0037 
0038 class ExpoBlendingDlg : public QDialog
0039 {
0040     Q_OBJECT
0041 
0042 public:
0043 
0044     explicit ExpoBlendingDlg(ExpoBlendingManager* const mngr,
0045                              QWidget* const parent = nullptr);
0046     ~ExpoBlendingDlg()              override;
0047 
0048     void loadItems(const QList<QUrl>& urls);
0049 
0050 Q_SIGNALS:
0051 
0052     void cancelClicked();
0053 
0054 private:
0055 
0056     void closeEvent(QCloseEvent*)   override;
0057 
0058     void setRejectButtonMode(QDialogButtonBox::StandardButton button);
0059 
0060     void readSettings();
0061     void saveSettings();
0062 
0063     void busy(bool busy);
0064     void saveItem(const QUrl& temp, const EnfuseSettings& settings);
0065 
0066     void setIdentity(const QUrl& url, const QString& identity);
0067 
0068 private Q_SLOTS:
0069 
0070     void slotCloseClicked();
0071     void slotDefault();
0072     void slotPreview();
0073     void slotProcess();
0074     void slotCancelClicked();
0075     void slotFinished();
0076 
0077     void slotLoadProcessed(const QUrl&);
0078     void slotExpoBlendingAction(const DigikamGenericExpoBlendingPlugin::ExpoBlendingActionData&);
0079     void slotAddItems(const QList<QUrl>& urls);
0080     void slotItemClicked(const QUrl& url);
0081 
0082     void slotPreviewButtonClicked();
0083     void slotFileFormatChanged();
0084 
0085 private:
0086 
0087     class Private;
0088     Private* const d;
0089 };
0090 
0091 } // namespace DigikamGenericExpoBlendingPlugin
0092 
0093 #endif // DIGIKAM_EXPO_BLENDING_DLG_H