5 #ifndef CUTELYST_CONTEXT_H
6 #define CUTELYST_CONTEXT_H
8 #include <QtCore/QObject>
9 #include <QtCore/QVariant>
10 #include <QtCore/QUrl>
11 #include <QtCore/QStringList>
12 #include <QtCore/QStack>
14 #include <Cutelyst/async.h>
15 #include <Cutelyst/request.h>
16 #include <Cutelyst/cutelyst_global.h>
38 class CUTELYST_LIBRARY
Context :
public QObject
41 Q_PROPERTY(
Action* action READ action CONSTANT)
42 Q_PROPERTY(QString actionName READ actionName CONSTANT)
43 Q_PROPERTY(QString ns READ ns CONSTANT)
44 Q_PROPERTY(QString
namespace READ ns CONSTANT)
45 Q_PROPERTY(
Request *req READ request CONSTANT)
46 Q_PROPERTY(
Request *request READ request CONSTANT)
47 Q_PROPERTY(
Controller *controller READ controller CONSTANT)
48 Q_PROPERTY(QString controllerName READ controllerName CONSTANT)
49 Q_PROPERTY(QVariantMap config READ config CONSTANT)
50 Q_PROPERTY(
bool state READ state CONSTANT)
63 bool error()
const noexcept;
68 void error(
const QString &error);
73 QStringList errors()
const noexcept;
78 bool state()
const noexcept;
84 void setState(
bool state) noexcept;
89 Engine *engine()
const noexcept;
109 Action *action()
const noexcept;
114 QString actionName()
const noexcept;
123 QString ns()
const noexcept;
129 Request *request()
const noexcept;
144 QString controllerName()
const;
155 Controller *controller(
const QString &name)
const;
160 View *view(
const QString &name)
const;
165 View *view(QStringView name = {})
const;
172 View *customView()
const noexcept;
185 bool setCustomView(
const QString &name);
208 void stash(
const QVariantHash &unite);
221 QVariantHash &stash();
226 QVariant stash(
const QString &key)
const;
231 QVariant stash(
const QString &key,
const QVariant &defaultValue)
const;
238 QVariant stashTake(
const QString &key);
244 bool stashRemove(
const QString &key);
249 void setStash(
const QString &key,
const QVariant &value);
259 QStack<Component *> stack()
const noexcept;
272 QUrl uriFor(
const QString &path = QString(),
273 const QStringList &args = QStringList(),
286 inline QUrl uriFor(
const QString &path,
298 QUrl uriFor(
Action *action,
299 const QStringList &captures = QStringList(),
300 const QStringList &args = QStringList(),
308 inline QUrl uriFor(
Action *action,
334 QUrl uriForAction(
const QString &path,
335 const QStringList &captures = QStringList(),
336 const QStringList &args = QStringList(),
342 inline QUrl uriForAction(
const QString &path,
349 bool detached()
const noexcept;
356 void detach(
Action *action =
nullptr);
373 void detachAsync() noexcept;
422 bool forward(
const QString &action);
427 Action *getAction(
const QString &action,
const QString &ns = {})
const;
432 QVector<Action *> getActions(
const QString &action,
const QString &ns = {})
const;
437 QVector<Plugin *> plugins()
const;
442 template <
typename T>
445 const auto pluginsConst = plugins();
446 for (
Plugin *plugin : pluginsConst) {
447 auto p = qobject_cast<T>(plugin);
467 QLocale locale() const noexcept;
483 void setLocale(const QLocale &locale);
488 QVariant config(const QString &key, const QVariant &defaultValue = {})
const;
493 QVariantMap config() const noexcept;
508 QString translate(const
char *context, const
char *sourceText, const
char *disambiguation =
nullptr,
int n = -1) const;
521 Context(ContextPrivate *priv);
523 friend class Application;
525 friend class ActionChain;
526 friend class DispatchType;
529 friend class Controller;
531 ContextPrivate *d_ptr;
534 Q_DECLARE_PRIVATE(Context)
538 {
return uriFor(path, QStringList(), queryValues); }
541 {
return uriFor(action, QStringList(), QStringList(), queryValues); }
544 {
return uriForAction(path, QStringList(), QStringList(), queryValues); }
This class represents a Cutelyst Action.
The Cutelyst Application.
The Cutelyst Component base class.
QUrl uriFor(const QString &path=QString(), const QStringList &args=QStringList(), const ParamsMultiMap &queryValues=ParamsMultiMap()) const
QUrl uriForAction(const QString &path, const QStringList &captures=QStringList(), const QStringList &args=QStringList(), const ParamsMultiMap &queryValues=ParamsMultiMap()) const
T plugin()
Returns the registered plugin that casts to the template type T.
Cutelyst Controller base class
Cutelyst View abstract view component
The Cutelyst namespace holds all public Cutelyst API.
QMultiMap< QString, QString > ParamsMultiMap