aboutsummaryrefslogtreecommitdiff
path: root/src/corelib/theme/mdefaultfonts.cpp
blob: e01d9e8b140633963ef2e361494b60b649db6221 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/***************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (directui@nokia.com)
**
** This file is part of libmeegotouch.
**
** If you have questions regarding the use of this file, please contact
** Nokia at directui@nokia.com.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation
** and appearing in the file LICENSE.LGPL included in the packaging
** of this file.
**
****************************************************************************/

#include "mdefaultfonts.h"
#include "mdefaultfonts_p.h"
#include "mlogicalvalues.h"

MDefaultFontsPrivate::MDefaultFontsPrivate(const MLogicalValues &values) : values(values), refresh(true)
{
}

void MDefaultFontsPrivate::reloadAllValues() const
{
    const QByteArray FONT_GROUP_NAME = "Fonts";

    extraSmallFont = values.font(FONT_GROUP_NAME, "FONT_XSMALL");
    smallFont = values.font(FONT_GROUP_NAME, "FONT_SMALL");
    defaultFont = values.font(FONT_GROUP_NAME, "FONT_DEFAULT");
    largeFont = values.font(FONT_GROUP_NAME, "FONT_LARGE");
    extraLargeFont = values.font(FONT_GROUP_NAME, "FONT_XLARGE");
    refresh = false;
}

MDefaultFonts::MDefaultFonts(const MLogicalValues &values) :
    d_ptr(new MDefaultFontsPrivate(values))
{
}

MDefaultFonts::~MDefaultFonts()
{
    delete d_ptr;
}

void MDefaultFonts::refresh()
{
    // TODO: Fix cyclic dependency between theming/styling & MdeviceProfile (MDeviceProfileStyle)
    // We can't load values directly because we need MDeviceProfile for dpi conversions but it may not exist yet.
    Q_D(MDefaultFonts);
    d->refresh = true;
}

const QFont &MDefaultFonts::extraSmallFont() const
{
    Q_D(const MDefaultFonts);
    if (d->refresh)
        d->reloadAllValues();
    return d->extraSmallFont;
}

const QFont &MDefaultFonts::smallFont() const
{
    Q_D(const MDefaultFonts);
    if (d->refresh)
        d->reloadAllValues();
    return d->smallFont;
}

const QFont &MDefaultFonts::defaultFont() const
{
    Q_D(const MDefaultFonts);
    if (d->refresh)
        d->reloadAllValues();
    return d->defaultFont;
}

const QFont &MDefaultFonts::largeFont() const
{
    Q_D(const MDefaultFonts);
    if (d->refresh)
        d->reloadAllValues();
    return d->largeFont;
}

const QFont &MDefaultFonts::extraLargeFont() const
{
    Q_D(const MDefaultFonts);
    if (d->refresh)
        d->reloadAllValues();
    return d->extraLargeFont;
}