|
|
|
//
|
|
|
|
// Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
|
|
|
|
// Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
|
|
|
|
// may also apply
|
|
|
|
|
|
|
|
|
|
|
|
// Generated by preSip
|
|
|
|
// module tdecore version KDE 3.5.3
|
|
|
|
|
|
|
|
|
|
|
|
// This software 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 of
|
|
|
|
// the License, or (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This software is distributed 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 this library; see the file COPYING.
|
|
|
|
// If not, write to the Free Software Foundation, Inc.,
|
|
|
|
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
|
|
|
|
%ModuleHeaderCode
|
|
|
|
#include <kmacroexpander.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%If ( KDE_3_2_0 - )
|
|
|
|
|
|
|
|
class KMacroExpanderBase
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <kmacroexpander.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
KMacroExpanderBase (TQChar = '%');
|
|
|
|
void expandMacros (TQString&);
|
|
|
|
bool expandMacrosShellQuote (TQString&, uint& /In, Out/);
|
|
|
|
bool expandMacrosShellQuote (TQString&);
|
|
|
|
void setEscapeChar (TQChar);
|
|
|
|
TQChar escapeChar () const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual int expandPlainMacro (const TQString&, uint, TQStringList&);
|
|
|
|
virtual int expandEscapedMacro (const TQString&, uint, TQStringList&);
|
|
|
|
|
|
|
|
}; // class KMacroExpanderBase
|
|
|
|
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%If ( KDE_3_3_0 - )
|
|
|
|
|
|
|
|
class KWordMacroExpander : KMacroExpanderBase
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <kmacroexpander.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
KWordMacroExpander (TQChar = '%');
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual int expandPlainMacro (const TQString&, uint, TQStringList&);
|
|
|
|
virtual int expandEscapedMacro (const TQString&, uint, TQStringList&);
|
|
|
|
virtual bool expandMacro (const TQString&, TQStringList&) = 0;
|
|
|
|
|
|
|
|
}; // class KWordMacroExpander
|
|
|
|
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%If ( KDE_3_3_0 - )
|
|
|
|
|
|
|
|
class KCharMacroExpander : KMacroExpanderBase
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <kmacroexpander.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
KCharMacroExpander (TQChar = '%');
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual int expandPlainMacro (const TQString&, uint, TQStringList&);
|
|
|
|
virtual int expandEscapedMacro (const TQString&, uint, TQStringList&);
|
|
|
|
virtual bool expandMacro (TQChar, TQStringList&) = 0;
|
|
|
|
|
|
|
|
}; // class KCharMacroExpander
|
|
|
|
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%If ( KDE_3_2_0 - )
|
|
|
|
namespace KMacroExpander
|
|
|
|
{
|
|
|
|
TQString expandMacros (const TQString&, const TQMap<TQChar,TQString>&, TQChar = '%');
|
|
|
|
TQString expandMacrosShellQuote (const TQString&, const TQMap<TQChar,TQString>&, TQChar = '%');
|
|
|
|
TQString expandMacros (const TQString&, const TQMap<TQString,TQString>&, TQChar = '%');
|
|
|
|
TQString expandMacrosShellQuote (const TQString&, const TQMap<TQString,TQString>&, TQChar = '%');
|
|
|
|
TQString expandMacros (const TQString&, const TQMap<TQChar,TQStringList>&, TQChar = '%');
|
|
|
|
TQString expandMacros (const TQString&, const TQMap<TQString,TQStringList>&, TQChar = '%');
|
|
|
|
TQString expandMacrosShellQuote (const TQString&, const TQMap<TQChar,TQStringList>&, TQChar = '%');
|
|
|
|
TQString expandMacrosShellQuote (const TQString&, const TQMap<TQString,TQStringList>&, TQChar = '%');
|
|
|
|
}; // namespace KMacroExpander
|
|
|
|
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%MappedType TQMap<TQChar,TQString>
|
|
|
|
//converts a Python dict of TQChar:TQString
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qmap.h>
|
|
|
|
#include <qstring.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
%ConvertFromTypeCode
|
|
|
|
|
|
|
|
if (!sipCpp)
|
|
|
|
return PyDict_New();
|
|
|
|
|
|
|
|
PyObject *dict;
|
|
|
|
|
|
|
|
// Create the dictionary.
|
|
|
|
|
|
|
|
if ((dict = PyDict_New()) == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
// Get it.
|
|
|
|
|
|
|
|
const TQMap<TQChar,TQString> map = *sipCpp;
|
|
|
|
TQMap<TQChar,TQString>::ConstIterator it;
|
|
|
|
|
|
|
|
for (it = map.begin (); it != map.end (); ++it)
|
|
|
|
{
|
|
|
|
TQChar acpp = it.key ();
|
|
|
|
PyObject *binst = PyString_FromString ((char *)((TQString *)&it.data ()));
|
|
|
|
PyObject *ainst;
|
|
|
|
if (((ainst = sipConvertFromNewType(new TQChar(acpp), sipType_QChar, sipTransferObj)) == NULL)
|
|
|
|
|| (binst == NULL)
|
|
|
|
|| (PyDict_SetItem (dict, ainst, binst) < 0))
|
|
|
|
{
|
|
|
|
Py_XDECREF (ainst);
|
|
|
|
Py_XDECREF (binst);
|
|
|
|
Py_DECREF (dict);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return dict;
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%ConvertToTypeCode
|
|
|
|
// Convert a Python dictionary to a TQMap<TQChar, TQString>
|
|
|
|
|
|
|
|
if (sipIsErr == NULL)
|
|
|
|
return PyDict_Check(sipPy);
|
|
|
|
|
|
|
|
TQMap<TQChar,TQString> *map = new TQMap<TQChar,TQString>;
|
|
|
|
|
|
|
|
PyObject *key, *value;
|
|
|
|
SIP_SSIZE_T pos = 0;
|
|
|
|
TQChar *cKey;
|
|
|
|
TQString *sData;
|
|
|
|
|
|
|
|
while (PyDict_Next(sipPy, &pos, &key, &value))
|
|
|
|
{
|
|
|
|
int iserr = 0, cKey_state, sData_state;
|
|
|
|
|
|
|
|
cKey = (TQChar *)sipForceConvertToType(key, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &cKey_state, &iserr);
|
|
|
|
sData = (TQString *)sipForceConvertToType(value, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sData_state, &iserr);
|
|
|
|
|
|
|
|
if (iserr)
|
|
|
|
{
|
|
|
|
if (cKey)
|
|
|
|
sipReleaseType(cKey, sipType_QChar, cKey_state);
|
|
|
|
|
|
|
|
*sipIsErr = 1;
|
|
|
|
delete map;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
map->insert (*cKey, *sData);
|
|
|
|
|
|
|
|
sipReleaseType(cKey, sipType_QChar, cKey_state);
|
|
|
|
sipReleaseType(sData, sipType_QString, sData_state);
|
|
|
|
}
|
|
|
|
|
|
|
|
*sipCppPtr = map;
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
%MappedType TQMap<TQString,TQStringList>
|
|
|
|
//converts a Python dict of TQString:TQStringList
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qmap.h>
|
|
|
|
#include <qstring.h>
|
|
|
|
#include <qstringlist.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
%ConvertFromTypeCode
|
|
|
|
|
|
|
|
if (!sipCpp)
|
|
|
|
return PyDict_New();
|
|
|
|
|
|
|
|
PyObject *dict;
|
|
|
|
|
|
|
|
// Create the dictionary.
|
|
|
|
|
|
|
|
if ((dict = PyDict_New()) == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
// Get it.
|
|
|
|
|
|
|
|
const TQMap<TQString, TQStringList> map = *sipCpp;
|
|
|
|
TQMap<TQString, TQStringList>::ConstIterator it;
|
|
|
|
|
|
|
|
for (it = map.begin (); it != map.end (); ++it)
|
|
|
|
{
|
|
|
|
TQStringList bcpp = it.data ();
|
|
|
|
PyObject *ainst = PyString_FromString ((char *)((TQString *)&it.key ()));
|
|
|
|
PyObject *binst;
|
|
|
|
if (((binst = sipConvertFromNewType(new TQStringList(bcpp), sipType_QStringList, sipTransferObj)) == NULL)
|
|
|
|
|| (ainst == NULL)
|
|
|
|
|| (PyDict_SetItem (dict, ainst, binst) < 0))
|
|
|
|
{
|
|
|
|
Py_XDECREF (ainst);
|
|
|
|
Py_XDECREF (binst);
|
|
|
|
Py_DECREF (dict);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return dict;
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%ConvertToTypeCode
|
|
|
|
// Convert a Python dictionary to a TQMap<TQString, TQStringList> on the heap.
|
|
|
|
|
|
|
|
if (sipIsErr == NULL)
|
|
|
|
return PyDict_Check(sipPy);
|
|
|
|
|
|
|
|
TQMap<TQString, TQStringList> *map = new TQMap<TQString, TQStringList>;
|
|
|
|
|
|
|
|
PyObject *key, *value;
|
|
|
|
SIP_SSIZE_T pos = 0;
|
|
|
|
TQString *sKey;
|
|
|
|
TQStringList *slData;
|
|
|
|
|
|
|
|
while (PyDict_Next(sipPy, &pos, &key, &value))
|
|
|
|
{
|
|
|
|
int iserr = 0, sKey_state, slData_state;
|
|
|
|
|
|
|
|
sKey = (TQString *)sipForceConvertToType(key, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sKey_state, &iserr);
|
|
|
|
slData = (TQStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &slData_state, &iserr);
|
|
|
|
|
|
|
|
if (iserr)
|
|
|
|
{
|
|
|
|
if (sKey)
|
|
|
|
sipReleaseType(sKey, sipType_QString, sKey_state);
|
|
|
|
|
|
|
|
*sipIsErr = 1;
|
|
|
|
delete map;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
map->insert (*sKey, *slData);
|
|
|
|
|
|
|
|
sipReleaseType(sKey, sipType_QString, sKey_state);
|
|
|
|
sipReleaseType(slData, sipType_QStringList, slData_state);
|
|
|
|
}
|
|
|
|
|
|
|
|
*sipCppPtr = map;
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
%MappedType TQMap<TQChar,TQStringList>
|
|
|
|
//converts a Python dict of TQChar:TQStringList
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qmap.h>
|
|
|
|
#include <qstringlist.h>
|
|
|
|
#include <qstring.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
%ConvertFromTypeCode
|
|
|
|
|
|
|
|
if (!sipCpp)
|
|
|
|
return PyDict_New();
|
|
|
|
|
|
|
|
PyObject *dict;
|
|
|
|
|
|
|
|
// Create the dictionary.
|
|
|
|
|
|
|
|
if ((dict = PyDict_New()) == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
// Get it.
|
|
|
|
|
|
|
|
const TQMap<TQChar,TQStringList> map = *sipCpp;
|
|
|
|
TQMap<TQChar,TQStringList>::ConstIterator it;
|
|
|
|
|
|
|
|
for (it = map.begin (); it != map.end (); ++it)
|
|
|
|
{
|
|
|
|
TQChar acpp = it.key ();
|
|
|
|
TQStringList bcpp = it.data ();
|
|
|
|
PyObject *binst;
|
|
|
|
PyObject *ainst;
|
|
|
|
if (((ainst = sipConvertFromNewType(new TQChar(acpp), sipType_QChar, sipTransferObj)) == NULL)
|
|
|
|
|| (binst = sipConvertFromNewType(new TQStringList(bcpp), sipType_QStringList, sipTransferObj))
|
|
|
|
|| (PyDict_SetItem (dict, ainst, binst) < 0))
|
|
|
|
{
|
|
|
|
Py_XDECREF (ainst);
|
|
|
|
Py_XDECREF (binst);
|
|
|
|
Py_DECREF (dict);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return dict;
|
|
|
|
%End
|
|
|
|
|
|
|
|
|
|
|
|
%ConvertToTypeCode
|
|
|
|
// Convert a Python dictionary to a TQMap<TQChar, TQStringList> on the heap.
|
|
|
|
|
|
|
|
if (sipIsErr == NULL)
|
|
|
|
return PyDict_Check(sipPy);
|
|
|
|
|
|
|
|
TQMap<TQChar,TQStringList> *map = new TQMap<TQChar,TQStringList>;
|
|
|
|
|
|
|
|
PyObject *key, *value;
|
|
|
|
SIP_SSIZE_T pos = 0;
|
|
|
|
TQChar *cKey;
|
|
|
|
TQStringList *slData;
|
|
|
|
|
|
|
|
while (PyDict_Next(sipPy, &pos, &key, &value))
|
|
|
|
{
|
|
|
|
int iserr = 0, cKey_state, slData_state;
|
|
|
|
|
|
|
|
cKey = (TQChar *)sipForceConvertToType(key, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &cKey_state, &iserr);
|
|
|
|
slData = (TQStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &slData_state, &iserr);
|
|
|
|
|
|
|
|
if (iserr)
|
|
|
|
{
|
|
|
|
if (cKey)
|
|
|
|
sipReleaseType(cKey, sipType_QChar, cKey_state);
|
|
|
|
|
|
|
|
*sipIsErr = 1;
|
|
|
|
delete map;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
map->insert (*cKey, *slData);
|
|
|
|
|
|
|
|
sipReleaseType(cKey, sipType_QChar, cKey_state);
|
|
|
|
sipReleaseType(slData, sipType_QStringList, slData_state);
|
|
|
|
}
|
|
|
|
|
|
|
|
*sipCppPtr = map;
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
|
|
|