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)
Inherits: QObject

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