You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.1 KiB
107 lines
3.1 KiB
/* |
|
* KCMStyle |
|
* Copyright (C) 2002 Karol Szwed <gallium@kde.org> |
|
* Copyright (C) 2002 Daniel Molkentin <molkentin@kde.org> |
|
* Copyright (C) 2007 Urs Wolfer <uwolfer @ kde.org> |
|
* Copyright (C) 2019 Kai Uwe Broulik <kde@broulik.de> |
|
* Copyright (C) 2019 Cyril Rossi <cyril.rossi@enioka.com> |
|
* |
|
* Portions Copyright (C) TrollTech AS. |
|
* |
|
* Based on kcmdisplay |
|
* Copyright (C) 1997-2002 kcmdisplay Authors. |
|
* (see Help -> About Style Settings) |
|
* |
|
* This program is free software; you can redistribute it and/or |
|
* modify it under the terms of the GNU General Public |
|
* License version 2 as published by the Free Software Foundation. |
|
* |
|
* This program is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
* General Public License for more details. |
|
* |
|
* You should have received a copy of the GNU General Public License |
|
* along with this program; see the file COPYING. If not, write to |
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
|
* Boston, MA 02110-1301, USA. |
|
*/ |
|
|
|
#ifndef KCMSTYLE_H |
|
#define KCMSTYLE_H |
|
|
|
#include <QPointer> |
|
|
|
#include <KQuickAddons/ManagedConfigModule> |
|
|
|
#include "gtkpage.h" |
|
|
|
class QQuickItem; |
|
|
|
class StyleSettings; |
|
class StyleData; |
|
class StylesModel; |
|
class StyleConfigDialog; |
|
|
|
class KCMStyle : public KQuickAddons::ManagedConfigModule |
|
{ |
|
Q_OBJECT |
|
|
|
Q_PROPERTY(GtkPage *gtkPage MEMBER m_gtkPage CONSTANT) |
|
Q_PROPERTY(StylesModel *model READ model CONSTANT) |
|
Q_PROPERTY(StyleSettings *styleSettings READ styleSettings CONSTANT) |
|
Q_PROPERTY(ToolBarStyle mainToolBarStyle READ mainToolBarStyle WRITE setMainToolBarStyle NOTIFY mainToolBarStyleChanged) |
|
Q_PROPERTY(ToolBarStyle otherToolBarStyle READ otherToolBarStyle WRITE setOtherToolBarStyle NOTIFY otherToolBarStyleChanged) |
|
|
|
public: |
|
KCMStyle(QObject *parent, const QVariantList &args); |
|
~KCMStyle() override; |
|
|
|
enum ToolBarStyle { |
|
NoText, |
|
TextOnly, |
|
TextBesideIcon, |
|
TextUnderIcon |
|
}; |
|
Q_ENUM(ToolBarStyle) |
|
|
|
StylesModel *model() const; |
|
|
|
StyleSettings *styleSettings() const; |
|
|
|
ToolBarStyle mainToolBarStyle() const; |
|
void setMainToolBarStyle(ToolBarStyle style); |
|
Q_SIGNAL void mainToolBarStyleChanged(); |
|
|
|
ToolBarStyle otherToolBarStyle() const; |
|
void setOtherToolBarStyle(ToolBarStyle style); |
|
Q_SIGNAL void otherToolBarStyleChanged(); |
|
|
|
Q_INVOKABLE void configure(const QString &title, const QString &styleName, QQuickItem *ctx = nullptr); |
|
Q_INVOKABLE bool gtkConfigKdedModuleLoaded(); |
|
|
|
void load() override; |
|
void save() override; |
|
void defaults() override; |
|
|
|
Q_SIGNALS: |
|
void showErrorMessage(const QString &message); |
|
void styleReconfigured(const QString &styleName); |
|
|
|
private: |
|
void loadSettingsToModel(); |
|
|
|
StyleData *m_data; |
|
StylesModel *m_model; |
|
|
|
QString m_previousStyle; |
|
bool m_effectsDirty = false; |
|
|
|
ToolBarStyle m_mainToolBarStyle = NoText; |
|
ToolBarStyle m_otherToolBarStyle = NoText; |
|
|
|
QPointer<StyleConfigDialog> m_styleConfigDialog; |
|
GtkPage *m_gtkPage; |
|
}; |
|
|
|
#endif // __KCMSTYLE_H
|
|
|