File indexing completed on 2024-04-28 04:21:19
0001 // SPDX-FileCopyrightText: 2003-2020 The KPhotoAlbum Development Team 0002 // SPDX-FileCopyrightText: 2022 Johannes Zarl-Zierl <johannes@zarl-zierl.at> 0003 // 0004 // SPDX-License-Identifier: GPL-2.0-or-later 0005 0006 #ifndef SETTINGSDIALOG_H 0007 #define SETTINGSDIALOG_H 0008 0009 // KDE includes 0010 #include <KPageDialog> 0011 0012 namespace Exif 0013 { 0014 class TreeView; 0015 } 0016 0017 namespace Settings 0018 { 0019 class ViewerSizeConfig; 0020 class CategoryItem; 0021 class CategoryPage; 0022 class TagGroupsPage; 0023 class GeneralPage; 0024 class ThumbnailsPage; 0025 class ViewerPage; 0026 class FileVersionDetectionPage; 0027 class PluginsPage; 0028 class ExifPage; 0029 class DatabaseBackendPage; 0030 class BirthdayPage; 0031 0032 /** 0033 * @brief The SettingsPage enum has a value for every settings sub-page. 0034 * It is used for SettingsDialog::setPage(). 0035 */ 0036 enum class SettingsPage { 0037 BirthdayPage, 0038 CategoryPage, 0039 DatabaseBackendPage, 0040 ExifPage, 0041 FileVersionDetectionPage, 0042 GeneralPage, 0043 PluginsPage, 0044 TagGroupsPage, 0045 ThumbnailsPage, 0046 ViewerPage 0047 }; 0048 0049 class SettingsDialog : public KPageDialog 0050 { 0051 Q_OBJECT 0052 0053 public: 0054 explicit SettingsDialog(QWidget *parent); 0055 virtual void show(); 0056 0057 public Q_SLOTS: 0058 void activatePage(SettingsPage pageId); 0059 0060 Q_SIGNALS: 0061 void changed(); 0062 void thumbnailSizeChanged(); 0063 0064 protected Q_SLOTS: 0065 void slotMyOK(); 0066 0067 private: 0068 Settings::GeneralPage *m_generalPage; 0069 Settings::FileVersionDetectionPage *m_fileVersionDetectionPage; 0070 Settings::ThumbnailsPage *m_thumbnailsPage; 0071 Settings::CategoryPage *m_categoryPage; 0072 Settings::TagGroupsPage *m_tagGroupsPage; 0073 Settings::ViewerPage *m_viewerPage; 0074 Settings::ExifPage *m_exifPage; 0075 Settings::DatabaseBackendPage *m_databaseBackendPage; 0076 Settings::BirthdayPage *m_birthdayPage; 0077 QMap<SettingsPage, KPageWidgetItem *> m_pages; 0078 0079 void keyPressEvent(QKeyEvent *) override; 0080 }; 0081 } 0082 0083 #endif /* SETTINGSDIALOG_H */ 0084 0085 // vi:expandtab:tabstop=4 shiftwidth=4: