PageRenderTime 40ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/mscore/scriptgen/qtbindings/gui/qtscript_QDesktopServices.cpp

https://github.com/SSMN/MuseScore
C++ | 292 lines | 248 code | 32 blank | 12 comment | 26 complexity | fa879c264eb0e2d48fca2dc13e521532 MD5 | raw file
  1. #include <QtScript/QScriptEngine>
  2. #include <QtScript/QScriptContext>
  3. #include <QtScript/QScriptValue>
  4. #include <QtCore/QStringList>
  5. #include <QtCore/QDebug>
  6. #include <qmetaobject.h>
  7. #include <qdesktopservices.h>
  8. #include <QVariant>
  9. #include <qobject.h>
  10. #include <qurl.h>
  11. #include "qtscriptshell_QDesktopServices.h"
  12. static const char * const qtscript_QDesktopServices_function_names[] = {
  13. "QDesktopServices"
  14. // static
  15. , "displayName"
  16. , "openUrl"
  17. , "setUrlHandler"
  18. , "storageLocation"
  19. , "unsetUrlHandler"
  20. // prototype
  21. , "toString"
  22. };
  23. static const char * const qtscript_QDesktopServices_function_signatures[] = {
  24. ""
  25. // static
  26. , "StandardLocation type"
  27. , "QUrl url"
  28. , "String scheme, QObject receiver, char method"
  29. , "StandardLocation type"
  30. , "String scheme"
  31. // prototype
  32. ""
  33. };
  34. static QScriptValue qtscript_QDesktopServices_throw_ambiguity_error_helper(
  35. QScriptContext *context, const char *functionName, const char *signatures)
  36. {
  37. QStringList lines = QString::fromLatin1(signatures).split(QLatin1Char('\n'));
  38. QStringList fullSignatures;
  39. for (int i = 0; i < lines.size(); ++i)
  40. fullSignatures.append(QString::fromLatin1("%0(%1)").arg(functionName).arg(lines.at(i)));
  41. return context->throwError(QString::fromLatin1("QDesktopServices::%0(): could not find a function match; candidates are:\n%1")
  42. .arg(functionName).arg(fullSignatures.join(QLatin1String("\n"))));
  43. }
  44. Q_DECLARE_METATYPE(QDesktopServices*)
  45. Q_DECLARE_METATYPE(QtScriptShell_QDesktopServices*)
  46. Q_DECLARE_METATYPE(QDesktopServices::StandardLocation)
  47. Q_DECLARE_METATYPE(char*)
  48. static QScriptValue qtscript_create_enum_class_helper(
  49. QScriptEngine *engine,
  50. QScriptEngine::FunctionSignature construct,
  51. QScriptEngine::FunctionSignature valueOf,
  52. QScriptEngine::FunctionSignature toString)
  53. {
  54. QScriptValue proto = engine->newObject();
  55. proto.setProperty(QString::fromLatin1("valueOf"),
  56. engine->newFunction(valueOf), QScriptValue::SkipInEnumeration);
  57. proto.setProperty(QString::fromLatin1("toString"),
  58. engine->newFunction(toString), QScriptValue::SkipInEnumeration);
  59. return engine->newFunction(construct, proto, 1);
  60. }
  61. //
  62. // QDesktopServices::StandardLocation
  63. //
  64. static const QDesktopServices::StandardLocation qtscript_QDesktopServices_StandardLocation_values[] = {
  65. QDesktopServices::DesktopLocation
  66. , QDesktopServices::DocumentsLocation
  67. , QDesktopServices::FontsLocation
  68. , QDesktopServices::ApplicationsLocation
  69. , QDesktopServices::MusicLocation
  70. , QDesktopServices::MoviesLocation
  71. , QDesktopServices::PicturesLocation
  72. , QDesktopServices::TempLocation
  73. , QDesktopServices::HomeLocation
  74. , QDesktopServices::DataLocation
  75. , QDesktopServices::CacheLocation
  76. };
  77. static const char * const qtscript_QDesktopServices_StandardLocation_keys[] = {
  78. "DesktopLocation"
  79. , "DocumentsLocation"
  80. , "FontsLocation"
  81. , "ApplicationsLocation"
  82. , "MusicLocation"
  83. , "MoviesLocation"
  84. , "PicturesLocation"
  85. , "TempLocation"
  86. , "HomeLocation"
  87. , "DataLocation"
  88. , "CacheLocation"
  89. };
  90. static QString qtscript_QDesktopServices_StandardLocation_toStringHelper(QDesktopServices::StandardLocation value)
  91. {
  92. if ((value >= QDesktopServices::DesktopLocation) && (value <= QDesktopServices::CacheLocation))
  93. return qtscript_QDesktopServices_StandardLocation_keys[static_cast<int>(value)-static_cast<int>(QDesktopServices::DesktopLocation)];
  94. return QString();
  95. }
  96. static QScriptValue qtscript_QDesktopServices_StandardLocation_toScriptValue(QScriptEngine *engine, const QDesktopServices::StandardLocation &value)
  97. {
  98. QScriptValue clazz = engine->globalObject().property(QString::fromLatin1("QDesktopServices"));
  99. return clazz.property(qtscript_QDesktopServices_StandardLocation_toStringHelper(value));
  100. }
  101. static void qtscript_QDesktopServices_StandardLocation_fromScriptValue(const QScriptValue &value, QDesktopServices::StandardLocation &out)
  102. {
  103. out = qvariant_cast<QDesktopServices::StandardLocation>(value.toVariant());
  104. }
  105. static QScriptValue qtscript_construct_QDesktopServices_StandardLocation(QScriptContext *context, QScriptEngine *engine)
  106. {
  107. int arg = context->argument(0).toInt32();
  108. if ((arg >= QDesktopServices::DesktopLocation) && (arg <= QDesktopServices::CacheLocation))
  109. return qScriptValueFromValue(engine, static_cast<QDesktopServices::StandardLocation>(arg));
  110. return context->throwError(QString::fromLatin1("StandardLocation(): invalid enum value (%0)").arg(arg));
  111. }
  112. static QScriptValue qtscript_QDesktopServices_StandardLocation_valueOf(QScriptContext *context, QScriptEngine *engine)
  113. {
  114. QDesktopServices::StandardLocation value = qscriptvalue_cast<QDesktopServices::StandardLocation>(context->thisObject());
  115. return QScriptValue(engine, static_cast<int>(value));
  116. }
  117. static QScriptValue qtscript_QDesktopServices_StandardLocation_toString(QScriptContext *context, QScriptEngine *engine)
  118. {
  119. QDesktopServices::StandardLocation value = qscriptvalue_cast<QDesktopServices::StandardLocation>(context->thisObject());
  120. return QScriptValue(engine, qtscript_QDesktopServices_StandardLocation_toStringHelper(value));
  121. }
  122. static QScriptValue qtscript_create_QDesktopServices_StandardLocation_class(QScriptEngine *engine, QScriptValue &clazz)
  123. {
  124. QScriptValue ctor = qtscript_create_enum_class_helper(
  125. engine, qtscript_construct_QDesktopServices_StandardLocation,
  126. qtscript_QDesktopServices_StandardLocation_valueOf, qtscript_QDesktopServices_StandardLocation_toString);
  127. qScriptRegisterMetaType<QDesktopServices::StandardLocation>(engine, qtscript_QDesktopServices_StandardLocation_toScriptValue,
  128. qtscript_QDesktopServices_StandardLocation_fromScriptValue, ctor.property(QString::fromLatin1("prototype")));
  129. for (int i = 0; i < 11; ++i) {
  130. clazz.setProperty(QString::fromLatin1(qtscript_QDesktopServices_StandardLocation_keys[i]),
  131. engine->newVariant(qVariantFromValue(qtscript_QDesktopServices_StandardLocation_values[i])),
  132. QScriptValue::ReadOnly | QScriptValue::Undeletable);
  133. }
  134. return ctor;
  135. }
  136. //
  137. // QDesktopServices
  138. //
  139. static QScriptValue qtscript_QDesktopServices_prototype_call(QScriptContext *context, QScriptEngine *)
  140. {
  141. #if QT_VERSION > 0x040400
  142. Q_ASSERT(context->callee().isFunction());
  143. uint _id = context->callee().data().toUInt32();
  144. #else
  145. uint _id;
  146. if (context->callee().isFunction())
  147. _id = context->callee().data().toUInt32();
  148. else
  149. _id = 0xBABE0000 + 0;
  150. #endif
  151. Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
  152. _id &= 0x0000FFFF;
  153. QDesktopServices* _q_self = qscriptvalue_cast<QDesktopServices*>(context->thisObject());
  154. if (!_q_self) {
  155. return context->throwError(QScriptContext::TypeError,
  156. QString::fromLatin1("QDesktopServices.%0(): this object is not a QDesktopServices")
  157. .arg(qtscript_QDesktopServices_function_names[_id+6]));
  158. }
  159. switch (_id) {
  160. case 0: {
  161. QString result = QString::fromLatin1("QDesktopServices");
  162. return QScriptValue(context->engine(), result);
  163. }
  164. default:
  165. Q_ASSERT(false);
  166. }
  167. return qtscript_QDesktopServices_throw_ambiguity_error_helper(context,
  168. qtscript_QDesktopServices_function_names[_id+6],
  169. qtscript_QDesktopServices_function_signatures[_id+6]);
  170. }
  171. static QScriptValue qtscript_QDesktopServices_static_call(QScriptContext *context, QScriptEngine *)
  172. {
  173. uint _id = context->callee().data().toUInt32();
  174. Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
  175. _id &= 0x0000FFFF;
  176. switch (_id) {
  177. case 0:
  178. if (context->thisObject().strictlyEquals(context->engine()->globalObject())) {
  179. return context->throwError(QString::fromLatin1("QDesktopServices(): Did you forget to construct with 'new'?"));
  180. }
  181. if (context->argumentCount() == 0) {
  182. QtScriptShell_QDesktopServices* _q_cpp_result = new QtScriptShell_QDesktopServices();
  183. QScriptValue _q_result = context->engine()->newVariant(context->thisObject(), qVariantFromValue((QDesktopServices*)_q_cpp_result));
  184. _q_cpp_result->__qtscript_self = _q_result;
  185. return _q_result;
  186. }
  187. break;
  188. case 1:
  189. if (context->argumentCount() == 1) {
  190. QDesktopServices::StandardLocation _q_arg0 = qscriptvalue_cast<QDesktopServices::StandardLocation>(context->argument(0));
  191. QString _q_result = QDesktopServices::displayName(_q_arg0);
  192. return QScriptValue(context->engine(), _q_result);
  193. }
  194. break;
  195. case 2:
  196. if (context->argumentCount() == 1) {
  197. QUrl _q_arg0 = qscriptvalue_cast<QUrl>(context->argument(0));
  198. bool _q_result = QDesktopServices::openUrl(_q_arg0);
  199. return QScriptValue(context->engine(), _q_result);
  200. }
  201. break;
  202. case 3:
  203. if (context->argumentCount() == 3) {
  204. QString _q_arg0 = context->argument(0).toString();
  205. QObject* _q_arg1 = context->argument(1).toQObject();
  206. char* _q_arg2 = qscriptvalue_cast<char*>(context->argument(2));
  207. QDesktopServices::setUrlHandler(_q_arg0, _q_arg1, _q_arg2);
  208. return context->engine()->undefinedValue();
  209. }
  210. break;
  211. case 4:
  212. if (context->argumentCount() == 1) {
  213. QDesktopServices::StandardLocation _q_arg0 = qscriptvalue_cast<QDesktopServices::StandardLocation>(context->argument(0));
  214. QString _q_result = QDesktopServices::storageLocation(_q_arg0);
  215. return QScriptValue(context->engine(), _q_result);
  216. }
  217. break;
  218. case 5:
  219. if (context->argumentCount() == 1) {
  220. QString _q_arg0 = context->argument(0).toString();
  221. QDesktopServices::unsetUrlHandler(_q_arg0);
  222. return context->engine()->undefinedValue();
  223. }
  224. break;
  225. default:
  226. Q_ASSERT(false);
  227. }
  228. return qtscript_QDesktopServices_throw_ambiguity_error_helper(context,
  229. qtscript_QDesktopServices_function_names[_id],
  230. qtscript_QDesktopServices_function_signatures[_id]);
  231. }
  232. QScriptValue qtscript_create_QDesktopServices_class(QScriptEngine *engine)
  233. {
  234. static const int function_lengths[] = {
  235. 0
  236. // static
  237. , 1
  238. , 1
  239. , 3
  240. , 1
  241. , 1
  242. // prototype
  243. , 0
  244. };
  245. engine->setDefaultPrototype(qMetaTypeId<QDesktopServices*>(), QScriptValue());
  246. QScriptValue proto = engine->newVariant(qVariantFromValue((QDesktopServices*)0));
  247. engine->setDefaultPrototype(qMetaTypeId<QDesktopServices*>(), proto);
  248. QScriptValue ctor = engine->newFunction(qtscript_QDesktopServices_static_call, proto, function_lengths[0]);
  249. ctor.setData(QScriptValue(engine, uint(0xBABE0000 + 0)));
  250. for (int i = 0; i < 5; ++i) {
  251. QScriptValue fun = engine->newFunction(qtscript_QDesktopServices_static_call,
  252. function_lengths[i+1]);
  253. fun.setData(QScriptValue(engine, uint(0xBABE0000 + i+1)));
  254. ctor.setProperty(QString::fromLatin1(qtscript_QDesktopServices_function_names[i+1]),
  255. fun, QScriptValue::SkipInEnumeration);
  256. }
  257. ctor.setProperty(QString::fromLatin1("StandardLocation"),
  258. qtscript_create_QDesktopServices_StandardLocation_class(engine, ctor));
  259. return ctor;
  260. }