File indexing completed on 2024-05-19 05:38:06
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 };