18 #ifndef CUTELYST_APPLICATION_H
19 #define CUTELYST_APPLICATION_H
21 #include <QtCore/QObject>
22 #include <QtCore/QVariant>
23 #include <QtCore/QLocale>
24 #include <QtCore/QVector>
26 #include <Cutelyst/cutelyst_global.h>
32 #define CUTELYST_APPLICATION(x) \
33 Q_PLUGIN_METADATA(x) \
34 Q_INTERFACES(Cutelyst::Application)
48 class ApplicationPrivate;
82 QVector<Controller *> controllers()
const;
87 View *view(
const QString &name = QString())
const;
92 QVariant config(
const QString &key,
const QVariant &defaultValue = QVariant())
const;
104 QVector<DispatchType *> dispatchers()
const;
109 QVector<Plugin *> plugins()
const;
114 template <
typename T>
117 const auto pluginsConst = plugins();
118 for (
Plugin *plugin : pluginsConst) {
119 auto p = qobject_cast<T>(plugin);
131 QVariantMap config()
const;
136 QString pathTo(
const QString &path)
const;
141 QString pathTo(
const QStringList &path)
const;
157 Component *createComponentPlugin(
const QString &name, QObject *parent =
nullptr);
162 static const char *cutelystVersion();
192 void addTranslator(
const QLocale &locale, QTranslator *translator);
203 void addTranslator(
const QString &locale, QTranslator *translator);
212 void addTranslators(
const QLocale &locale,
const QVector<QTranslator *> &translators);
225 QString translate(
const QLocale &locale,
const char *context,
const char *sourceText,
const char *disambiguation =
nullptr,
int n = -1)
const;
252 void loadTranslations(
const QString &filename,
const QString &directory = QString(),
const QString &prefix = QString(),
const QString &suffix = QString());
279 QVector<QLocale> loadTranslationsFromDir(
const QString &filename,
const QString &directory = QString(),
const QString &prefix = QStringLiteral(
"."),
const QString &suffix = QStringLiteral(
".qm"));
302 QVector<QLocale> loadTranslationsFromDirs(
const QString &directory,
const QString &filename);
337 virtual bool postFork();
349 void addXCutelystVersionHeader();
358 bool registerPlugin(
Plugin *plugin);
370 bool registerController(
Controller *controller);
379 bool registerView(
View *view);
436 void setConfig(
const QString &key,
const QVariant &value);
444 bool setup(
Engine *engine);
454 bool enginePostFork();
456 ApplicationPrivate *d_ptr;
461 #define CutelystApplicationInterface_iid "org.cutelyst.CutelystApplicationInterface"
465 #endif // CUTELYST_APPLICATION_H