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/tqt/tqdir.sip

293 lines
6.7 KiB

// This is the SIP interface definition for TQDir and TQFileInfoList.
//
// Copyright (c) 2007
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
//
// This file is part of PyTQt.
//
// This copy of PyTQt 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.
//
// PyTQt 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
// PyTQt; 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>TQDir</Title>
<Para>
<Literal>TQDir</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>TQFileInfoList</Title>
<Para>
This class isn't implemented. Whenever a <Literal>TQFileInfoList</Literal> is
the return type of a function or the type of an argument, a Python list of
<Literal>TQFileInfo</Literal> instances is used instead.
</Para>
</Sect2>
%End
%MappedType TQFileInfoList
{
%TypeHeaderCode
#include <tqdir.h>
%End
%ConvertFromTypeCode
PyObject *pl;
TQFileInfo *obj;
// Convert the list.
if ((pl = PyList_New(0)) == NULL)
return NULL;
for (TQFileInfoListIterator it(*sipCpp); (obj = it.current()) != NULL; ++it)
{
PyObject *inst;
if ((inst = sipConvertFromInstance(obj,sipClass_TQFileInfo,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 TQFileInfo instances to a TQFileInfoList 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_TQFileInfo,0))
return 0;
return 1;
}
TQFileInfoList *tqfil = new TQFileInfoList;
for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
{
TQFileInfo *tqfi;
// 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.
tqfi = reinterpret_cast<TQFileInfo *>(sipConvertToInstance(PyList_GET_ITEM(sipPy,i),sipClass_TQFileInfo,0,0,0,sipIsErr));
if (*sipIsErr)
{
delete tqfil;
return 0;
}
tqfil -> append(tqfi);
}
*sipCppPtr = tqfil;
return sipGetState(sipTransferObj);
%End
};
class TQDir
{
%TypeHeaderCode
#include <tqdir.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
};
TQDir();
TQDir(const TQString &,const TQString & = TQString::null,
int = Name | IgnoreCase,int = All);
TQDir(const TQDir &);
virtual void setPath(const TQString &);
virtual TQString path() const;
virtual TQString absPath() const;
virtual TQString canonicalPath() const;
virtual TQString dirName() const;
virtual TQString filePath(const TQString &,bool = 1) const;
virtual TQString absFilePath(const TQString &,bool = 1) const;
static TQString convertSeparators(const TQString &);
virtual bool cd(const TQString &,bool = 1);
virtual bool cdUp();
TQString nameFilter() const;
virtual void setNameFilter(const TQString &);
FilterSpec filter() const;
virtual void setFilter(int);
SortSpec sorting() const;
virtual void setSorting(int);
bool matchAllDirs() const;
virtual void setMatchAllDirs(bool);
uint count() const;
int __len__() const;
%MethodCode
Py_BEGIN_ALLOW_THREADS
sipRes = sipCpp -> count();
Py_END_ALLOW_THREADS
%End
TQString 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 TQString((*sipCpp)[a0]);
Py_END_ALLOW_THREADS
}
%End
TQStringList operator[](SIP_PYSLICE) const;
%MethodCode
Py_ssize_t len, start, stop, step, slicelength, i;
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 TQStringList();
for (i = 0; i < slicelength; ++i)
{
(*sipRes) += (*sipCpp)[start];
start += step;
}
Py_END_ALLOW_THREADS
}
%End
int __contains__(const TQString &) const;
%MethodCode
Py_BEGIN_ALLOW_THREADS
sipRes = (sipCpp -> entryList().findIndex(*a0) >= 0);
Py_END_ALLOW_THREADS
%End
virtual TQStrList encodedEntryList(int = DefaultFilter,
int = DefaultSort) const;
virtual TQStrList encodedEntryList(const TQString &,int = DefaultFilter,
int = DefaultSort) const;
virtual TQStringList entryList(int = DefaultFilter,
int = DefaultSort) const;
virtual TQStringList entryList(const TQString &,int = DefaultFilter,
int = DefaultSort) const;
virtual const TQFileInfoList *entryInfoList(int = DefaultFilter,
int = DefaultSort) const;
virtual const TQFileInfoList *entryInfoList(const TQString &,
int = DefaultFilter,
int = DefaultSort) const;
static const TQFileInfoList *drives();
virtual bool mkdir(const TQString &,bool = 1) const;
virtual bool rmdir(const TQString &,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 TQString &,bool = 1);
virtual bool rename(const TQString &,const TQString &,bool = 1);
virtual bool exists(const TQString &,bool = 1);
static char separator();
static bool setCurrent(const TQString &);
static TQDir current();
static TQDir home();
static TQDir root();
static TQString currentDirPath();
static TQString homeDirPath();
static TQString rootDirPath();
static bool match(const TQStringList &,const TQString &);
static bool match(const TQString &,const TQString &);
static TQString cleanDirPath(const TQString &);
static bool isRelativePath(const TQString &);
void refresh() const;
};