File indexing completed on 2024-12-15 04:54:44

0001 /******************************************************************************
0002  *
0003  *  SPDX-FileCopyrightText: 2008 Szymon Tomasz Stefanek <pragma@kvirc.net>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  *
0007  *******************************************************************************/
0008 
0009 #pragma once
0010 
0011 #include "utils/configurethemesdialog.h"
0012 class QListWidgetItem;
0013 namespace MessageList
0014 {
0015 namespace Core
0016 {
0017 class Theme;
0018 }
0019 namespace Utils
0020 {
0021 class ThemeEditor;
0022 class ThemeListWidget;
0023 class ThemeListWidgetItem;
0024 
0025 class Q_DECL_HIDDEN ConfigureThemesDialog::ConfigureThemesDialogPrivate
0026 {
0027 public:
0028     ConfigureThemesDialogPrivate(ConfigureThemesDialog *owner)
0029         : q(owner)
0030     {
0031     }
0032 
0033     void fillThemeList();
0034     [[nodiscard]] QString uniqueNameForTheme(const QString &baseName, Core::Theme *skipTheme = nullptr);
0035     ThemeListWidgetItem *findThemeItemByName(const QString &name, Core::Theme *skipTheme = nullptr);
0036     ThemeListWidgetItem *findThemeItemByTheme(Core::Theme *set);
0037     ThemeListWidgetItem *findThemeItemById(const QString &themeId);
0038     void commitEditor();
0039 
0040     void themeListItemClicked(QListWidgetItem *);
0041     void newThemeButtonClicked();
0042     void cloneThemeButtonClicked();
0043     void deleteThemeButtonClicked();
0044     void editedThemeNameChanged();
0045     void okButtonClicked();
0046     void exportThemeButtonClicked();
0047     void importThemeButtonClicked();
0048 
0049     ConfigureThemesDialog *const q;
0050 
0051     ThemeListWidget *mThemeList = nullptr;
0052     ThemeEditor *mEditor = nullptr;
0053     QPushButton *mNewThemeButton = nullptr;
0054     QPushButton *mCloneThemeButton = nullptr;
0055     QPushButton *mDeleteThemeButton = nullptr;
0056     QPushButton *mExportThemeButton = nullptr;
0057     QPushButton *mImportThemeButton = nullptr;
0058 };
0059 } // namespace Utils
0060 } // namespace MessageList