You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pytqt/sip/qt/qdir.sip

384 lines
8.6 KiB

// 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
};