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  * Acknowledge : based on the expoblending tool
0009  *
0010  * SPDX-FileCopyrightText: 2011-2016 by Benjamin Girault <benjamin dot girault at gmail dot com>
0011  * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0012  *
0013  * SPDX-License-Identifier: GPL-2.0-or-later
0014  *
0015  * ============================================================ */
0016 
0017 #include "panowizard.h"
0018 
0019 // KDE includes
0020 
0021 #include <klocalizedstring.h>
0022 
0023 // Local includes
0024 
0025 #include "panomanager.h"
0026 #include "panointropage.h"
0027 #include "panoitemspage.h"
0028 #include "panopreprocesspage.h"
0029 #include "panooptimizepage.h"
0030 #include "panopreviewpage.h"
0031 #include "panolastpage.h"
0032 #include "dxmlguiwindow.h"
0033 
0034 namespace DigikamGenericPanoramaPlugin
0035 {
0036 
0037 class Q_DECL_HIDDEN PanoWizard::Private
0038 {
0039 public:
0040 
0041     explicit Private()
0042       : mngr             (nullptr),
0043         introPage        (nullptr),
0044         itemsPage        (nullptr),
0045         preProcessingPage(nullptr),
0046         optimizePage     (nullptr),
0047         previewPage      (nullptr),
0048         lastPage         (nullptr)
0049     {
0050     }
0051 
0052     PanoManager*           mngr;
0053     PanoIntroPage*         introPage;
0054     PanoItemsPage*         itemsPage;
0055     PanoPreProcessPage*    preProcessingPage;
0056     PanoOptimizePage*      optimizePage;
0057     PanoPreviewPage*       previewPage;
0058     PanoLastPage*          lastPage;
0059 };
0060 
0061 PanoWizard::PanoWizard(PanoManager* const mngr, QWidget* const parent)
0062     : DWizardDlg(parent, QLatin1String("Panorama Dialog")),
0063       d(new Private)
0064 {
0065     setModal(false);
0066     setWindowTitle(i18nc("@title:window", "Panorama Creator Wizard"));
0067 
0068     d->mngr              = mngr;
0069     d->introPage         = new PanoIntroPage(d->mngr,      this);
0070     d->itemsPage         = new PanoItemsPage(d->mngr,      this);
0071     d->preProcessingPage = new PanoPreProcessPage(d->mngr, this);
0072     d->optimizePage      = new PanoOptimizePage(d->mngr,   this);
0073     d->previewPage       = new PanoPreviewPage(d->mngr,    this);
0074     d->lastPage          = new PanoLastPage(d->mngr,       this);
0075 
0076     // ---------------------------------------------------------------
0077 
0078     connect(d->preProcessingPage, SIGNAL(signalPreProcessed()),
0079             this, SLOT(next()));
0080 
0081     connect(d->optimizePage, SIGNAL(signalOptimized()),
0082             this, SLOT(next()));
0083 
0084     connect(d->previewPage, SIGNAL(signalStitchingFinished()),
0085             this, SLOT(next()));
0086 
0087     connect(d->lastPage, SIGNAL(signalCopyFinished()),
0088             this, SLOT(accept()));
0089 }
0090 
0091 PanoWizard::~PanoWizard()
0092 {
0093     delete d;
0094 }
0095 
0096 } // namespace DigikamGenericPanoramaPlugin
0097 
0098 #include "moc_panowizard.cpp"