diff options
Diffstat (limited to 'sip/qt/qdir.sip')
| -rw-r--r-- | sip/qt/qdir.sip | 383 | 
1 files changed, 383 insertions, 0 deletions
diff --git a/sip/qt/qdir.sip b/sip/qt/qdir.sip new file mode 100644 index 0000000..93a1f3c --- /dev/null +++ b/sip/qt/qdir.sip @@ -0,0 +1,383 @@ +// 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> +%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 +};  | 
