Grantlee 5.3.0
|
The Context class holds the context to render a Template with. More...
#include <grantlee/context.h>
Public Types | |
enum | UrlType { AbsoluteUrls , RelativeUrls } |
Public Member Functions | |
Context () | |
Context (const Context &other) | |
Context (const QVariantHash &hash) | |
~Context () | |
QList< QPair< QString, QString > > | externalMedia () const |
void | insert (const QString &name, const QVariant &variant) |
void | insert (const QString &name, QObject *object) |
QSharedPointer< AbstractLocalizer > | localizer () const |
QVariant | lookup (const QString &str) const |
Context & | operator= (const Context &other) |
void | pop () |
void | push () |
QString | relativeMediaPath () const |
RenderContext * | renderContext () const |
void | setLocalizer (QSharedPointer< AbstractLocalizer > localizer) |
void | setRelativeMediaPath (const QString &relativePath) |
void | setUrlType (UrlType type) |
UrlType | urlType () const |
For application developers, using the Context class is a matter of inserting keys and values as appropriate for rendering a Template using the insert method.
Note that one Template may be rendered multiple times with different contexts. Note also that any QVariant may be inserted into a Context object. Most commonly, QObjects will be used here.
For template tag developers, some other Context API is relevant.
It is possible to push and pop layers of context while a template is being rendered. This is useful if your template tag makes additional variables temporarily available in a part of a template. Template tags should only modify layers of context that they push themselves, and should pop any layers created before finishing its rendering step.
See for example the {% with %}
tag. In a template such as
In this case, lowerName is available in the context only between the {% with %}
and {% endwith %}
tags. The implementation of the {% with %}
tag render method is:
Note that a Context may temporarily override a variable in a parent context. This is why it is important to push a new context when adding items to context and pop it when finished.
Grantlee::Context::Context | ( | ) |
Creates an empty context
|
explicit |
Sets every key in the hash as a property name with the variant as the value.
Grantlee::Context::~Context | ( | ) |
Destructor
QList< QPair< QString, QString > > Grantlee::Context::externalMedia | ( | ) | const |
Returns the external media encountered in the Template while rendering.
Insert the context object variant
identified by name
into the Context.
Insert the context object object
identified by name
into the Context.
QSharedPointer< AbstractLocalizer > Grantlee::Context::localizer | ( | ) | const |
Returns the localizer currently in use.
Returns the context object identified by the key str
void Grantlee::Context::pop | ( | ) |
Pops the context.
void Grantlee::Context::push | ( | ) |
Pushes a new context.
QString Grantlee::Context::relativeMediaPath | ( | ) | const |
The relative path to external media to be used in templates.
RenderContext * Grantlee::Context::renderContext | ( | ) | const |
Returns a modifiable RenderContext. This may be used to make Template rendering threadsafe so that render state does not need to be stored in the Node implementation itself.
void Grantlee::Context::setLocalizer | ( | QSharedPointer< AbstractLocalizer > | localizer | ) |
Sets the localizer
to be used.
The Context takes ownerwhip of the localizer.
Sets the relative path to external media to be used in templates to relativePath
Sets the type of external media URL to be used in the template to type
.
UrlType Grantlee::Context::urlType | ( | ) | const |
The type of URL used in the template.