File indexing completed on 2025-01-05 03:57:56

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2005-04-02
0007  * Description : showFoto setup dialog.
0008  *
0009  * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0010  *
0011  * SPDX-License-Identifier: GPL-2.0-or-later
0012  *
0013  * ============================================================ */
0014 
0015 #ifndef SHOW_FOTO_SETUP_H
0016 #define SHOW_FOTO_SETUP_H
0017 
0018 // Local includes
0019 
0020 #include "digikam_config.h"
0021 #include "dconfigdlg.h"
0022 
0023 using namespace Digikam;
0024 
0025 namespace ShowFoto
0026 {
0027 
0028 class ShowfotoSetup : public DConfigDlg
0029 {
0030     Q_OBJECT
0031 
0032 public:
0033 
0034     enum Page
0035     {
0036         LastPageUsed        = -1,
0037 
0038         EditorPage          = 0,
0039         MetadataPage,
0040         ToolTipPage,
0041         RawPage,
0042         IOFilesPage,
0043         ICCPage,
0044 
0045 #ifdef HAVE_GEOLOCATION
0046 
0047         GeolocationPage,
0048 
0049 #endif
0050 
0051         PluginsPage,
0052         MiscellaneousPage,
0053 
0054         SetupPageEnumLast
0055     };
0056 
0057 public:
0058 
0059     explicit ShowfotoSetup(QWidget* const parent = nullptr, Page page = LastPageUsed);
0060     ~ShowfotoSetup() override;
0061 
0062     static bool execMetadataFilters(QWidget* const parent, int tab);
0063     static bool execExifTool(QWidget* const parent);
0064 
0065     static bool execLocalize(QWidget* const parent);
0066 
0067     /**
0068      * Show a setup dialog. Only the specified page will be available.
0069      */
0070     static bool execSinglePage(Page page);
0071     static bool execSinglePage(QWidget* const parent, Page page);
0072 
0073 #ifdef HAVE_GEOLOCATION
0074 
0075     static bool execGeolocation(QWidget* const parent, int tab);
0076 
0077 #endif
0078 
0079     static void onlineVersionCheck();
0080 
0081 private Q_SLOTS:
0082 
0083     void slotOkClicked();
0084     void slotCancelClicked();
0085     void slotHelp();
0086 
0087 private:
0088 
0089     ShowfotoSetup::Page activePageIndex();
0090     void showPage(ShowfotoSetup::Page page);
0091 
0092 private:
0093 
0094     class Private;
0095     Private* const d;
0096 };
0097 
0098 } // namespace ShowFoto
0099 
0100 #endif // SHOW_FOTO_SETUP_H