Warning, file /plasma/plasma-workspace/kcms/fonts/fontsaasettings.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2020 Benjamin Port <benjamin.port@enioka.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "fontsaasettingsbase.h"
0010 #include "kxftconfig.h"
0011 
0012 class FontAASettingsStore;
0013 
0014 class FontsAASettings : public FontsAASettingsBase
0015 {
0016     Q_OBJECT
0017 
0018     Q_PROPERTY(bool exclude READ exclude WRITE setExclude NOTIFY excludeChanged)
0019     Q_PROPERTY(int excludeFrom READ excludeFrom WRITE setExcludeFrom NOTIFY excludeFromChanged)
0020     Q_PROPERTY(int excludeTo READ excludeTo WRITE setExcludeTo NOTIFY excludeToChanged)
0021     Q_PROPERTY(bool antiAliasing READ antiAliasing WRITE setAntiAliasing NOTIFY antiAliasingChanged)
0022     Q_PROPERTY(int dpi READ dpi WRITE setDpi NOTIFY dpiChanged)
0023     Q_PROPERTY(KXftConfig::SubPixel::Type subPixel READ subPixel WRITE setSubPixel NOTIFY subPixelChanged)
0024     Q_PROPERTY(KXftConfig::Hint::Style hinting READ hinting WRITE setHinting NOTIFY hintingChanged)
0025     Q_PROPERTY(bool isAaImmutable READ isAaImmutable CONSTANT)
0026     Q_PROPERTY(bool excludeStateProxy READ excludeStateProxy NOTIFY excludeStateProxyChanged)
0027 
0028 public:
0029     FontsAASettings(QObject *parent = nullptr);
0030 
0031     bool exclude() const;
0032     int excludeFrom() const;
0033     int excludeTo() const;
0034     bool antiAliasing() const;
0035     int dpi() const;
0036     KXftConfig::SubPixel::Type subPixel() const;
0037     KXftConfig::Hint::Style hinting() const;
0038     bool isAaImmutable() const;
0039     bool excludeStateProxy() const;
0040 
0041     void setExclude(bool exclude);
0042     void setExcludeFrom(int excludeFrom);
0043     void setExcludeTo(int excludeTo);
0044     void setAntiAliasing(bool enabled);
0045     void setDpi(int dpi);
0046     void setSubPixel(KXftConfig::SubPixel::Type type);
0047     void setHinting(KXftConfig::Hint::Style hinting);
0048 
0049 Q_SIGNALS:
0050     void excludeChanged();
0051     void excludeFromChanged();
0052     void excludeToChanged();
0053     void antiAliasingChanged();
0054     void dpiChanged();
0055     void subPixelChanged();
0056     void hintingChanged();
0057     void aliasingChangeApplied();
0058     void excludeStateProxyChanged();
0059 
0060 private:
0061     FontAASettingsStore *m_fontAASettingsStore;
0062     bool m_isAaImmutable = false;
0063     bool usrSave() override;
0064 
0065     using NotifySignalType = void (FontsAASettings::*)();
0066     void addItemInternal(const QByteArray &propertyName, const QVariant &defaultValue, NotifySignalType notifySignal);
0067 };