summaryrefslogtreecommitdiff
path: root/src/field-styles/FieldStyleFactory.h
blob: 072bdd589ae5e38c80b8bfd57d750e275a20aa59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef FIELDSTYLEFACTORY_H
#define FIELDSTYLEFACTORY_H

#include "FieldStyle.h"

#include <QtCore>

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<QString, FieldStyle> styles;
    QStringList stylesNames;  // Keeps order of styles
};

#endif