// // Copyright 2006 Jim Bublitz // Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson // may also apply // Generated by preSip // module kio 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. class KServiceType : KSycocaEntry { %TypeHeaderCode #include %End public: typedef TQValueList List; public: KServiceType (const TQString&, const TQString&, const TQString&, const TQString&); KServiceType (const TQString&); KServiceType (KDesktopFile*); KServiceType (TQDataStream&, int); TQString icon () const; TQString comment () const; TQString name () const; TQString desktopEntryPath () const; bool isDerived () const; TQString parentServiceType () const; %If ( KDE_3_1_0 - ) bool inherits (const TQString&) const; %End virtual TQVariant property (const TQString&) const; virtual TQStringList propertyNames () const; bool isValid () const; virtual TQVariant::Type propertyDef (const TQString&) const; virtual TQStringList propertyDefNames () const; virtual const TQMap& propertyDefs () const; virtual void save (TQDataStream&); virtual void load (TQDataStream&); %If ( KDE_3_2_0 - ) KServiceType::Ptr parentType (); void addService (KService::Ptr); KService::List services (); %End static KServiceType::Ptr serviceType (const TQString&); static KService::List offers (const TQString&); static KServiceType::List allServiceTypes (); protected: void init (KDesktopFile*); protected: protected: //igx virtual void virtual_hook (int, void*); }; // class KServiceType %MappedType KServiceType::Ptr //converts KServiceType { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Convert to a Python instance if (!sipCpp) return NULL; KServiceType::Ptr *cPtr = new KServiceType::Ptr (*(KServiceType::Ptr *)sipCpp); KServiceType *cpp = cPtr->data (); PyObject *obj = sipConvertFromInstance (cpp, sipClass_KServiceType, sipTransferObj); return obj; %End %ConvertToTypeCode // Convert a Python instance to a Ptr on the heap. if (sipIsErr == NULL) return sipCanConvertToType(sipPy, sipType_KServiceType, SIP_NO_CONVERTORS); int iserr = 0; KServiceType *cpp = (KServiceType *)sipConvertToType(sipPy, sipType_KServiceType, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); if (iserr) { *sipIsErr = 1; return 0; } *sipCppPtr = new KServiceType::Ptr (cpp); return 1; %End }; %MappedType TQMap //converts a Python dict of TQString:TQVariant { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Convert to a Python dict if (!sipCpp) return PyDict_New(); PyObject *dict; // Create the dictionary. if ((dict = PyDict_New()) == NULL) return NULL; // Get it. const TQMap cppmap = *sipCpp; TQMap::ConstIterator it; for (it = cppmap.begin (); it != cppmap.end (); ++it) { TQString acpp = it.key (); int bcpp = (int) it.data (); PyObject *ainst; PyObject *binst = PyInt_FromLong (bcpp); if (((ainst = sipConvertFromNewType(new TQString (acpp), sipType_TQString, sipTransferObj)) == 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 on the heap. if (sipIsErr == NULL) return PyDict_Check(sipPy); TQMap *cppmap = new TQMap; PyObject *aelem, *belem; SIP_SSIZE_T pos = 0; TQString *acpp; TQVariant::Type bcpp; while (PyDict_Next(sipPy, &pos, &aelem, &belem)) { int iserr = 0, acpp_state; acpp = (TQString *)sipForceConvertToType(aelem, sipType_TQString, sipTransferObj, SIP_NOT_NONE, &acpp_state, &iserr); if (iserr || !PyInt_Check(belem)) { if (acpp_state) sipReleaseType(acpp, sipType_TQString, acpp_state); *sipIsErr = 1; delete cppmap; return 0; } bcpp = (TQVariant::Type) PyInt_AS_LONG(belem); cppmap->insert (*acpp, bcpp); sipReleaseType(acpp, sipType_TQString, acpp_state); } *sipCppPtr = cppmap; return 1; %End }; %MappedType TQValueList //converts a Python list of KServiceType { %TypeHeaderCode #include %End %ConvertFromTypeCode // Convert to a Python list of Ptr (KServiceType). if (!sipCpp) return PyList_New (0); PyObject *plist; // Create the list if ((plist = PyList_New(0)) == NULL) return NULL; // Get it. TQValueList *cList = (TQValueList *)sipCpp; PyObject *inst; TDESharedPtr *svc; TQValueList::Iterator it; for( it = cList->begin(); it != cList->end(); ++it ) { TDESharedPtr svcptr = static_cast(*it); svc = &svcptr; inst = sipConvertFromType(svc, sipType_KServiceType_Ptr, sipTransferObj); if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) { Py_XDECREF (inst); Py_DECREF (plist); return NULL; } } return plist; %End %ConvertToTypeCode // Convert a Python list to List on the heap. if (sipIsErr == NULL) return PyList_Check(sipPy); TQValueList *cList = new TQValueList; PyObject *elem; KServiceType *service; int iserr = 0; for (int i = 0; i < PyList_Size (sipPy); i++) { elem = PyList_GET_ITEM (sipPy, i); service = (KServiceType *)sipForceConvertToType(elem, sipType_KServiceType, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); if (iserr) { *sipIsErr = 1; delete cList; return 0; } KServiceType::Ptr ptr(service); cList->append (ptr); } *sipCppPtr = cList; return 1; %End };