Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/examples/script/customclass/bytearrayclass.cpp

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the examples of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    7272    int m_last;
    7373};
    74 
    75 static qint32 toArrayIndex(const QString &str)
    76 {
    77     QByteArray bytes = str.toUtf8();
    78     char *eptr;
    79     quint32 pos = strtoul(bytes.constData(), &eptr, 10);
    80     if ((eptr == bytes.constData() + bytes.size())
    81         && (QByteArray::number(pos) == bytes)) {
    82         return pos;
    83     }
    84     return -1;
    85 }
    8674
    8775//! [0]
     
    10189    proto.setPrototype(global.property("Object").property("prototype"));
    10290
    103     ctor = engine->newFunction(construct);
     91    ctor = engine->newFunction(construct, proto);
    10492    ctor.setData(qScriptValueFromValue(engine, this));
    10593}
     
    121109        return flags;
    122110    } else {
    123         qint32 pos = toArrayIndex(name);
    124         if (pos == -1)
     111        bool isArrayIndex;
     112        qint32 pos = name.toArrayIndex(&isArrayIndex);
     113        if (!isArrayIndex)
    125114            return 0;
    126115        *id = pos;
     
    225214    if (!cls)
    226215        return QScriptValue();
    227     int size = ctx->argument(0).toInt32();
     216    QScriptValue arg = ctx->argument(0);
     217    if (arg.instanceOf(ctx->callee()))
     218        return cls->newInstance(qscriptvalue_cast<QByteArray>(arg));
     219    int size = arg.toInt32();
    228220    return cls->newInstance(size);
    229221}
     
    241233void ByteArrayClass::fromScriptValue(const QScriptValue &obj, QByteArray &ba)
    242234{
    243     ba = qscriptvalue_cast<QByteArray>(obj.data());
     235    ba = qvariant_cast<QByteArray>(obj.data().toVariant());
    244236}
    245237
     
    295287QScriptString ByteArrayClassPropertyIterator::name() const
    296288{
    297     return QScriptString();
     289    return object().engine()->toStringHandle(QString::number(m_last));
    298290}
    299291
Note: See TracChangeset for help on using the changeset viewer.