5#ifndef CUTELYST_APPLICATION_H
6#define CUTELYST_APPLICATION_H
8#include <Cutelyst/cutelyst_global.h>
10#include <QtCore/QLocale>
11#include <QtCore/QObject>
12#include <QtCore/QVariant>
13#include <QtCore/QVector>
19#define CUTELYST_APPLICATION(x) \
20 Q_PLUGIN_METADATA(x) \
21 Q_INTERFACES(Cutelyst::Application)
35class ApplicationPrivate;
69 QVector<Controller *> controllers()
const noexcept;
74 View *view(QStringView name = {})
const;
79 QVariant config(
const QString &key,
const QVariant &defaultValue = {})
const;
91 QVector<DispatchType *> dispatchers()
const noexcept;
96 QVector<Plugin *> plugins()
const noexcept;
101 template <
typename T>
104 const auto pluginsConst = plugins();
105 for (
Plugin *plugin : pluginsConst) {
106 auto p = qobject_cast<T>(plugin);
118 QVariantMap config() const noexcept;
123 QString pathTo(const QString &path) const;
128 QString pathTo(const QStringList &path) const;
133 bool inited() const noexcept;
138 Engine *engine() const noexcept;
144 Component *createComponentPlugin(const QString &name, QObject *parent =
nullptr);
149 static const
char *cutelystVersion() noexcept;
179 void addTranslator(const QLocale &locale, QTranslator *translator);
190 void addTranslator(const QString &locale, QTranslator *translator);
199 void addTranslators(const QLocale &locale, const QVector<QTranslator *> &translators);
212 QString translate(const QLocale &locale,
214 const
char *sourceText,
215 const
char *disambiguation =
nullptr,
246 void loadTranslations(const QString &filename,
247 const QString &directory = {},
248 const QString &prefix = {},
249 const QString &suffix = {});
280 QVector<QLocale> loadTranslationsFromDir(
const QString &filename,
281 const QString &directory = QString(),
282 const QString &prefix = QStringLiteral(
"."),
283 const QString &suffix = QStringLiteral(
".qm"));
310 QVector<QLocale> loadTranslationsFromDirs(
const QString &directory,
const QString &filename);
345 virtual bool postFork();
352 Headers &defaultHeaders() noexcept;
357 void addXCutelystVersionHeader();
366 bool registerPlugin(Plugin *plugin);
378 bool registerController(Controller *controller);
387 bool registerView(View *view);
393 bool registerDispatcher(DispatchType *dispatcher);
444 void setConfig(const QString &key, const QVariant &value);
452 bool setup(
Engine *engine);
462 bool enginePostFork();
464 ApplicationPrivate *d_ptr;
469#define CutelystApplicationInterface_iid "org.cutelyst.CutelystApplicationInterface"
The Cutelyst Application.
T plugin()
Returns the registered plugin that casts to the template type T.
The Cutelyst Component base class.
Cutelyst View abstract view component
The Cutelyst namespace holds all public Cutelyst API.