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.
228 lines
6.7 KiB
228 lines
6.7 KiB
13 years ago
|
//
|
||
|
// Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
|
||
|
// Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
|
||
|
// may also apply
|
||
|
|
||
|
|
||
|
// Generated by preSip
|
||
13 years ago
|
// module tdecore version KDE 3.5.3
|
||
13 years ago
|
|
||
|
|
||
|
// 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 <kcompletion.h>
|
||
|
%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 <kcompletion.h>
|
||
|
%End
|
||
|
|
||
|
|
||
|
public:
|
||
|
|
||
|
enum KeyBindingType
|
||
|
{
|
||
|
TextCompletion,
|
||
|
PrevCompletionMatch,
|
||
|
NextCompletionMatch,
|
||
|
SubstringCompletion
|
||
|
};
|
||
|
|
||
|
typedef QMap<KCompletionBase::KeyBindingType,KShortcut> 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<QString> KCompletionMatchesList;
|
||
|
|
||
|
|
||
|
%MappedType KCompletionBase::KeyBindingMap
|
||
|
//converts a Python dict of int:KShortcut
|
||
|
{
|
||
|
%TypeHeaderCode
|
||
|
#include <kcompletion.h>
|
||
|
%End
|
||
|
%ConvertFromTypeCode
|
||
|
|
||
|
if (!sipCpp)
|
||
|
return PyDict_New();
|
||
|
|
||
|
PyObject *dict;
|
||
|
|
||
|
// Create the dictionary.
|
||
|
|
||
|
if ((dict = PyDict_New()) == NULL)
|
||
|
return NULL;
|
||
|
|
||
|
// Get it.
|
||
|
|
||
|
const QMap<KCompletionBase::KeyBindingType,KShortcut> map = *sipCpp;
|
||
|
QMap<KCompletionBase::KeyBindingType,KShortcut>::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<KCompletionBase::KeyBindingType,KShortcut> *kbmap = new QMap<KCompletionBase::KeyBindingType,KShortcut>;
|
||
|
|
||
|
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
|
||
|
};
|
||
|
|
||
|
|