~ubuntu-branches/debian/jessie/ugene/jessie

« back to all changes in this revision

Viewing changes to src/libs_3rdparty/qtbindings_core/src/qtscript_QSignalMapper.cpp

  • Committer: Package Import Robot
  • Author(s): Steffen Moeller
  • Date: 2011-11-02 13:29:07 UTC
  • mfrom: (1.2.1) (3.1.11 natty)
  • Revision ID: package-import@ubuntu.com-20111102132907-o34gwnt0uj5g6hen
Tags: 1.9.8+repack-1
* First release to Debian
  - added README.Debian
  - increased policy version to 3.9.2
  - added URLs for version control system
* Added debug package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*****************************************************************
2
 
* Unipro UGENE - Integrated Bioinformatics Suite
3
 
* Copyright (C) 2008 Unipro, Russia (http://ugene.unipro.ru)
4
 
* All Rights Reserved
5
 
6
 
*     This source code is distributed under the terms of the
7
 
*     GNU General Public License. See the files COPYING and LICENSE
8
 
*     for details.
9
 
*****************************************************************/
10
 
 
11
 
#include <QtScript/QScriptEngine>
12
 
#include <QtScript/QScriptContext>
13
 
#include <QtScript/QScriptValue>
14
 
#include <QtCore/QStringList>
15
 
#include <QtCore/QDebug>
16
 
#include <qmetaobject.h>
17
 
 
18
 
#include <qsignalmapper.h>
19
 
#include <QVariant>
20
 
#include <qbytearray.h>
21
 
#include <qcoreevent.h>
22
 
#include <qlist.h>
23
 
#include <qobject.h>
24
 
#include <qsignalmapper.h>
25
 
 
26
 
#include "qtscriptshell_QSignalMapper.h"
27
 
 
28
 
static const char * const qtscript_QSignalMapper_function_names[] = {
29
 
    "QSignalMapper"
30
 
    // static
31
 
    // prototype
32
 
    , "mappingById"
33
 
    , "mappingByObject"
34
 
    , "mappingByString"
35
 
    , "removeMappings"
36
 
    , "setMappingById"
37
 
    , "setMappingByObject"
38
 
    , "setMappingByString"
39
 
    , "toString"
40
 
};
41
 
 
42
 
static const char * const qtscript_QSignalMapper_function_signatures[] = {
43
 
    "QObject parent"
44
 
    // static
45
 
    // prototype
46
 
    , "int id"
47
 
    , "QObject object"
48
 
    , "String text"
49
 
    , "QObject sender"
50
 
    , "QObject sender, int id"
51
 
    , "QObject sender, QObject object"
52
 
    , "QObject sender, String text"
53
 
""
54
 
};
55
 
 
56
 
static QScriptValue qtscript_QSignalMapper_throw_ambiguity_error_helper(
57
 
    QScriptContext *context, const char *functionName, const char *signatures)
58
 
{
59
 
    QStringList lines = QString::fromLatin1(signatures).split(QLatin1Char('\n'));
60
 
    QStringList fullSignatures;
61
 
    for (int i = 0; i < lines.size(); ++i)
62
 
        fullSignatures.append(QString::fromLatin1("%0(%1)").arg(functionName).arg(lines.at(i)));
63
 
    return context->throwError(QString::fromLatin1("QFile::%0(): could not find a function match; candidates are:\n%1")
64
 
        .arg(functionName).arg(fullSignatures.join(QLatin1String("\n"))));
65
 
}
66
 
 
67
 
Q_DECLARE_METATYPE(QSignalMapper*)
68
 
Q_DECLARE_METATYPE(QtScriptShell_QSignalMapper*)
69
 
 
70
 
//
71
 
// QSignalMapper
72
 
//
73
 
 
74
 
static QScriptValue qtscript_QSignalMapper_prototype_call(QScriptContext *context, QScriptEngine *)
75
 
{
76
 
#if QT_VERSION > 0x040400
77
 
    Q_ASSERT(context->callee().isFunction());
78
 
    uint _id = context->callee().data().toUInt32();
79
 
#else
80
 
    uint _id;
81
 
    if (context->callee().isFunction())
82
 
        _id = context->callee().data().toUInt32();
83
 
    else
84
 
        _id = 0xBABE0000 + 7;
85
 
#endif
86
 
    Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
87
 
    _id &= 0x0000FFFF;
88
 
    QSignalMapper* _q_self = qscriptvalue_cast<QSignalMapper*>(context->thisObject());
89
 
    if (!_q_self) {
90
 
        return context->throwError(QScriptContext::TypeError,
91
 
            QString::fromLatin1("QSignalMapper.%0(): this object is not a QSignalMapper")
92
 
            .arg(qtscript_QSignalMapper_function_names[_id+1]));
93
 
    }
94
 
 
95
 
    switch (_id) {
96
 
    case 0:
97
 
    if (context->argumentCount() == 1) {
98
 
        int _q_arg0 = context->argument(0).toInt32();
99
 
        QObject* _q_result = _q_self->mapping(_q_arg0);
100
 
        return qScriptValueFromValue(context->engine(), _q_result);
101
 
    }
102
 
    break;
103
 
 
104
 
    case 1:
105
 
    if (context->argumentCount() == 1) {
106
 
        QObject* _q_arg0 = context->argument(0).toQObject();
107
 
        QObject* _q_result = _q_self->mapping(_q_arg0);
108
 
        return qScriptValueFromValue(context->engine(), _q_result);
109
 
    }
110
 
    break;
111
 
 
112
 
    case 2:
113
 
    if (context->argumentCount() == 1) {
114
 
        QString _q_arg0 = context->argument(0).toString();
115
 
        QObject* _q_result = _q_self->mapping(_q_arg0);
116
 
        return qScriptValueFromValue(context->engine(), _q_result);
117
 
    }
118
 
    break;
119
 
 
120
 
    case 3:
121
 
    if (context->argumentCount() == 1) {
122
 
        QObject* _q_arg0 = context->argument(0).toQObject();
123
 
        _q_self->removeMappings(_q_arg0);
124
 
        return context->engine()->undefinedValue();
125
 
    }
126
 
    break;
127
 
 
128
 
    case 4:
129
 
    if (context->argumentCount() == 2) {
130
 
        QObject* _q_arg0 = context->argument(0).toQObject();
131
 
        int _q_arg1 = context->argument(1).toInt32();
132
 
        _q_self->setMapping(_q_arg0, _q_arg1);
133
 
        return context->engine()->undefinedValue();
134
 
    }
135
 
    break;
136
 
 
137
 
    case 5:
138
 
    if (context->argumentCount() == 2) {
139
 
        QObject* _q_arg0 = context->argument(0).toQObject();
140
 
        QObject* _q_arg1 = context->argument(1).toQObject();
141
 
        _q_self->setMapping(_q_arg0, _q_arg1);
142
 
        return context->engine()->undefinedValue();
143
 
    }
144
 
    break;
145
 
 
146
 
    case 6:
147
 
    if (context->argumentCount() == 2) {
148
 
        QObject* _q_arg0 = context->argument(0).toQObject();
149
 
        QString _q_arg1 = context->argument(1).toString();
150
 
        _q_self->setMapping(_q_arg0, _q_arg1);
151
 
        return context->engine()->undefinedValue();
152
 
    }
153
 
    break;
154
 
 
155
 
    case 7: {
156
 
    QString result = QString::fromLatin1("QSignalMapper");
157
 
    return QScriptValue(context->engine(), result);
158
 
    }
159
 
 
160
 
    default:
161
 
    Q_ASSERT(false);
162
 
    }
163
 
    return qtscript_QSignalMapper_throw_ambiguity_error_helper(context,
164
 
        qtscript_QSignalMapper_function_names[_id+1],
165
 
        qtscript_QSignalMapper_function_signatures[_id+1]);
166
 
}
167
 
 
168
 
static QScriptValue qtscript_QSignalMapper_static_call(QScriptContext *context, QScriptEngine *)
169
 
{
170
 
    uint _id = context->callee().data().toUInt32();
171
 
    Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
172
 
    _id &= 0x0000FFFF;
173
 
    switch (_id) {
174
 
    case 0:
175
 
    if (context->thisObject().strictlyEquals(context->engine()->globalObject())) {
176
 
        return context->throwError(QString::fromLatin1("QSignalMapper(): Did you forget to construct with 'new'?"));
177
 
    }
178
 
    if (context->argumentCount() == 0) {
179
 
        QtScriptShell_QSignalMapper* _q_cpp_result = new QtScriptShell_QSignalMapper();
180
 
        QScriptValue _q_result = context->engine()->newQObject(context->thisObject(), (QSignalMapper*)_q_cpp_result, QScriptEngine::AutoOwnership);
181
 
        _q_cpp_result->__qtscript_self = _q_result;
182
 
        return _q_result;
183
 
    } else if (context->argumentCount() == 1) {
184
 
        QObject* _q_arg0 = context->argument(0).toQObject();
185
 
        QtScriptShell_QSignalMapper* _q_cpp_result = new QtScriptShell_QSignalMapper(_q_arg0);
186
 
        QScriptValue _q_result = context->engine()->newQObject(context->thisObject(), (QSignalMapper*)_q_cpp_result, QScriptEngine::AutoOwnership);
187
 
        _q_cpp_result->__qtscript_self = _q_result;
188
 
        return _q_result;
189
 
    }
190
 
    break;
191
 
 
192
 
    default:
193
 
    Q_ASSERT(false);
194
 
    }
195
 
    return qtscript_QSignalMapper_throw_ambiguity_error_helper(context,
196
 
        qtscript_QSignalMapper_function_names[_id],
197
 
        qtscript_QSignalMapper_function_signatures[_id]);
198
 
}
199
 
 
200
 
static QScriptValue qtscript_QSignalMapper_toScriptValue(QScriptEngine *engine, QSignalMapper* const &in)
201
 
{
202
 
    return engine->newQObject(in, QScriptEngine::QtOwnership, QScriptEngine::PreferExistingWrapperObject);
203
 
}
204
 
 
205
 
static void qtscript_QSignalMapper_fromScriptValue(const QScriptValue &value, QSignalMapper* &out)
206
 
{
207
 
    out = qobject_cast<QSignalMapper*>(value.toQObject());
208
 
}
209
 
 
210
 
QScriptValue qtscript_create_QSignalMapper_class(QScriptEngine *engine)
211
 
{
212
 
    static const int function_lengths[] = {
213
 
        1
214
 
        // static
215
 
        // prototype
216
 
        , 1
217
 
        , 1
218
 
        , 1
219
 
        , 1
220
 
        , 2
221
 
        , 2
222
 
        , 2
223
 
        , 0
224
 
    };
225
 
    engine->setDefaultPrototype(qMetaTypeId<QSignalMapper*>(), QScriptValue());
226
 
    QScriptValue proto = engine->newVariant(qVariantFromValue((QSignalMapper*)0));
227
 
    proto.setPrototype(engine->defaultPrototype(qMetaTypeId<QObject*>()));
228
 
    for (int i = 0; i < 8; ++i) {
229
 
        QScriptValue fun = engine->newFunction(qtscript_QSignalMapper_prototype_call, function_lengths[i+1]);
230
 
        fun.setData(QScriptValue(engine, uint(0xBABE0000 + i)));
231
 
        proto.setProperty(QString::fromLatin1(qtscript_QSignalMapper_function_names[i+1]),
232
 
            fun, QScriptValue::SkipInEnumeration);
233
 
    }
234
 
 
235
 
    qScriptRegisterMetaType<QSignalMapper*>(engine, qtscript_QSignalMapper_toScriptValue, 
236
 
        qtscript_QSignalMapper_fromScriptValue, proto);
237
 
 
238
 
    QScriptValue ctor = engine->newFunction(qtscript_QSignalMapper_static_call, proto, function_lengths[0]);
239
 
    ctor.setData(QScriptValue(engine, uint(0xBABE0000 + 0)));
240
 
 
241
 
    return ctor;
242
 
}