00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
#ifndef _KLINEEDIT_H
00031
#define _KLINEEDIT_H
00032
00033
#include <qlineedit.h>
00034
#include <kcompletion.h>
00035
#include <kdemacros.h>
00036
00037
class QPopupMenu;
00038
00039
class KCompletionBox;
00040
class KURL;
00041
00146 class KLineEdit :
public QLineEdit,
public KCompletionBase
00147 {
00148
friend class KComboBox;
00149
00150 Q_OBJECT
00151 Q_PROPERTY(
bool contextMenuEnabled READ
isContextMenuEnabled WRITE
setContextMenuEnabled )
00152 Q_PROPERTY(
bool urlDropsEnabled READ
isURLDropsEnabled WRITE
setURLDropsEnabled )
00153 Q_PROPERTY(
bool trapEnterKeyEvent READ
trapReturnKey WRITE
setTrapReturnKey )
00154 Q_PROPERTY(
bool enableSqueezedText READ
isSqueezedTextEnabled WRITE
setEnableSqueezedText )
00155
00156
public:
00157
00166
KLineEdit(
const QString &string,
QWidget *parent,
const char *name = 0 );
00167
00174
KLineEdit (
QWidget *parent=0,
const char *name=0 );
00175
00179
virtual ~KLineEdit ();
00180
00185
void setURL(
const KURL& url );
00186
00196 void cursorAtEnd() { end(
false ); }
00197
00206
virtual void setCompletionMode( KGlobalSettings::Completion mode );
00207
00222 virtual void setContextMenuEnabled(
bool showMenu ) { m_bEnableMenu = showMenu; }
00223
00227 bool isContextMenuEnabled()
const {
return m_bEnableMenu; }
00228
00236
void setURLDropsEnabled(
bool enable );
00237
00241
bool isURLDropsEnabled() const;
00242
00253
void setTrapReturnKey(
bool trap );
00254
00261
bool trapReturnKey() const;
00262
00267 virtual
bool eventFilter(
QObject *,
QEvent * );
00268
00277
KCompletionBox * completionBox(
bool create = true );
00278
00282 virtual
void setCompletionObject(
KCompletion *,
bool hsig = true );
00283
00287 virtual
void copy() const;
00288
00299
void setEnableSqueezedText(
bool enable );
00300
00307
bool isSqueezedTextEnabled() const;
00308
00316
QString originalText() const;
00317
00318 signals:
00319
00324
void completionBoxActivated (const
QString &);
00325
00333
void returnPressed( const QString& );
00334
00342
void completion( const QString& );
00343
00347
void substringCompletion( const QString& );
00348
00360
void textRotation(
KCompletionBase::KeyBindingType );
00361
00366
void completionModeChanged(
KGlobalSettings::Completion );
00367
00380
void aboutToShowContextMenu(
QPopupMenu * p );
00381
00382 public slots:
00383
00387 virtual
void setReadOnly(
bool);
00388
00399
void rotateText(
KCompletionBase::KeyBindingType type );
00400
00404 virtual
void setCompletedText( const QString& );
00405
00412
void setCompletedItems( const
QStringList& items );
00413
00424
void setCompletedItems( const
QStringList& items,
bool autoSuggest );
00425
00430 virtual
void clear();
00431
00437
void setSqueezedText( const QString &text);
00438
00442 virtual
void setText ( const QString& );
00443
00444
00445 protected slots:
00446
00451 virtual
void makeCompletion( const QString& );
00452
00456 void slotAboutToShow() {}
00457
00461 void slotCancelled() {}
00462
00468
void userCancelled(
const QString & cancelText);
00469
00470
protected:
00471
00477
virtual void resizeEvent(
QResizeEvent * );
00478
00484
virtual void keyPressEvent(
QKeyEvent * );
00485
00491
virtual void mousePressEvent(
QMouseEvent * );
00492
00498
virtual void mouseDoubleClickEvent(
QMouseEvent * );
00499
00505
virtual QPopupMenu *
createPopupMenu();
00506
00512
virtual void dropEvent(
QDropEvent * );
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
virtual void setCompletedText(
const QString& ,
bool );
00523
00524
00529
void setUserSelection(
bool userSelection );
00530
00534
virtual void create( WId = 0,
bool initializeWindow =
true,
00535
bool destroyOldWindow =
true );
00536
00537
private slots:
00538
void completionMenuActivated(
int id );
00539
void tripleClickTimeout();
00540
void slotRestoreSelectionColors();
00541
void setTextWorkaround(
const QString& text );
00542
00543
private:
00544
00545
00546
enum MenuID
00547 {
00548 Default = 42,
00549 NoCompletion,
00550 AutoCompletion,
00551 ShellCompletion,
00552 PopupCompletion,
00553 ShortAutoCompletion,
00554 PopupAutoCompletion
00555 };
00556
00560
void init();
00561
00565
void makeCompletionBox();
00566
00571
bool overrideAccel (
const QKeyEvent* e);
00572
00577
void setSqueezedText ();
00578
00579
bool m_bEnableMenu;
00580
00581
bool possibleTripleClick;
00582
00583
protected:
00584
virtual void virtual_hook(
int id,
void* data );
00585
private:
00586
class KLineEditPrivate;
00587 KLineEditPrivate *d;
00588 };
00589
00590
#endif