KTextTemplate::TemplateImpl Class

class KTextTemplate::TemplateImpl

The Template class is a tree of nodes which may be rendered. More...

Header: #include <KTextTemplate/Template>
CMake: find_package(KF6 REQUIRED COMPONENTS TextTemplate)
target_link_libraries(mytarget PRIVATE KF6::TextTemplate)

Public Functions

const KTextTemplate::Engine *engine() const
KTextTemplate::Error error() const
QString errorString() const
QString render(KTextTemplate::Context *c) const
KTextTemplate::OutputStream *render(KTextTemplate::OutputStream *stream, KTextTemplate::Context *c) const

Detailed Description

All Templates are created through the KTextTemplate::Engine class. A Template is created by parsing some text markup passed into the Engine, or by reading it from a file.

Note that Template is actually a typedef for a QSharedPointer<TemplateImpl>; so all of its members should be accessed with operator->().

The result of parsing is a Template object which can be rendered multiple times with multiple different Contexts.

 auto engine = getEngine();
 auto t = engine->newTemplate(
     "{{ name }} is aged {{ age }}",
     "simple template" );
 if ( t->error() )
 {
   // Tokenizing or parsing error, or couldn't find custom tags or filters.
   qDebug() << t->errorString();
   return;
 }
 QTextStream textStream( stdout );
 OutputStream stream( textStream );

 for ( ... )
 {
   Context c;
   // ... c.insert
   t->render( stream, c );

   if (t->error())
   {
     // Rendering error.
     qDebug() << t->errorString();
   }
 }

If there is an error in parsing or rendering, the error and errorString methods can be used to check the source of the error.

Member Function Documentation

const KTextTemplate::Engine *TemplateImpl::engine() const

Returns the Engine that created this Template.

KTextTemplate::Error TemplateImpl::error() const

Returns an error code for the error encountered.

QString TemplateImpl::errorString() const

Returns more information to developers in the form of a string.

QString TemplateImpl::render(KTextTemplate::Context *c) const

Renders the Template to a string given the Context c.

KTextTemplate::OutputStream *TemplateImpl::render(KTextTemplate::OutputStream *stream, KTextTemplate::Context *c) const

Renders the Template to the OutputStream stream given the Context c.

Related Non-Members

Template