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
Referenced by Context(), operator=(), and renderContext().
|
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.
void Grantlee::Context::insert | ( | const QString & | name, |
const QVariant & | variant ) |
Insert the context object variant
identified by name
into the Context.
void Grantlee::Context::insert | ( | const QString & | name, |
QObject * | object ) |
Insert the context object object
identified by name
into the Context.
QSharedPointer< AbstractLocalizer > Grantlee::Context::localizer | ( | ) | const |
Returns the localizer currently in use.
Referenced by setLocalizer().
QVariant Grantlee::Context::lookup | ( | const QString & | str | ) | const |
Returns the context object identified by the key str
Assignmant operator
References Context().
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.
References Context().
void Grantlee::Context::setLocalizer | ( | QSharedPointer< AbstractLocalizer > | localizer | ) |
Sets the localizer
to be used.
The Context takes ownerwhip of the localizer.
References localizer().
void Grantlee::Context::setRelativeMediaPath | ( | const QString & | relativePath | ) |
Sets the relative path to external media to be used in templates to relativePath
void Grantlee::Context::setUrlType | ( | UrlType | type | ) |
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.