cutelyst 3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Cutelyst::CuteleeView Class Referencefinal

#include <cuteleeview.h>

Inheritance diagram for Cutelyst::CuteleeView:

Signals

void changed ()

Public Member Functions

 CuteleeView (QObject *parent=nullptr, const QString &name=QString())
 Constructs a CuteleeView object with the given parent and name.
void addTranslationCatalog (const QString &path, const QString &catalog)
void addTranslationCatalogs (const QMultiHash< QString, QString > &catalogs)
void addTranslator (const QLocale &locale, QTranslator *translator)
void addTranslator (const QString &locale, QTranslator *translator)
Cutelee::Engine * engine () const
QStringList includePaths () const
 Returns the list of include paths.
bool isCaching () const
 Returns true if caching is enabled.
QVector< QLocaleloadTranslationsFromDir (const QString &filename, const QString &directory, const QString &prefix=QStringLiteral("."), const QString &suffix=QStringLiteral(".qm"))
void preloadTemplates ()
QByteArray render (Context *c) const final
void setCache (bool enable)
 Sets if template caching should be done, this increases performance at the cost of higher memory usage.
void setIncludePaths (const QStringList &paths)
 Sets the list of include paths which will be looked for when resolving templates files.
void setTemplateExtension (const QString &extension)
 Sets the template extension, defaults to ".html".
void setWrapper (const QString &name)
 Sets the template wrapper name, the template will be rendered into content variable in which the wrapper template should render.
QString templateExtension () const
 Returns the template extension.
QString wrapper () const
 Returns the template wrapper.
Public Member Functions inherited from Cutelyst::View
 View (QObject *parent, const QString &name)
virtual Modifiers modifiers () const override
void setMinimalSizeToDeflate (qint32 minSize=-1)
Public Member Functions inherited from Cutelyst::Component
 Component (QObject *parent=nullptr)
bool execute (Context *c)
virtual bool init (Application *application, const QVariantHash &args)
QString name () const
QString reverse () const
void setName (const QString &name)
void setReverse (const QString &reverse)
Public Member Functions inherited from QObject
 QObject (QObject *parent)
bool blockSignals (bool block)
const QObjectListchildren () const const
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
void deleteLater ()
void destroyed (QObject *obj)
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
bool disconnect (const QObject *receiver, const char *method) const const
void dumpObjectInfo ()
void dumpObjectInfo () const const
void dumpObjectTree ()
void dumpObjectTree () const const
QList< QByteArraydynamicPropertyNames () const const
virtual bool event (QEvent *e)
virtual bool eventFilter (QObject *watched, QEvent *event)
findChild (const QString &name, Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
bool inherits (const char *className) const const
void installEventFilter (QObject *filterObj)
bool isWidgetType () const const
bool isWindowType () const const
void killTimer (int id)
virtual const QMetaObjectmetaObject () const const
void moveToThread (QThread *targetThread)
QString objectName () const const
void objectNameChanged (const QString &objectName, QPrivateSignal)
QObjectparent () const const
QVariant property (const char *name) const const
 Q_CLASSINFO (Name, Value)
 Q_DISABLE_COPY (Class)
 Q_DISABLE_COPY_MOVE (Class)
 Q_DISABLE_MOVE (Class)
 Q_EMIT Q_EMIT
 Q_ENUM (...)
 Q_ENUM_NS (...)
 Q_ENUMS (...)
 Q_FLAG (...)
 Q_FLAG_NS (...)
 Q_FLAGS (...)
 Q_GADGET Q_GADGET
 Q_INTERFACES (...)
 Q_INVOKABLE Q_INVOKABLE
 Q_NAMESPACE Q_NAMESPACE
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 Q_OBJECT Q_OBJECT
 Q_PROPERTY (...)
 Q_REVISION Q_REVISION
 Q_SET_OBJECT_NAME (Object)
 Q_SIGNAL Q_SIGNAL
 Q_SIGNALS Q_SIGNALS
 Q_SLOT Q_SLOT
 Q_SLOTS Q_SLOTS
qFindChild (const QObject *obj, const QString &name)
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
QList< T > qFindChildren (const QObject *obj, const QString &name)
qobject_cast (const QObject *object)
qobject_cast (QObject *object)
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
void removeEventFilter (QObject *obj)
void setObjectName (const QString &name)
void setParent (QObject *parent)
bool setProperty (const char *name, const QVariant &value)
bool signalsBlocked () const const
int startTimer (int interval, Qt::TimerType timerType)
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
QThreadthread () const const

Properties

bool cache
QStringList includePaths
QString templateExtension
QString wrapper
Properties inherited from QObject
 objectName

Additional Inherited Members

Public Types inherited from Cutelyst::Component
enum  Modifier {
  None , OnlyExecute , BeforeExecute , AroundExecute ,
  AfterExecute
}
Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
bool disconnect (const QMetaObject::Connection &connection)
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
QString tr (const char *sourceText, const char *disambiguation, int n)
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
Public Attributes inherited from QObject
typedef QObjectList
Protected Member Functions inherited from Cutelyst::View
 View (ViewPrivate *d, QObject *parent, const QString &name)
 A derived class using pimpl should call this constructor, to reduce the number of memory allocations.
Protected Member Functions inherited from Cutelyst::Component
 Component (ComponentPrivate *d, QObject *parent=nullptr)
 A derived class using pimpl should call this constructor, to reduce the number of memory allocations.
virtual bool afterExecute (Context *c)
void applyRoles (const QStack< Component * > &roles)
virtual bool aroundExecute (Context *c, QStack< Component * > stack)
virtual bool beforeExecute (Context *c)
virtual bool dispatcherReady (const Dispatcher *dispatch, Controller *controller)
Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
virtual void connectNotify (const QMetaMethod &signal)
virtual void customEvent (QEvent *event)
virtual void disconnectNotify (const QMetaMethod &signal)
bool isSignalConnected (const QMetaMethod &signal) const const
int receivers (const char *signal) const const
QObjectsender () const const
int senderSignalIndex () const const
virtual void timerEvent (QTimerEvent *event)

Detailed Description

CuteleeView is a Cutelyst::View handler that renders templates using Cutelee engine.

This View also exports a Cutelee tag for dealing with Cutelyst::Context::uriFor():

{% c_uri_for "/path" "arg1" "arg2" QUERY "foo=bar" c.req.queryParams %}

Where only the path is required, and QUERY keyword must preceed query parameters

Definition at line 35 of file cuteleeview.h.

Constructor & Destructor Documentation

◆ CuteleeView()

Member Function Documentation

◆ addTranslationCatalog()

void CuteleeView::addTranslationCatalog ( const QString & path,
const QString & catalog )

Dynamically adds translation catalog at path to the translator.

Translation catalogs can be used to dynamically integrate translations into the CuteleeView, for example for plugins and themes. The catalog could be the name of an extension for example that is loaded from a locale specifc directory under path.

The catalog will be loaded in the following way: /path/locale/catalog, for example /usr/share/mycutelystapp/l10n/de_DE/fancytheme.qm. The current locale is defined by Context::locale() when rendering the theme. The path /usr/share/myapp/l10n would then contain locale specific subdirectories like de_DE, pt_BR, etc. that contain the translation files named by catalog.

Usage example:
bool MyCutelystApp::init()
{
// ...
auto view = new CuteleeView(this);
view->addTranslationCatalog(QStringLiteral("/usr/share/mycutelystapp/l10n"),
QStringLiteral("fancytheme"));
// ...
}
CuteleeView(QObject *parent=nullptr, const QString &name=QString())
Constructs a CuteleeView object with the given parent and name.
Since
Cutelyst 1.5.0

Definition at line 261 of file cuteleeview.cpp.

References CuteleeView(), and QString::isEmpty().

◆ addTranslationCatalogs()

void CuteleeView::addTranslationCatalogs ( const QMultiHash< QString, QString > & catalogs)

Adds a dictionary of translation catalogs and paths to the translator.

The key of the QHash is the name of the catalog, the value is the path. See addTranslationCatalog() for more information about translation catalogs.

Since
Cutelyst 1.5.0

Definition at line 269 of file cuteleeview.cpp.

References CuteleeView(), and QHash::empty().

◆ addTranslator() [1/2]

void CuteleeView::addTranslator ( const QLocale & locale,
QTranslator * translator )

Adds a translator for the specified locale to the list of translators.

Example usage
bool MyCutelystApp::init()
{
// ...
auto view = new CuteleeView(this);
auto deDeTrans = new QTranslator(this);
if (deDeTrans->load(QStringLiteral("de_DE"), QStringLiteral("/path/to/my/translations"))
{ view->addTranslator(QLocale("de_DE"), deDeTrans);
}
auto ptBrTrans = new QTranslator(this);
if (ptBrTrans->load(QStringLiteral("pt_BR"), QStringLiteral("/path/to/my/translations"))
{ view->addTranslator(QLocale("pt_BR"), ptBrTrans);
}
// ...
}
See also
loadTranslationsFromDir()
Since
Cutelyst 1.5.0

Definition at line 249 of file cuteleeview.cpp.

References CuteleeView().

Referenced by addTranslator(), and loadTranslationsFromDir().

◆ addTranslator() [2/2]

void CuteleeView::addTranslator ( const QString & locale,
QTranslator * translator )

Adds a translator for the specified locale to the list of translators.

The locale string should be parseable by QLocale.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
loadTranslationsFromDir()
Since
Cutelyst 1.4.0

Definition at line 256 of file cuteleeview.cpp.

References addTranslator().

◆ engine()

Cutelee::Engine * CuteleeView::engine ( ) const

Returns the Cutelee::Engine pointer that is used by this engine.

Definition at line 127 of file cuteleeview.cpp.

References CuteleeView().

◆ includePaths()

QStringList CuteleeView::includePaths ( ) const

Definition at line 65 of file cuteleeview.cpp.

References CuteleeView().

◆ isCaching()

bool CuteleeView::isCaching ( ) const

Definition at line 161 of file cuteleeview.cpp.

References CuteleeView().

Referenced by preloadTemplates().

◆ loadTranslationsFromDir()

QVector< QLocale > CuteleeView::loadTranslationsFromDir ( const QString & filename,
const QString & directory,
const QString & prefix = QStringLiteral("."),
const QString & suffix = QStringLiteral(".qm") )

Loads translations for a specific filename from a single directory and returns a list of added locales.

This can be used to load translations for a template if the translation file names follow a common schema. Let us assume you organised your translation files as follows:

  • /usr/share/myapp/translations/mytemplate_de.qm
  • /usr/share/myapp/translations/mytemplate_pt_BR.qm
  • ...

You can then use loadTranslationsFromDir() on your registered CuteleeView object as follows:

bool MyApp::init()
{
auto view = new CuteleeView(this);
view->loadTranslationsFromDir(QStringLiteral("mytemplate"),
QStringLiteral("/usr/share/myapp/translations"), QStringLiteral("_"));
}

prefix is the part between the file name and the locale part. In the example above it is "_", if it is not set the default "." will be used. The suffix is the file name suffix that defaults to ".qm".

See also
addTranslator(), loadTranslationsFromDir()
Since
Cuteylst 2.1.0

Definition at line 276 of file cuteleeview.cpp.

References addTranslator(), QVector::append(), QLocale::C, QDir::entryInfoList(), QDir::exists(), QDir::Files, QString::indexOf(), QString::isEmpty(), QLocale::language(), QString::length(), QString::mid(), QVector::reserve(), and QVector::squeeze().

◆ preloadTemplates()

void CuteleeView::preloadTemplates ( )

When called cache is set to true and templates are loaded.

Definition at line 133 of file cuteleeview.cpp.

References CuteleeView(), QDir::Files, isCaching(), QDir::NoDotAndDotDot, QString::remove(), setCache(), QString::startsWith(), and QDirIterator::Subdirectories.

◆ render()

QByteArray CuteleeView::render ( Context * c) const
finalvirtual

All subclasses must reimplement this when doing it's rendering. If an error (c->error()) is not set c->response()->body() is defined with the returned value, this is useful if the view is not meant to be used as a body.

Implements Cutelyst::View.

Definition at line 167 of file cuteleeview.cpp.

References CuteleeView(), Cutelyst::Context::error(), QVariant::fromValue(), QString::isEmpty(), Cutelyst::Context::locale(), QString::remove(), Cutelyst::Context::res(), Cutelyst::Component::reverse(), Cutelyst::Response::setBody(), Cutelyst::Context::setStash(), QString::startsWith(), Cutelyst::Context::stash(), QString::toUtf8(), and Cutelyst::Context::translate().

◆ setCache()

void CuteleeView::setCache ( bool enable)

Definition at line 105 of file cuteleeview.cpp.

References CuteleeView(), and QObject::Q_EMIT().

Referenced by preloadTemplates().

◆ setIncludePaths()

void CuteleeView::setIncludePaths ( const QStringList & paths)

Definition at line 71 of file cuteleeview.cpp.

References CuteleeView(), and QObject::Q_EMIT().

Referenced by CuteleeView().

◆ setTemplateExtension()

void CuteleeView::setTemplateExtension ( const QString & extension)

Definition at line 85 of file cuteleeview.cpp.

References CuteleeView(), and QObject::Q_EMIT().

◆ setWrapper()

void CuteleeView::setWrapper ( const QString & name)

Definition at line 98 of file cuteleeview.cpp.

References CuteleeView(), Cutelyst::Component::name(), and QObject::Q_EMIT().

◆ templateExtension()

QString CuteleeView::templateExtension ( ) const

Definition at line 79 of file cuteleeview.cpp.

References CuteleeView().

◆ wrapper()

QString CuteleeView::wrapper ( ) const

Definition at line 92 of file cuteleeview.cpp.

References CuteleeView().

Property Documentation

◆ cache

bool Cutelyst::CuteleeView::cache
readwrite

Definition at line 80 of file cuteleeview.h.

◆ includePaths

QStringList Cutelyst::CuteleeView::includePaths
readwrite

Definition at line 45 of file cuteleeview.h.

◆ templateExtension

QString Cutelyst::CuteleeView::templateExtension
readwrite

Definition at line 56 of file cuteleeview.h.

◆ wrapper

QString Cutelyst::CuteleeView::wrapper
readwrite

Definition at line 67 of file cuteleeview.h.