File indexing completed on 2024-04-21 03:42:36
0001 /* 0002 This file is a part of digiKam project 0003 https://www.digikam.org 0004 0005 SPDX-FileCopyrightText: 2006-2018 Gilles Caulier <caulier dot gilles at gmail dot com> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <ksharedconfig.h> 0013 0014 #include <QObject> 0015 #include <QPixmap> 0016 #include <QString> 0017 #include <QListWidget> 0018 0019 class QMenu; 0020 class KXmlGuiWindow; 0021 0022 namespace KSTheme 0023 { 0024 0025 class Manager : public QObject 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 0031 typedef enum { BREEZE_THEME, BREEZE_DARK_THEME } IconTheme; 0032 0033 ~Manager(); 0034 static Manager* instance(); 0035 0036 QString currentThemeName() const; 0037 void setCurrentTheme(const QString& name); 0038 0039 QString defaultThemeName() const; 0040 0041 void setThemeMenuAction(QMenu* const action); 0042 void registerThemeActions(KXmlGuiWindow * const win); 0043 void populateThemeQListWidget(QListWidget *themeWidget); 0044 0045 void setIconTheme(IconTheme theme); 0046 0047 signals: 0048 0049 void signalThemeChanged(); 0050 0051 private Q_SLOTS: 0052 0053 void slotChangePalette(); 0054 void slotSettingsChanged(); 0055 0056 private: 0057 0058 Manager(); 0059 0060 void populateThemeMenu(); 0061 QPixmap createSchemePreviewIcon(const KSharedConfigPtr& config) const; 0062 QString currentDesktopdefaultTheme() const; 0063 void updateCurrentDesktopDefaultThemePreview(); 0064 0065 private: 0066 0067 friend class ThemeManagerCreator; 0068 0069 class Private; 0070 Private* const d; 0071 }; 0072 0073 }