19 #include "controller.h"
35 return Component::OnlyExecute;
42 if (method.returnType() == QMetaType::Bool) {
43 d->evaluateBool =
true;
46 if (method.parameterCount() == 2 && method.parameterType(1) == QMetaType::QStringList) {
47 d->listSignature =
true;
63 d->ns = args.value(QLatin1String(
"namespace")).toString();
65 const auto attributes = args.value(QLatin1String(
"attributes")).value<QMap<QString, QString> >();
68 const QString argsAttr =
attributes.value(QLatin1String(
"Args"));
69 if (!argsAttr.isEmpty()) {
70 d->numberOfArgs = qint8(argsAttr.toInt());
73 const QString capturesAttr =
attributes.value(QLatin1String(
"CaptureArgs"));
74 if (!capturesAttr.isEmpty()) {
75 d->numberOfCaptures = qint8(capturesAttr.toInt());
88 return d->attributes.value(
name, defaultValue);
100 return QString::fromLatin1(d->controller->metaObject()->className());
106 return d->controller;
116 return d->numberOfArgs == -1 || d->numberOfArgs ==
numberOfArgs;
126 return d->numberOfCaptures == -1 || d->numberOfCaptures ==
numberOfCaptures;
138 return d->numberOfArgs;
144 return d->numberOfCaptures;
155 if (d->evaluateBool) {
158 if (d->listSignature) {
159 ret = d->method.invoke(d->controller,
160 Qt::DirectConnection,
161 Q_RETURN_ARG(
bool, methodRet),
163 Q_ARG(QStringList, c->request()->args()));
165 QStringList args = c->request()->args();
167 args.append(d->emptyArgs);
169 ret = d->method.invoke(d->controller,
170 Qt::DirectConnection,
171 Q_RETURN_ARG(
bool, methodRet),
173 Q_ARG(QString, args.at(0)),
174 Q_ARG(QString, args.at(1)),
175 Q_ARG(QString, args.at(2)),
176 Q_ARG(QString, args.at(3)),
177 Q_ARG(QString, args.at(4)),
178 Q_ARG(QString, args.at(5)),
179 Q_ARG(QString, args.at(6)),
180 Q_ARG(QString, args.at(7)),
181 Q_ARG(QString, args.at(8)));
195 if (d->listSignature) {
196 ret = d->method.invoke(d->controller,
197 Qt::DirectConnection,
199 Q_ARG(QStringList, c->request()->args()));
201 QStringList args = c->request()->args();
203 args.append(d->emptyArgs);
205 ret = d->method.invoke(d->controller,
206 Qt::DirectConnection,
208 Q_ARG(QString, args.at(0)),
209 Q_ARG(QString, args.at(1)),
210 Q_ARG(QString, args.at(2)),
211 Q_ARG(QString, args.at(3)),
212 Q_ARG(QString, args.at(4)),
213 Q_ARG(QString, args.at(5)),
214 Q_ARG(QString, args.at(6)),
215 Q_ARG(QString, args.at(7)),
216 Q_ARG(QString, args.at(8)));
223 #include "moc_action.cpp"