• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
  • script
scriptengineinitializer.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2010, 2011, 2012, 2013 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #include "scriptengineinitializer.h"
24 #include "scriptutils.h"
25 #include "../datatypes/primitivefactory.h"
26 #include "../parsers/parserutils.h"
27 #include <QStringList>
28 #include <QFile>
29 #include <QScriptValue>
30 #include <QScriptEngine>
31 #include <QScriptContext>
32 #include <QScriptValueIterator>
33 
34 #include <KDebug>
35 #include <KGlobal>
36 #include <KStandardDirs>
37 
38 namespace ScriptEngineInitializer
39 {
40 void addFuctionsToScriptEngine(QScriptEngine* engine)
41 {
42  engine->globalObject().setProperty(QLatin1String("uint8"),
43  engine->newFunction(Private::scriptNewUInt8));
44  engine->globalObject().setProperty(QLatin1String("uint16"),
45  engine->newFunction(Private::scriptNewUInt16));
46  engine->globalObject().setProperty(QLatin1String("uint32"),
47  engine->newFunction(Private::scriptNewUInt32));
48  engine->globalObject().setProperty(QLatin1String("uint64"),
49  engine->newFunction(Private::scriptNewUInt64));
50 
51  engine->globalObject().setProperty(QLatin1String("int8"),
52  engine->newFunction(Private::scriptNewInt8));
53  engine->globalObject().setProperty(QLatin1String("int16"),
54  engine->newFunction(Private::scriptNewInt16));
55  engine->globalObject().setProperty(QLatin1String("int32"),
56  engine->newFunction(Private::scriptNewInt32));
57  engine->globalObject().setProperty(QLatin1String("int64"),
58  engine->newFunction(Private::scriptNewInt64));
59 
60  engine->globalObject().setProperty(QLatin1String("bool8"),
61  engine->newFunction(Private::scriptNewBool8));
62  engine->globalObject().setProperty(QLatin1String("bool16"),
63  engine->newFunction(Private::scriptNewBool16));
64  engine->globalObject().setProperty(QLatin1String("bool32"),
65  engine->newFunction(Private::scriptNewBool32));
66  engine->globalObject().setProperty(QLatin1String("bool64"),
67  engine->newFunction(Private::scriptNewBool64));
68 
69  engine->globalObject().setProperty(QLatin1String("float"),
70  engine->newFunction(Private::scriptNewFloat));
71  engine->globalObject().setProperty(QLatin1String("double"),
72  engine->newFunction(Private::scriptNewDouble));
73 
74  engine->globalObject().setProperty(QLatin1String("char"),
75  engine->newFunction(Private::scriptNewChar));
76 
77  engine->globalObject().setProperty(QLatin1String("bitfield"),
78  engine->newFunction(Private::scriptNewBitfield));
79 
80  engine->globalObject().setProperty(QLatin1String("array"),
81  engine->newFunction(Private::scriptNewArray));
82  engine->globalObject().setProperty(QLatin1String("struct"),
83  engine->newFunction(Private::scriptNewStruct));
84  engine->globalObject().setProperty(QLatin1String("union"),
85  engine->newFunction(Private::scriptNewUnion));
86 
87  //enum is a reserved keyword in JavaScript, cannot use it
88  engine->globalObject().setProperty(QLatin1String("enumeration"),
89  engine->newFunction(Private::scriptNewEnum));
90  engine->globalObject().setProperty(QLatin1String("flags"),
91  engine->newFunction(Private::scriptNewFlags));
92  engine->globalObject().setProperty(QLatin1String("string"),
93  engine->newFunction(Private::scriptNewString));
94  engine->globalObject().setProperty(QLatin1String("pointer"),
95  engine->newFunction(Private::scriptNewPointer));
96  engine->globalObject().setProperty(QLatin1String("taggedUnion"),
97  engine->newFunction(Private::scriptNewTaggedUnion));
98 
99  engine->globalObject().setProperty(QLatin1String("alternative"),
100  engine->newFunction(Private::alternativeFunc));
101 
102  engine->globalObject().setProperty(QLatin1String("importScript"),
103  engine->newFunction(Private::importScriptFunc));
104 }
105 
106 QScriptEngine* newEngine()
107 {
108  QScriptEngine* ret = new QScriptEngine();
109  addFuctionsToScriptEngine(ret);
110  return ret;
111 }
112 
113 namespace Private
114 {
115 
116 static const QString setUpdatePropertyString = QLatin1String("setUpdate");
117 static const QString setValidationPropertyString = QLatin1String("setValidation");
118 static const QString setPropertyString = QLatin1String("set");
119 
120 namespace
121 {
122 
123 QScriptValue scriptNewCommon(QScriptContext* ctx, QScriptEngine* eng, const QString& typeName)
124 {
125  QScriptValue object = ctx->isCalledAsConstructor() ? ctx->thisObject() : eng->newObject();
126  object.setProperty(ParserStrings::PROPERTY_INTERNAL_TYPE, typeName);
127  //add the setUpdate() and setValidation() functions
128  object.setProperty(setUpdatePropertyString, eng->newFunction(addUpdateFunc, 1));
129  object.setProperty(setValidationPropertyString, eng->newFunction(addValidationFunc, 1));
130  object.setProperty(setPropertyString, eng->newFunction(addCustomPropertiesFunc, 1));
131  return object;
132 }
133 
135 QScriptValue primitiveConstructor(QScriptContext* ctx, QScriptEngine* eng, const QString& type)
136 {
137  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_PRIMITIVE);
138  object.setProperty(ParserStrings::PROPERTY_TYPE, type);
139  return object;
140 }
141 
142 }
143 #define PRIMITIVE_CONSTRUCTOR(type) QScriptValue scriptNew##type(QScriptContext* ctx, QScriptEngine* eng) \
144  { return primitiveConstructor(ctx, eng, QLatin1String(#type)); }
145 
146 PRIMITIVE_CONSTRUCTOR(UInt8)
147 PRIMITIVE_CONSTRUCTOR(UInt16)
148 PRIMITIVE_CONSTRUCTOR(UInt32)
149 PRIMITIVE_CONSTRUCTOR(UInt64)
150 PRIMITIVE_CONSTRUCTOR(Int8)
151 PRIMITIVE_CONSTRUCTOR(Int16)
152 PRIMITIVE_CONSTRUCTOR(Int32)
153 PRIMITIVE_CONSTRUCTOR(Int64)
154 PRIMITIVE_CONSTRUCTOR(Bool8)
155 PRIMITIVE_CONSTRUCTOR(Bool16)
156 PRIMITIVE_CONSTRUCTOR(Bool32)
157 PRIMITIVE_CONSTRUCTOR(Bool64)
158 PRIMITIVE_CONSTRUCTOR(Float)
159 PRIMITIVE_CONSTRUCTOR(Double)
160 PRIMITIVE_CONSTRUCTOR(Char)
161 
162 #undef PRIMITIVE_CONSTRUCTOR
163 
164 QScriptValue scriptNewBitfield(QScriptContext* ctx, QScriptEngine* eng)
165 {
166  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_BITFIELD);
167 
168  object.setProperty(ParserStrings::PROPERTY_TYPE, ctx->argument(0)); //first argument is type
169  object.setProperty(ParserStrings::PROPERTY_WIDTH, ctx->argument(1)); //second argument is width
170  return object;
171 }
172 
173 //with children:
174 QScriptValue scriptNewStruct(QScriptContext* ctx, QScriptEngine* eng)
175 {
176  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_STRUCT);
177  object.setProperty(ParserStrings::PROPERTY_CHILD, eng->newFunction(getChild));
178 
179  object.setProperty(ParserStrings::PROPERTY_CHILDREN, ctx->argument(0)); //first argument is children
180  return object;
181 }
182 
183 QScriptValue scriptNewUnion(QScriptContext* ctx, QScriptEngine* eng)
184 {
185  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_UNION);
186  object.setProperty(ParserStrings::PROPERTY_TYPE, eng->newFunction(getChild));
187 
188  object.setProperty(ParserStrings::PROPERTY_CHILDREN, ctx->argument(0)); //first argument is children
189  return object;
190 }
191 
192 QScriptValue scriptNewArray(QScriptContext* ctx, QScriptEngine* eng)
193 {
194  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_ARRAY);
195 
196  object.setProperty(ParserStrings::PROPERTY_TYPE, ctx->argument(0)); //first argument is child type
197  object.setProperty(ParserStrings::PROPERTY_LENGTH, ctx->argument(1)); //second argument is length
198  return object;
199 }
200 
201 QScriptValue createEnumObject(QScriptContext* ctx, QScriptEngine* eng, const QString& typeName)
202 {
203  QScriptValue object = scriptNewCommon(ctx, eng, typeName);
204 
205  object.setProperty(ParserStrings::PROPERTY_ENUM_NAME, ctx->argument(0)); //first argument is the name of the underlying enum
206  object.setProperty(ParserStrings::PROPERTY_TYPE, ctx->argument(1)); //second argument is the type of the enum
207  object.setProperty(ParserStrings::PROPERTY_ENUM_VALUES, ctx->argument(2)); //third argument is the enum values
208  return object;
209 }
210 
211 QScriptValue scriptNewEnum(QScriptContext* ctx, QScriptEngine* eng)
212 {
213  return createEnumObject(ctx, eng, ParserStrings::TYPE_ENUM);
214 }
215 
216 QScriptValue scriptNewFlags(QScriptContext* ctx, QScriptEngine* eng)
217 {
218  return createEnumObject(ctx, eng, ParserStrings::TYPE_FLAGS);
219 }
220 
221 QScriptValue scriptNewString(QScriptContext* ctx, QScriptEngine* eng)
222 {
223  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_STRING);
224 
225  object.setProperty(ParserStrings::PROPERTY_ENCODING, ctx->argument(0));
226  return object;
227 }
228 
229 QScriptValue scriptNewPointer(QScriptContext* ctx, QScriptEngine* eng)
230 {
231  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_POINTER);
232 
233  object.setProperty(ParserStrings::PROPERTY_TYPE, ctx->argument(0));
234  object.setProperty(ParserStrings::PROPERTY_TARGET, ctx->argument(1));
235  return object;
236 }
237 
238 QScriptValue scriptNewTaggedUnion(QScriptContext* ctx, QScriptEngine* eng)
239 {
240  QScriptValue object = scriptNewCommon(ctx, eng, ParserStrings::TYPE_TAGGED_UNION);
241  object.setProperty(ParserStrings::PROPERTY_CHILD, eng->newFunction(getChild));
242 
243  object.setProperty(ParserStrings::PROPERTY_CHILDREN, ctx->argument(0));
244  object.setProperty(ParserStrings::PROPERTY_ALTERNATIVES, ctx->argument(1));
245  object.setProperty(ParserStrings::PROPERTY_DEFAULT_CHILDREN, ctx->argument(2));
246  return object;
247 }
248 
249 QScriptValue getChild(QScriptContext* ctx, QScriptEngine* eng)
250 {
251  Q_UNUSED(eng)
252  if (ctx->argumentCount() < 1)
253  return ctx->throwError(QLatin1String("child(): name of child must be passed as first parameter"));
254  QString nameString = ctx->argument(0).toString();
255  QScriptValue ret = ctx->thisObject().property(ParserStrings::PROPERTY_CHILDREN).property(nameString);
256  if (ret.isValid())
257  return ret;
258  else
259  return ctx->throwError(
260  QString(QLatin1String("child(): could not find child with name=") + nameString));
261 }
262 
263 QScriptValue addUpdateFunc(QScriptContext* ctx, QScriptEngine*)
264 {
265  if (ctx->argumentCount() != 1)
266  return ctx->throwError(QLatin1String("setUpdate(): needs one argument!"));
267  QScriptValue thisObj = ctx->thisObject();
268  Q_ASSERT(thisObj.isValid());
269  QScriptValue func = ctx->argument(0);
270  if (!func.isFunction())
271  {
272  return ctx->throwError(QScriptContext::TypeError,
273  QLatin1String("setUpdate(): argument must be a function!"));
274  }
275  thisObj.setProperty(ParserStrings::PROPERTY_UPDATE_FUNC, func);
276  return thisObj;
277 }
278 
279 QScriptValue addValidationFunc(QScriptContext* ctx, QScriptEngine*)
280 {
281  if (ctx->argumentCount() != 1)
282  return ctx->throwError(QLatin1String("setValidation(): needs one argument!"));
283  QScriptValue thisObj = ctx->thisObject();
284  Q_ASSERT(thisObj.isValid());
285  QScriptValue func = ctx->argument(0);
286  if (!func.isFunction())
287  {
288  return ctx->throwError(QScriptContext::TypeError,
289  QLatin1String("setValidation(): argument must be a function!"));
290  }
291  thisObj.setProperty(ParserStrings::PROPERTY_VALIDATION_FUNC, func);
292  return thisObj;
293 }
294 
295 QScriptValue addCustomPropertiesFunc(QScriptContext* ctx, QScriptEngine*)
296 {
297  if (ctx->argumentCount() != 1)
298  return ctx->throwError(QLatin1String("set(): needs one argument!"));
299  QScriptValue thisObj = ctx->thisObject();
300  Q_ASSERT(thisObj.isValid());
301  QScriptValue arg = ctx->argument(0);
302  if (!arg.isValid() || !arg.isObject())
303  return ctx->throwError(QScriptContext::TypeError,
304  QLatin1String("set(): argument must be an object!"));
305  int count = 0;
306  QScriptValueIterator it(arg);
307  while (it.hasNext())
308  {
309  it.next();
310  thisObj.setProperty(it.scriptName(), it.value());
311  count++;
312  }
313  if (count == 0)
314  return ctx->throwError(QLatin1String("set(): must set at least one property!"));
315  return thisObj;
316 }
317 
318 QScriptValue alternativeFunc(QScriptContext* ctx, QScriptEngine* eng)
319 {
320  if (ctx->argumentCount() < 2)
321  return ctx->throwError(QLatin1String("alternative(): needs at least 2 arguments!"));
322  QScriptValue object = ctx->isCalledAsConstructor() ? ctx->thisObject() : eng->newObject();
323  object.setProperty(ParserStrings::PROPERTY_SELECT_IF, ctx->argument(0));
324  object.setProperty(ParserStrings::PROPERTY_CHILDREN, ctx->argument(1));
325  if (ctx->argumentCount() > 2)
326  object.setProperty(ParserStrings::PROPERTY_STRUCT_NAME, ctx->argument(2));
327  return object;
328 }
329 
330 QScriptValue importScriptFunc(QScriptContext* ctx, QScriptEngine* eng)
331 {
332  if (ctx->argumentCount() != 1)
333  return ctx->throwError(QLatin1String("importScript(): expected one argument!"));
334  QString arg = ctx->argument(0).toString();
335  if (arg.contains(QLatin1String("..")))
336  return ctx->throwError(QLatin1String("importScript(): You may only access installed structure files! Path traversal detected."));
337  QString fileName = KGlobal::dirs()->findResource("data", QLatin1String("okteta/structures/") + arg);
338  if (fileName.isEmpty())
339  return ctx->throwError(QLatin1String("importScript(): could not find file to import!"));
340  QFile file(fileName);
341  if (!file.open(QFile::ReadOnly))
342  return ctx->throwError(QLatin1String("importScript(): failed to open file!"));
343  QTextStream s(&file);
344  QString code = s.readAll();
345  file.close();
346  //now push context so that we don't conflict with the current execution
347  QScriptContext* newCtx = eng->pushContext();
348  QScriptValue result = eng->evaluate(code);
349  if (result.isError())
350  result = QScriptValue(QLatin1String("importScript(): failed due to exception: ") + result.toString());
351  else
352  result = newCtx->activationObject();
353  eng->popContext();
354  return result;
355 }
356 
357 
358 } //namespace Private
359 
360 } //namespace ScriptEngine Initializer
UInt32
Definition: uint32.h:31
ScriptEngineInitializer::Private::scriptNewEnum
QScriptValue scriptNewEnum(QScriptContext *ctx, QScriptEngine *eng)
create a new enum: first parameter is the type, second parameter is a list of name - value pairs ...
Definition: scriptengineinitializer.cpp:211
ParserStrings::PROPERTY_TARGET
const QString PROPERTY_TARGET
Definition: parserutils.h:149
ScriptEngineInitializer::Private::addUpdateFunc
QScriptValue addUpdateFunc(QScriptContext *ctx, QScriptEngine *)
Definition: scriptengineinitializer.cpp:263
ScriptEngineInitializer::Private::scriptNewUInt64
QScriptValue scriptNewUInt64(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::TYPE_PRIMITIVE
const QString TYPE_PRIMITIVE
Definition: parserutils.h:100
PrimitiveType::typeName
QString typeName(PrimitiveDataType type)
Definition: primitivedatatype.cpp:68
scriptengineinitializer.h
ParserStrings::TYPE_BITFIELD
const QString TYPE_BITFIELD
Definition: parserutils.h:97
ScriptEngineInitializer::Private::scriptNewUInt16
QScriptValue scriptNewUInt16(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ScriptEngineInitializer::Private::scriptNewStruct
QScriptValue scriptNewStruct(QScriptContext *ctx, QScriptEngine *eng)
this script constructor/initializer function takes 1 argument and returns a struct object: an object...
Definition: scriptengineinitializer.cpp:174
ScriptEngineInitializer::Private::scriptNewString
QScriptValue scriptNewString(QScriptContext *ctx, QScriptEngine *eng)
this constructor takes one argument, the encoding of the string (as a string)
Definition: scriptengineinitializer.cpp:221
ParserStrings::TYPE_FLAGS
const QString TYPE_FLAGS
Definition: parserutils.h:99
ScriptEngineInitializer::Private::scriptNewInt32
QScriptValue scriptNewInt32(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
UInt8
Definition: uint8.h:31
ParserStrings::PROPERTY_CHILD
const QString PROPERTY_CHILD
Definition: parserutils.h:138
ParserStrings::TYPE_ENUM
const QString TYPE_ENUM
Definition: parserutils.h:98
ScriptEngineInitializer::Private::getChild
QScriptValue getChild(QScriptContext *ctx, QScriptEngine *eng)
Definition: scriptengineinitializer.cpp:249
ScriptEngineInitializer::Private::scriptNewInt64
QScriptValue scriptNewInt64(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ScriptEngineInitializer::Private::scriptNewDouble
QScriptValue scriptNewDouble(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::PROPERTY_WIDTH
const QString PROPERTY_WIDTH
Definition: parserutils.h:134
ParserStrings::PROPERTY_SELECT_IF
const QString PROPERTY_SELECT_IF
Definition: parserutils.h:153
ScriptEngineInitializer::addFuctionsToScriptEngine
void addFuctionsToScriptEngine(QScriptEngine *engine)
add the necessary functions to the QScriptEngine
Definition: scriptengineinitializer.cpp:40
ParserStrings::PROPERTY_ENCODING
const QString PROPERTY_ENCODING
Definition: parserutils.h:145
ScriptEngineInitializer::Private::importScriptFunc
QScriptValue importScriptFunc(QScriptContext *ctx, QScriptEngine *eng)
Definition: scriptengineinitializer.cpp:330
ScriptEngineInitializer::Private::scriptNewUInt8
QScriptValue scriptNewUInt8(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::PROPERTY_TYPE
const QString PROPERTY_TYPE
Definition: parserutils.h:130
ParserStrings::PROPERTY_LENGTH
const QString PROPERTY_LENGTH
Definition: parserutils.h:132
ParserStrings::PROPERTY_UPDATE_FUNC
const QString PROPERTY_UPDATE_FUNC
Definition: parserutils.h:120
ScriptEngineInitializer::Private::scriptNewTaggedUnion
QScriptValue scriptNewTaggedUnion(QScriptContext *ctx, QScriptEngine *eng)
this constructor takes three arguments: 1.
Definition: scriptengineinitializer.cpp:238
ScriptEngineInitializer::newEngine
QScriptEngine * newEngine()
Definition: scriptengineinitializer.cpp:106
ScriptEngineInitializer::Private::scriptNewBitfield
QScriptValue scriptNewBitfield(QScriptContext *ctx, QScriptEngine *eng)
this script constructor/initializer function takes 2 arguments: -the first is the type of the bitfi...
Definition: scriptengineinitializer.cpp:164
ScriptEngineInitializer::Private::scriptNewBool32
QScriptValue scriptNewBool32(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::TYPE_TAGGED_UNION
const QString TYPE_TAGGED_UNION
Definition: parserutils.h:105
UInt64
Definition: uint64.h:31
ScriptEngineInitializer::Private::createEnumObject
QScriptValue createEnumObject(QScriptContext *ctx, QScriptEngine *eng, const QString &typeName)
Definition: scriptengineinitializer.cpp:201
ScriptEngineInitializer::Private::setValidationPropertyString
static const QString setValidationPropertyString
Definition: scriptengineinitializer.cpp:117
ParserStrings::TYPE_ARRAY
const QString TYPE_ARRAY
Definition: parserutils.h:96
ParserStrings::PROPERTY_ENUM_NAME
const QString PROPERTY_ENUM_NAME
Definition: parserutils.h:128
ScriptEngineInitializer::Private::scriptNewBool16
QScriptValue scriptNewBool16(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ScriptEngineInitializer::Private::scriptNewPointer
QScriptValue scriptNewPointer(QScriptContext *ctx, QScriptEngine *eng)
this constructor takes two arguments: 1.
Definition: scriptengineinitializer.cpp:229
ScriptEngineInitializer::Private::setUpdatePropertyString
static const QString setUpdatePropertyString
Definition: scriptengineinitializer.cpp:116
ParserStrings::PROPERTY_ENUM_VALUES
const QString PROPERTY_ENUM_VALUES
Definition: parserutils.h:126
ScriptEngineInitializer::Private::scriptNewBool64
QScriptValue scriptNewBool64(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::TYPE_STRING
const QString TYPE_STRING
Definition: parserutils.h:101
ParserStrings::PROPERTY_VALIDATION_FUNC
const QString PROPERTY_VALIDATION_FUNC
Definition: parserutils.h:121
ScriptEngineInitializer::Private::scriptNewChar
QScriptValue scriptNewChar(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::TYPE_POINTER
const QString TYPE_POINTER
Definition: parserutils.h:104
ParserStrings::TYPE_UNION
const QString TYPE_UNION
Definition: parserutils.h:103
ScriptEngineInitializer::Private::alternativeFunc
QScriptValue alternativeFunc(QScriptContext *ctx, QScriptEngine *eng)
Definition: scriptengineinitializer.cpp:318
ScriptEngineInitializer::Private::scriptNewFloat
QScriptValue scriptNewFloat(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ScriptEngineInitializer::Private::addCustomPropertiesFunc
QScriptValue addCustomPropertiesFunc(QScriptContext *ctx, QScriptEngine *)
this allows you to write e.g.
Definition: scriptengineinitializer.cpp:295
ParserStrings::PROPERTY_STRUCT_NAME
const QString PROPERTY_STRUCT_NAME
Definition: parserutils.h:154
ScriptEngineInitializer::Private::scriptNewUnion
QScriptValue scriptNewUnion(QScriptContext *ctx, QScriptEngine *eng)
this script constructor/initializer function takes 1 argument and returns a union object: an object ...
Definition: scriptengineinitializer.cpp:183
ParserStrings::PROPERTY_ALTERNATIVES
const QString PROPERTY_ALTERNATIVES
Definition: parserutils.h:151
ScriptEngineInitializer::Private::scriptNewUInt32
QScriptValue scriptNewUInt32(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::PROPERTY_CHILDREN
const QString PROPERTY_CHILDREN
Definition: parserutils.h:136
ParserStrings::PROPERTY_INTERNAL_TYPE
const QString PROPERTY_INTERNAL_TYPE
Definition: parserutils.h:156
scriptutils.h
ScriptEngineInitializer::Private::scriptNewFlags
QScriptValue scriptNewFlags(QScriptContext *ctx, QScriptEngine *eng)
create a new flag value: first parameter is the type, second parameter is a list of name - value pair...
Definition: scriptengineinitializer.cpp:216
ParserStrings::TYPE_STRUCT
const QString TYPE_STRUCT
Definition: parserutils.h:102
ScriptEngineInitializer::Private::scriptNewArray
QScriptValue scriptNewArray(QScriptContext *ctx, QScriptEngine *eng)
this constructor/initializer function takes 2 arguments and returns an array: -the first is an objec...
Definition: scriptengineinitializer.cpp:192
ScriptEngineInitializer::Private::scriptNewBool8
QScriptValue scriptNewBool8(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
PRIMITIVE_CONSTRUCTOR
#define PRIMITIVE_CONSTRUCTOR(type)
Definition: scriptengineinitializer.cpp:143
ScriptEngineInitializer::Private::scriptNewInt8
QScriptValue scriptNewInt8(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ScriptEngineInitializer::Private::addValidationFunc
QScriptValue addValidationFunc(QScriptContext *ctx, QScriptEngine *)
Definition: scriptengineinitializer.cpp:279
UInt16
Definition: uint16.h:31
ScriptEngineInitializer::Private::setPropertyString
static const QString setPropertyString
Definition: scriptengineinitializer.cpp:118
ScriptEngineInitializer::Private::scriptNewInt16
QScriptValue scriptNewInt16(QScriptContext *ctx, QScriptEngine *eng)
this script constructors/initializer takes no parameters
ParserStrings::PROPERTY_DEFAULT_CHILDREN
const QString PROPERTY_DEFAULT_CHILDREN
Definition: parserutils.h:152
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal