Cutelee
6.1.0
templates
lib
rendercontext.cpp
1
/*
2
This file is part of the Cutelee template system.
3
4
Copyright (c) 2010 Stephen Kelly <steveire@gmail.com>
5
6
This library is free software; you can redistribute it and/or
7
modify it under the terms of the GNU Lesser General Public
8
License as published by the Free Software Foundation; either version
9
2.1 of the Licence, or (at your option) any later version.
10
11
This library is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
Lesser General Public License for more details.
15
16
You should have received a copy of the GNU Lesser General Public
17
License along with this library. If not, see <http://www.gnu.org/licenses/>.
18
19
*/
20
21
#include "rendercontext.h"
22
23
#include "node.h"
24
25
using namespace
Cutelee
;
26
27
namespace
Cutelee
28
{
29
30
class
RenderContextPrivate
31
{
32
RenderContextPrivate
(
RenderContext
*qq) : q_ptr(qq) {}
33
34
Q_DECLARE_PUBLIC(
RenderContext
)
35
RenderContext
*
const
q_ptr;
36
37
QList<QHash<const Node *, QVariant>> m_variantHashStack;
38
};
39
}
40
41
RenderContext::RenderContext() : d_ptr(new
RenderContextPrivate
(this)) {}
42
43
RenderContext::~RenderContext
() {
delete
d_ptr; }
44
45
void
RenderContext::push()
46
{
47
Q_D(
RenderContext
);
48
d->m_variantHashStack.prepend({});
49
}
50
51
bool
RenderContext::contains
(
Node
*
const
scopeNode)
const
52
{
53
Q_D(
const
RenderContext
);
54
Q_ASSERT(!d->m_variantHashStack.isEmpty());
55
return
d->m_variantHashStack.last().contains(scopeNode);
56
}
57
58
QVariant
&
RenderContext::data
(
const
Node
*
const
scopeNode)
59
{
60
Q_D(
RenderContext
);
61
Q_ASSERT(!d->m_variantHashStack.isEmpty());
62
return
d->m_variantHashStack.last()[scopeNode];
63
}
64
65
void
RenderContext::pop()
66
{
67
Q_D(
RenderContext
);
68
d->m_variantHashStack.removeFirst();
69
}
Cutelee::Node
Base class for all nodes.
Definition:
node.h:78
Cutelee::RenderContextPrivate
Definition:
rendercontext.cpp:31
Cutelee::RenderContext
Provides storage facility for state while rendering a template.
Definition:
rendercontext.h:47
Cutelee::RenderContext::contains
bool contains(Node *const scopeNode) const
Definition:
rendercontext.cpp:51
Cutelee::RenderContext::~RenderContext
~RenderContext()
Definition:
rendercontext.cpp:43
Cutelee::RenderContext::data
QVariant & data(const Node *const scopeNode)
Definition:
rendercontext.cpp:58
QVariant
Definition:
operatorcasttests.cpp:31
Cutelee
The Cutelee namespace holds all public Cutelee API.
Definition:
Mainpage.dox:8
Generated by
1.9.1