1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date        : 2009-12-13
7  * Description : a tool to blend bracketed images.
8  *
9  * Copyright (C) 2009-2021 by Gilles Caulier <caulier dot gilles at gmail dot com>
10  * Copyright (C) 2015      by Benjamin Girault <benjamin dot girault at gmail dot com>
11  *
12  * This program is free software; you can redistribute it
13  * and/or modify it under the terms of the GNU General
14  * Public License as published by the Free Software Foundation;
15  * either version 2, or (at your option)
16  * any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * ============================================================ */
24 
25 #ifndef DIGIKAM_EXPO_BLENDING_DLG_H
26 #define DIGIKAM_EXPO_BLENDING_DLG_H
27 
28 // Qt includes
29 
30 #include <QString>
31 #include <QPixmap>
32 #include <QDialog>
33 #include <QDialogButtonBox>
34 
35 // Local includes
36 
37 #include "expoblendingactions.h"
38 
39 class QCloseEvent;
40 
41 namespace DigikamGenericExpoBlendingPlugin
42 {
43 
44 class ExpoBlendingManager;
45 class ExpoBlendingActionData;
46 
47 class ExpoBlendingDlg : public QDialog
48 {
49     Q_OBJECT
50 
51 public:
52 
53     explicit ExpoBlendingDlg(ExpoBlendingManager* const mngr,
54                              QWidget* const parent = nullptr);
55     ~ExpoBlendingDlg()              override;
56 
57     void loadItems(const QList<QUrl>& urls);
58 
59 Q_SIGNALS:
60 
61     void cancelClicked();
62 
63 private:
64 
65     void closeEvent(QCloseEvent*)   override;
66 
67     void setRejectButtonMode(QDialogButtonBox::StandardButton button);
68 
69     void readSettings();
70     void saveSettings();
71 
72     void busy(bool busy);
73     void saveItem(const QUrl& temp, const EnfuseSettings& settings);
74 
75     void setIdentity(const QUrl& url, const QString& identity);
76 
77 private Q_SLOTS:
78 
79     void slotCloseClicked();
80     void slotDefault();
81     void slotPreview();
82     void slotProcess();
83     void slotCancelClicked();
84     void slotFinished();
85 
86     void slotLoadProcessed(const QUrl&);
87     void slotExpoBlendingAction(const DigikamGenericExpoBlendingPlugin::ExpoBlendingActionData&);
88     void slotAddItems(const QList<QUrl>& urls);
89     void slotItemClicked(const QUrl& url);
90 
91     void slotPreviewButtonClicked();
92     void slotFileFormatChanged();
93 
94 private:
95 
96     class Private;
97     Private* const d;
98 };
99 
100 } // namespace DigikamGenericExpoBlendingPlugin
101 
102 #endif // DIGIKAM_EXPO_BLENDING_DLG_H
103