21 #include <QtCore/QMap>
22 #include <QtCore/QObject>
26 class KCompletionBasePrivate
29 KCompletionBasePrivate()
35 ~KCompletionBasePrivate()
37 if( m_bAutoDelCompObj && m_pCompObj )
44 bool m_bAutoDelCompObj;
47 bool m_bHandleSignals;
53 QPointer<KCompletion> m_pCompObj;
61 : d( new KCompletionBasePrivate )
70 setup(
false,
true,
false );
83 delegate->d->m_bAutoDelCompObj = d->m_bAutoDelCompObj;
84 delegate->d->m_bHandleSignals = d->m_bHandleSignals;
85 delegate->d->m_bEmitSignals = d->m_bEmitSignals;
86 delegate->d->m_iCompletionMode = d->m_iCompletionMode;
87 delegate->d->m_keyMap = d->m_keyMap;
99 return d->m_delegate->completionObject( hsig );
101 if ( !d->m_pCompObj )
104 d->m_bAutoDelCompObj =
true;
106 return d->m_pCompObj;
111 if ( d->m_delegate ) {
112 d->m_delegate->setCompletionObject( compObj, hsig );
116 if ( d->m_bAutoDelCompObj && compObj != d->m_pCompObj )
117 delete d->m_pCompObj;
123 setup(
false, hsig, !d->m_pCompObj.isNull() );
130 d->m_delegate->setHandleSignals( handle );
132 d->m_bHandleSignals = handle;
137 return d->m_delegate ? d->m_delegate->isCompletionObjectAutoDeleted()
138 : d->m_bAutoDelCompObj;
144 d->m_delegate->setAutoDeleteCompletionObject( autoDelete );
146 d->m_bAutoDelCompObj = autoDelete;
152 d->m_delegate->setEnableSignals( enable );
154 d->m_bEmitSignals = enable;
159 return d->m_delegate ? d->m_delegate->handleSignals() : d->m_bHandleSignals;
164 return d->m_delegate ? d->m_delegate->emitSignals() : d->m_bEmitSignals;
169 if ( d->m_delegate ) {
170 d->m_delegate->setCompletionMode( mode );
174 d->m_iCompletionMode = mode;
178 d->m_pCompObj->setCompletionMode( d->m_iCompletionMode );
183 return d->m_delegate ? d->m_delegate->completionMode() : d->m_iCompletionMode;
189 return d->m_delegate->setKeyBinding( item, cut );
194 for( KeyBindingMap::Iterator it = d->m_keyMap.begin(); it != d->m_keyMap.end(); ++it )
195 if( it.value() ==
cut )
return false;
197 d->m_keyMap.insert( item, cut );
203 return d->m_delegate ? d->m_delegate->getKeyBinding( item ) : d->m_keyMap[ item ];
208 if ( d->m_delegate ) {
209 d->m_delegate->useGlobalKeyBindings();
222 return d->m_delegate ? d->m_delegate->compObj()
228 return d->m_delegate ? d->m_delegate->getKeyBindings() : d->m_keyMap;
231 void KCompletionBase::setup(
bool autodel,
bool hsig,
bool esig )
233 if ( d->m_delegate ) {
234 d->m_delegate->setup( autodel, hsig, esig );
238 d->m_bAutoDelCompObj = autodel;
239 d->m_bHandleSignals = hsig;
240 d->m_bEmitSignals = esig;