// qstringlist.sip generated by MetaSIP on Fri Sep 28 17:07:47 2007 // // This file is part of the QtCore Python extension module. // // Copyright (c) 2007 // Phil Thompson // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 as published by // the Free Software Foundation and appearing in the file LICENSE included in the // packaging of this file. // // PyQt is supplied in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %ModuleCode #include %End class QStringList { %TypeHeaderCode #include %End %ConvertToTypeCode // Allow a Python list of QStrings whenever a QStringList is expected. if (sipIsErr == NULL) { if (sipCanConvertToInstance(sipPy, sipClass_QStringList, SIP_NO_CONVERTORS)) return 1; if (!PyList_Check(sipPy)) return 0; for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_QString, SIP_NOT_NONE)) return 0; return 1; } if (sipCanConvertToInstance(sipPy, sipClass_QStringList, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToInstance(sipPy, sipClass_QStringList, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } QStringList *sl = new QStringList; for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) { int state; QString *s = reinterpret_cast(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_QString, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); if (*sipIsErr) { sipReleaseInstance(s, sipClass_QString, state); delete sl; return 0; } sl->append(*s); sipReleaseInstance(s, sipClass_QString, state); } *sipCppPtr = sl; return sipGetState(sipTransferObj); %End public: QStringList(); explicit QStringList(const QString &i); QStringList(const QStringList &l); QStringList &operator<<(const QString &str); QStringList &operator<<(const QStringList &l); void sort(); QString join(const QString &sep) const; QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; QBool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); QStringList &replaceInStrings(const QRegExp &rx, const QString &after); QStringList filter(const QRegExp &rx) const; int indexOf(const QString &str, int from = 0) const; int indexOf(const QRegExp &rx, int from = 0) const; int lastIndexOf(const QString &str, int from = -1) const; int lastIndexOf(const QRegExp &rx, int from = -1) const; int __len__(); %MethodCode sipRes = sipCpp->count(); %End void __setitem__(int i, const QString &str); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QStringList &list); %MethodCode #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t len, start, stop, step, slicelength, i; #else int len, start, stop, step, slicelength, i; #endif len = sipCpp->count(); if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QStringList::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->removeAt(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t len, start, stop, step, slicelength, i; #else int len, start, stop, step, slicelength, i; #endif len = sipCpp->count(); if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->removeAt(start); start += step - 1; } %End QString operator[](int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipRes = new QString((*sipCpp)[a0]); %End QStringList operator[](SIP_PYSLICE slice); %MethodCode #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t len, start, stop, step, slicelength, i; #else int len, start, stop, step, slicelength, i; #endif len = sipCpp->count(); if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) sipIsErr = 1; else { sipRes = new QStringList(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QString &str); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End QStringList operator+(const QStringList &other) const; QStringList operator*(int by); %MethodCode sipRes = new QStringList(); while (a0-- > 0) *sipRes += *sipCpp; %End QStringList &operator*=(int by); %MethodCode QStringList orig(*sipCpp); sipCpp->clear(); while (a0-- > 0) *sipCpp += orig; %End bool operator==(const QStringList &other); bool operator!=(const QStringList &other); // Methods inherited from QList. // Keep this in sync with QItemSelection. void clear(); bool isEmpty() const; void append(const QString &str); void prepend(const QString &str); void insert(int i, const QString &str); void replace(int i, const QString &str); void removeAt(int i); int removeAll(const QString &str); QString takeAt(int i); QString takeFirst(); QString takeLast(); void move(int from, int to); void swap(int i, int j); int count(const QString &str) const; int count() const; QString &first(); QString &last(); QStringList mid(int pos, int length = -1) const; QStringList &operator+=(const QStringList &other); QStringList &operator+=(const QString &value); }; QDataStream &operator>>(QDataStream &in, QStringList &list /Constrained/); QDataStream &operator<<(QDataStream &out, const QStringList &list /Constrained/);