File indexing completed on 2025-01-05 03:53:12
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2011-05-23 0007 * Description : a tool to create panorama by fusion of several images. 0008 * 0009 * SPDX-FileCopyrightText: 2011-2016 by Benjamin Girault <benjamin dot girault at gmail dot com> 0010 * 0011 * SPDX-License-Identifier: GPL-2.0-or-later 0012 * 0013 * ============================================================ */ 0014 0015 #ifndef DIGIKAM_PANO_PREVIEW_PAGE_H 0016 #define DIGIKAM_PANO_PREVIEW_PAGE_H 0017 0018 // Local includes 0019 0020 #include "dwizardpage.h" 0021 #include "panoactions.h" 0022 #include <QMutexLocker> 0023 #include <QMutex> 0024 0025 using namespace Digikam; 0026 0027 namespace DigikamGenericPanoramaPlugin 0028 { 0029 0030 class PanoManager; 0031 0032 class PanoPreviewPage : public DWizardPage 0033 { 0034 Q_OBJECT 0035 0036 public: 0037 0038 explicit PanoPreviewPage(PanoManager* const mngr, QWizard* const dlg); 0039 ~PanoPreviewPage() override; 0040 0041 private: 0042 0043 void computePreview(); 0044 void startStitching(); 0045 0046 void preInitializePage(); 0047 void initializePage() override; 0048 bool validatePage() override; 0049 void cleanupPage() override; 0050 0051 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) 0052 0053 void cleanupPage(QMutexLocker<QMutex>& lock); 0054 0055 #else 0056 0057 void cleanupPage(QMutexLocker& lock); 0058 0059 #endif 0060 0061 Q_SIGNALS: 0062 0063 void signalPreviewFinished(); 0064 void signalStitchingFinished(); 0065 0066 private Q_SLOTS: 0067 0068 void slotCancel(); 0069 void slotStartStitching(); 0070 void slotPanoAction(const DigikamGenericPanoramaPlugin::PanoActionData&); 0071 0072 private: 0073 0074 class Private; 0075 Private* const d; 0076 }; 0077 0078 } // namespace DigikamGenericPanoramaPlugin 0079 0080 #endif // DIGIKAM_PANO_PREVIEW_PAGE_H