diff options
Diffstat (limited to 'python/pyqt/sip/qt/qdir.sip')
-rw-r--r-- | python/pyqt/sip/qt/qdir.sip | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/python/pyqt/sip/qt/qdir.sip b/python/pyqt/sip/qt/qdir.sip new file mode 100644 index 00000000..906e8051 --- /dev/null +++ b/python/pyqt/sip/qt/qdir.sip @@ -0,0 +1,384 @@ +// This is the SIP interface definition for QDir and QFileInfoList. +// +// Copyright (c) 2007 +// Riverbank Computing Limited <info@riverbankcomputing.co.uk> +// +// 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 as published by the Free +// Software Foundation; either version 2, or (at your option) any later +// version. +// +// 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. + + +%ExportedDoc +<Sect2><Title>QDir</Title> +<Para> +<Literal>QDir</Literal> is fully implemented, including the Python +<Literal>len</Literal>, <Literal>[]</Literal> (for reading slices and +individual elements), <Literal>==</Literal>, <Literal>!=</Literal> and +<Literal>in</Literal> operators +</Para> +</Sect2> + +<Sect2><Title>QFileInfoList</Title> +<Para> +This class isn't implemented. Whenever a <Literal>QFileInfoList</Literal> is +the return type of a function or the type of an argument, a Python list of +<Literal>QFileInfo</Literal> instances is used instead. +</Para> +</Sect2> +%End + + +%MappedType QFileInfoList +{ +%TypeHeaderCode +#include <qdir.h> +#include "sipqtQFileInfo.h" +%End + +%ConvertFromTypeCode + PyObject *pl; + QFileInfo *obj; + + // Convert the list. + + if ((pl = PyList_New(0)) == NULL) + return NULL; + + for (QFileInfoListIterator it(*sipCpp); (obj = it.current()) != NULL; ++it) + { + PyObject *inst; + + if ((inst = sipConvertFromInstance(obj,sipClass_QFileInfo,sipTransferObj)) == NULL || PyList_Append(pl,inst) < 0) + { + Py_XDECREF(inst); + Py_DECREF(pl); + + return NULL; + } + + Py_DECREF(inst); + } + + return pl; +%End + +%ConvertToTypeCode + // Convert a Python list of QFileInfo instances to a QFileInfoList on + // the heap. + + if (sipIsErr == NULL) + { + if (!PyList_Check(sipPy)) + return 0; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy,i),sipClass_QFileInfo,0)) + return 0; + + return 1; + } + + QFileInfoList *qfil = new QFileInfoList; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + { + QFileInfo *qfi; + + // We apply the transfer to the list itself, not the elements. + // Note that any temporary element will never be destroyed. + // There is nothing that can be done about this. + qfi = reinterpret_cast<QFileInfo *>(sipConvertToInstance(PyList_GET_ITEM(sipPy,i),sipClass_QFileInfo,0,0,0,sipIsErr)); + + if (*sipIsErr) + { + delete qfil; + return 0; + } + + qfil -> append(qfi); + } + + *sipCppPtr = qfil; + + return sipGetState(sipTransferObj); +%End +}; + + +class QDir +{ +%TypeHeaderCode +#include <qdir.h> +%End + +public: + enum FilterSpec { + Dirs, + Files, + Drives, + NoSymLinks, + All, + TypeMask, + + Readable, + Writable, + Executable, + RWEMask, + + Modified, + Hidden, + System, + AccessMask, + + DefaultFilter + }; + + enum SortSpec { + Name, + Time, + Size, + Unsorted, + SortByMask, + + DirsFirst, + Reversed, + IgnoreCase, + DefaultSort + }; + + QDir(); +%If (- Qt_2_00) + QDir(const char *,const char * = 0,int = Name | IgnoreCase,int = All); +%End +%If (Qt_2_00 -) + QDir(const QString &,const QString & = QString::null, + int = Name | IgnoreCase,int = All); +%End + QDir(const QDir &); + +%If (- Qt_2_00) + void setPath(const char *); + const char *path() const; + QString absPath() const; + QString canonicalPath() const; + + QString dirName() const; + QString filePath(const char *,bool = 1) const; + QString absFilePath(const char *,bool = 1) const; + + static QString convertSeparators(const char *); + + bool cd(const char *,bool = 1); + bool cdUp(); + + const char *nameFilter() const; + void setNameFilter(const char *); +%End +%If (Qt_2_00 -) + virtual void setPath(const QString &); + virtual QString path() const; + virtual QString absPath() const; + virtual QString canonicalPath() const; + + virtual QString dirName() const; + virtual QString filePath(const QString &,bool = 1) const; + virtual QString absFilePath(const QString &,bool = 1) const; + + static QString convertSeparators(const QString &); + + virtual bool cd(const QString &,bool = 1); + virtual bool cdUp(); + + QString nameFilter() const; + virtual void setNameFilter(const QString &); +%End + FilterSpec filter() const; +%If (- Qt_2_00) + void setFilter(int); +%End +%If (Qt_2_00 -) + virtual void setFilter(int); +%End + SortSpec sorting() const; +%If (- Qt_2_00) + void setSorting(int); +%End +%If (Qt_2_00 -) + virtual void setSorting(int); +%End + + bool matchAllDirs() const; +%If (- Qt_2_00) + void setMatchAllDirs(bool); +%End +%If (Qt_2_00 -) + virtual void setMatchAllDirs(bool); +%End + + uint count() const; + + int __len__() const; +%MethodCode + Py_BEGIN_ALLOW_THREADS + sipRes = sipCpp -> count(); + Py_END_ALLOW_THREADS +%End + + QString operator[](int) const; +%MethodCode + int len; + + Py_BEGIN_ALLOW_THREADS + len = sipCpp -> count(); + Py_END_ALLOW_THREADS + + if ((a0 = (int)sipConvertFromSequenceIndex(a0,len)) < 0) + sipIsErr = 1; + else + { + Py_BEGIN_ALLOW_THREADS + sipRes = new QString((*sipCpp)[a0]); + Py_END_ALLOW_THREADS + } +%End + + QStringList operator[](SIP_PYSLICE) const; +%MethodCode +#if PY_VERSION_HEX >= 0x02050000 + Py_ssize_t len, start, stop, step, slicelength, i; +#else + int len, start, stop, step, slicelength, i; +#endif + + Py_BEGIN_ALLOW_THREADS + len = sipCpp -> count(); + Py_END_ALLOW_THREADS + + if (sipConvertFromSliceObject(a0,len,&start,&stop,&step,&slicelength) < 0) + sipIsErr = 1; + else + { + Py_BEGIN_ALLOW_THREADS + sipRes = new QStringList(); + + for (i = 0; i < slicelength; ++i) + { + (*sipRes) += (*sipCpp)[start]; + start += step; + } + Py_END_ALLOW_THREADS + } +%End + + int __contains__(const QString &) const; +%MethodCode + Py_BEGIN_ALLOW_THREADS + sipRes = (sipCpp -> entryList().findIndex(*a0) >= 0); + Py_END_ALLOW_THREADS +%End + +%If (- Qt_2_00) + const QStrList *entryList(int = DefaultFilter,int = DefaultSort) const; + const QStrList *entryList(const char *,int = DefaultFilter, + int = DefaultSort) const; + const QFileInfoList *entryInfoList(int = DefaultFilter, + int = DefaultSort) const; + const QFileInfoList *entryInfoList(const char *,int = DefaultFilter, + int = DefaultSort) const; +%End +%If (Qt_2_00 -) + virtual QStrList encodedEntryList(int = DefaultFilter, + int = DefaultSort) const; + virtual QStrList encodedEntryList(const QString &,int = DefaultFilter, + int = DefaultSort) const; + virtual QStringList entryList(int = DefaultFilter, + int = DefaultSort) const; + virtual QStringList entryList(const QString &,int = DefaultFilter, + int = DefaultSort) const; + virtual const QFileInfoList *entryInfoList(int = DefaultFilter, + int = DefaultSort) const; + virtual const QFileInfoList *entryInfoList(const QString &, + int = DefaultFilter, + int = DefaultSort) const; +%End + + static const QFileInfoList *drives(); + +%If (- Qt_2_00) + bool mkdir(const char *,bool = 1) const; + bool rmdir(const char *,bool = 1) const; + + bool isReadable() const; + bool exists() const; + bool isRoot() const; + + bool isRelative() const; + void convertToAbs(); + + bool operator==(const QDir &) const; + bool operator!=(const QDir &) const; + + bool remove(const char *,bool = 1); + bool rename(const char *,const char *,bool = 1); + bool exists(const char *,bool = 1); +%End +%If (Qt_2_00 -) + virtual bool mkdir(const QString &,bool = 1) const; + virtual bool rmdir(const QString &,bool = 1) const; + + virtual bool isReadable() const; + virtual bool exists() const; + virtual bool isRoot() const; + + virtual bool isRelative() const; + virtual void convertToAbs(); + + virtual bool remove(const QString &,bool = 1); + virtual bool rename(const QString &,const QString &,bool = 1); + virtual bool exists(const QString &,bool = 1); +%End + + static char separator(); + +%If (- Qt_2_00) + static bool setCurrent(const char *); +%End +%If (Qt_2_00 -) + static bool setCurrent(const QString &); +%End + static QDir current(); + static QDir home(); + static QDir root(); + static QString currentDirPath(); + static QString homeDirPath(); + static QString rootDirPath(); + +%If (- Qt_2_00) + static bool match(const char *,const char *); + static QString cleanDirPath(const char *); + static bool isRelativePath(const char *); +%End +%If (Qt_2_1_0 -) + static bool match(const QStringList &,const QString &); +%End +%If (Qt_2_00 -) + static bool match(const QString &,const QString &); + static QString cleanDirPath(const QString &); + static bool isRelativePath(const QString &); +%End +%If (Qt_3_1_0 -) + void refresh() const; +%End +}; |