#ifndef FIELDSTYLEFACTORY_H #define FIELDSTYLEFACTORY_H #include "FieldStyle.h" #include class FieldStyleFactory { public: static FieldStyleFactory* inst(); public: FieldStyleFactory(); const QStringList getStyleNames() const { return stylesNames; } const FieldStyle getStyle(const QString& aStyleName) const { return styles[aStyleName]; } FieldStyle* getStylePtr( const QString& aStyleName ) { return &( styles[aStyleName] ); } void setStyle(const QString& aStyleName, FieldStyle aStyle ); void load(); void save(); private: void initStyles(); void loadStyle(QSettings& settings, const QString& styleName); void loadStyleMainProperties(const QSettings& settings, FieldStyle& curStyle, const FieldStyle& defaultStyle); void loadKeywordStyle(const QSettings& settings, FieldStyle& curStyle, const FieldStyle& defaultStyle); void saveStyle(QSettings& settings, const QString& styleName); void saveStyleMainProperties(QSettings& settings, const FieldStyle& curStyle, const FieldStyle& defaultStyle); void saveKeywordStyle(QSettings& settings, const FieldStyle& curStyle, const FieldStyle& defaultStyle); public: static const QString DefaultStyle; public: QColor cardBgColor; private: QHash styles; QStringList stylesNames; // Keeps order of styles }; #endif