1 /* 2 Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) 3 4 This library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Library General Public 6 License as published by the Free Software Foundation; either 7 version 2 of the License, or (at your option) any later version. 8 9 This library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Library General Public License for more details. 13 14 You should have received a copy of the GNU Library General Public License 15 along with this library; see the file COPYING.LIB. If not, write to 16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 Boston, MA 02110-1301, USA. 18 */ 19 20 #include "config.h" 21 22 #include "qscriptstring.h" 23 24 #include "qscriptstring_p.h" 25 #include <QtCore/qhash.h> 26 27 /*! 28 Constructs an invalid QScriptString. 29 */ 30 QScriptString::QScriptString() 31 : d_ptr(new QScriptStringPrivate()) 32 { 33 } 34 /*! 35 Constructs an QScriptString from internal representation 36 \internal 37 */ 38 QScriptString::QScriptString(QScriptStringPrivate* d) 39 : d_ptr(d) 40 { 41 } 42 43 /*! 44 Constructs a new QScriptString that is a copy of \a other. 45 */ 46 QScriptString::QScriptString(const QScriptString& other) 47 { 48 d_ptr = other.d_ptr; 49 } 50 51 /*! 52 Destroys this QScriptString. 53 */ 54 QScriptString::~QScriptString() 55 { 56 } 57 58 /*! 59 Assigns the \a other value to this QScriptString. 60 */ 61 QScriptString& QScriptString::operator=(const QScriptString& other) 62 { 63 d_ptr = other.d_ptr; 64 return *this; 65 } 66 67 /*! 68 Returns true if this QScriptString is valid; otherwise 69 returns false. 70 */ 71 bool QScriptString::isValid() const 72 { 73 return d_ptr->isValid(); 74 } 75 76 /*! 77 Returns true if this QScriptString is equal to \a other; 78 otherwise returns false. 79 */ 80 bool QScriptString::operator==(const QScriptString& other) const 81 { 82 return d_ptr == other.d_ptr || *d_ptr == *(other.d_ptr); 83 } 84 85 /*! 86 Returns true if this QScriptString is not equal to \a other; 87 otherwise returns false. 88 */ 89 bool QScriptString::operator!=(const QScriptString& other) const 90 { 91 return d_ptr != other.d_ptr || *d_ptr != *(other.d_ptr); 92 } 93 94 /*! 95 Attempts to convert this QScriptString to a QtScript array index, 96 and returns the result. 97 98 If a conversion error occurs, *\a{ok} is set to false; otherwise 99 *\a{ok} is set to true. 100 */ 101 quint32 QScriptString::toArrayIndex(bool* ok) const 102 { 103 return d_ptr->toArrayIndex(ok); 104 } 105 106 /*! 107 Returns the string that this QScriptString represents, or a 108 null string if this QScriptString is not valid. 109 110 \sa isValid() 111 */ 112 QString QScriptString::toString() const 113 { 114 return d_ptr->toString(); 115 } 116 117 /*! 118 Returns the string that this QScriptString represents, or a 119 null string if this QScriptString is not valid. 120 121 \sa toString() 122 */ 123 QScriptString::operator QString() const 124 { 125 return d_ptr->toString(); 126 } 127 128 uint qHash(const QScriptString& key) 129 { 130 return qHash(QScriptStringPrivate::get(key)->id()); 131 } 132