#pragma once /* * SPDX-FileCopyrightText: 2003-2009 Craig Drummond * SPDX-License-Identifier: GPL-2.0-or-later */ #include "Style.h" #include "kfontinst_export.h" #include #include #include class QDomElement; class QTextStream; namespace KFI { class KFONTINST_EXPORT Family { public: Family(const QString &n = QString()) : m_name(n) { } Family(const QDomElement &elem, bool loadStyles); bool operator==(const Family &o) const { return m_name == o.m_name; } void toXml(bool disabled, QTextStream &s) const; StyleCont::ConstIterator add(const Style &s) const { return m_styles.insert(s); } void remove(const Style &s) const { m_styles.remove(s); } void setStyles(const StyleCont &s) const { m_styles = s; } const QString &name() const { return m_name; } const StyleCont styles() const { return m_styles; } private: QString m_name; mutable StyleCont m_styles; }; typedef QSet FamilyCont; struct KFONTINST_EXPORT Families { Families(const Family &f, bool sys) : isSystem(sys) { items.insert(f); } Families(bool sys = false) : isSystem(sys) { } bool isSystem; FamilyCont items; }; inline KFONTINST_EXPORT uint qHash(const Family &key) { return qHash(key.name()); } } KFONTINST_EXPORT QDBusArgument &operator<<(QDBusArgument &argument, const KFI::Family &obj); KFONTINST_EXPORT const QDBusArgument &operator>>(const QDBusArgument &argument, KFI::Family &obj); KFONTINST_EXPORT QDBusArgument &operator<<(QDBusArgument &argument, const KFI::Families &obj); KFONTINST_EXPORT const QDBusArgument &operator>>(const QDBusArgument &argument, KFI::Families &obj);