// // Copyright 2006 Jim Bublitz // Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson // may also apply // Generated by preSip // module kdecore 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 KCompletion : QObject { %TypeHeaderCode #include %End public: enum CompOrder { Sorted, Insertion, Weighted }; KCompletion (); virtual QString makeCompletion (const QString&); QStringList substringCompletion (const QString&) const; QString previousMatch (); QString nextMatch (); virtual const QString& lastMatch () const; QStringList items () const; %If ( KDE_3_3_0 - ) bool isEmpty () const; %End virtual void setCompletionMode (KGlobalSettings::Completion); KGlobalSettings::Completion completionMode () const; virtual void setOrder (KCompletion::CompOrder); CompOrder order () const; virtual void setIgnoreCase (bool); bool ignoreCase () const; QStringList allMatches (); QStringList allMatches (const QString&); //ig KCompletionMatches allWeightedMatches (); //ig KCompletionMatches allWeightedMatches (const QString&); virtual void setEnableSounds (bool); bool isSoundsEnabled () const; bool hasMultipleMatches () const; void enableSounds (); void disableSounds (); public slots: void slotMakeCompletion (const QString&); void slotPreviousMatch (); void slotNextMatch (); void insertItems (const QStringList&); virtual void setItems (const QStringList&); void addItem (const QString&); void addItem (const QString&, uint); void removeItem (const QString&); virtual void clear (); signals: void match (const QString&); void matches (const QStringList&); void multipleMatches (); protected: virtual void postProcessMatch (QString*); virtual void postProcessMatches (QStringList*); //ig virtual void postProcessMatches (KCompletionMatches*) const; protected: //igx virtual void virtual_hook (int, void*); }; // class KCompletion //ig class KCompletionMatches : KCompletionMatchesList; class KCompletionBase { %TypeHeaderCode #include %End public: enum KeyBindingType { TextCompletion, PrevCompletionMatch, NextCompletionMatch, SubstringCompletion }; typedef QMap KeyBindingMap; KCompletionBase (); KCompletion* completionObject (bool = 1); virtual void setCompletionObject (KCompletion*, bool = 1); virtual void setHandleSignals (bool); bool isCompletionObjectAutoDeleted () const; void setAutoDeleteCompletionObject (bool); void setEnableSignals (bool); bool handleSignals () const; bool emitSignals () const; virtual void setCompletionMode (KGlobalSettings::Completion); KGlobalSettings::Completion completionMode () const; bool setKeyBinding (KCompletionBase::KeyBindingType, const KShortcut&); const KShortcut& getKeyBinding (KCompletionBase::KeyBindingType) const; void useGlobalKeyBindings (); virtual void setCompletedText (const QString&) = 0; virtual void setCompletedItems (const QStringList&) = 0; KCompletion* compObj () const; protected: KCompletionBase::KeyBindingMap getKeyBindings () const; void setDelegate (KCompletionBase*); KCompletionBase* delegate () const; protected: //igx virtual void virtual_hook (int, void*); }; // class KCompletionBase //ig typedef KSortableValueList KCompletionMatchesList; %MappedType KCompletionBase::KeyBindingMap //converts a Python dict of int:KShortcut { %TypeHeaderCode #include %End %ConvertFromTypeCode if (!sipCpp) return PyDict_New(); PyObject *dict; // Create the dictionary. if ((dict = PyDict_New()) == NULL) return NULL; // Get it. const QMap map = *sipCpp; QMap::ConstIterator it; PyObject *key; PyObject *value; for (it = map.begin (); it != map.end (); ++it) { key = PyInt_FromLong ((int) it.key ()); value = sipConvertFromInstance ((void *)&(it.data ()), sipClass_KShortcut, sipTransferObj); if ((value == NULL) || (PyDict_SetItem (dict, key, value) < 0)) { Py_XDECREF (key); Py_XDECREF (value); Py_DECREF (dict); return NULL; } } return dict; %End %ConvertToTypeCode // Convert a Python dictionary to a KeyBindingMap on the heap. if (sipIsErr == NULL) return PyDict_Check(sipPy); QMap *kbmap = new QMap; PyObject *key, *value; SIP_SSIZE_T pos = 0; KShortcut *cValue; int iserr; while (PyDict_Next(sipPy, &pos, &key, &value)) { cValue = (KShortcut *)sipForceConvertToType(value, sipType_KShortcut, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); if (iserr || !PyInt_Check (key)) { *sipIsErr = 1; delete kbmap; return 0; } kbmap->insert ((KCompletionBase::KeyBindingType)PyInt_AS_LONG (key), *cValue); } *sipCppPtr = kbmap; return 1; %End };