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
00142 class KLineEdit :
public QLineEdit,
public KCompletionBase
00143 {
00144
friend class KComboBox;
00145
00146 Q_OBJECT
00147 Q_PROPERTY(
bool contextMenuEnabled READ
isContextMenuEnabled WRITE
setContextMenuEnabled )
00148 Q_PROPERTY(
bool urlDropsEnabled READ
isURLDropsEnabled WRITE
setURLDropsEnabled )
00149 Q_PROPERTY(
bool trapEnterKeyEvent READ
trapReturnKey WRITE
setTrapReturnKey )
00150 Q_PROPERTY(
bool enableSqueezedText READ
isSqueezedTextEnabled WRITE
setEnableSqueezedText )
00151
00152
public:
00153
00162
KLineEdit(
const QString &string,
QWidget *parent,
const char *name = 0 );
00163
00170
KLineEdit (
QWidget *parent=0,
const char *name=0 );
00171
00175
virtual ~KLineEdit ();
00176
00181
void setURL(
const KURL& url );
00182
00192 void cursorAtEnd() { end(
false ); }
00193
00202
virtual void setCompletionMode( KGlobalSettings::Completion mode );
00203
00218 virtual void setContextMenuEnabled(
bool showMenu ) { m_bEnableMenu = showMenu; }
00219
00223 bool isContextMenuEnabled()
const {
return m_bEnableMenu; }
00224
00232
void setURLDropsEnabled(
bool enable );
00233
00237
bool isURLDropsEnabled() const;
00238
00249
void setTrapReturnKey(
bool trap );
00250
00257
bool trapReturnKey() const;
00258
00263 virtual
bool eventFilter(
QObject *,
QEvent * );
00264
00273
KCompletionBox * completionBox(
bool create = true );
00274
00278 virtual
void setCompletionObject(
KCompletion *,
bool hsig = true );
00279
00283 virtual
void copy() const;
00284
00295
void setEnableSqueezedText(
bool enable );
00296
00302
bool isSqueezedTextEnabled() const;
00303
00311
QString originalText() const;
00312
00313 signals:
00314
00319
void completionBoxActivated (const
QString &);
00320
00328
void returnPressed( const QString& );
00329
00337
void completion( const QString& );
00338
00342
void substringCompletion( const QString& );
00343
00355
void textRotation(
KCompletionBase::KeyBindingType );
00356
00361
void completionModeChanged(
KGlobalSettings::Completion );
00362
00375
void aboutToShowContextMenu(
QPopupMenu * p );
00376
00377 public slots:
00378
00382 virtual
void setReadOnly(
bool);
00383
00394
void rotateText(
KCompletionBase::KeyBindingType type );
00395
00399 virtual
void setCompletedText( const QString& );
00400
00405
void setCompletedItems( const
QStringList& items );
00406
00411 virtual
void clear();
00412
00418
void setSqueezedText( const QString &text);
00419
00423 virtual
void setText ( const QString& );
00424
00425
00426 protected slots:
00427
00432 virtual
void makeCompletion( const QString& );
00433
00437 void slotAboutToShow() {}
00438
00442 void slotCancelled() {}
00443
00449
void userCancelled(
const QString & cancelText);
00450
00451
protected:
00452
00458
virtual void resizeEvent(
QResizeEvent * );
00459
00465
virtual void keyPressEvent(
QKeyEvent * );
00466
00472
virtual void mousePressEvent(
QMouseEvent * );
00473
00479
virtual void mouseDoubleClickEvent(
QMouseEvent * );
00480
00486
virtual QPopupMenu *
createPopupMenu();
00487
00493
virtual void dropEvent(
QDropEvent * );
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503
virtual void setCompletedText(
const QString& ,
bool );
00504
00505
00510
void setUserSelection(
bool userSelection );
00511
00515
virtual void create( WId = 0,
bool initializeWindow =
true,
00516
bool destroyOldWindow =
true );
00517
00518
private slots:
00519
void completionMenuActivated(
int id );
00520
void tripleClickTimeout();
00521
void slotRestoreSelectionColors();
00522
void setTextWorkaround(
const QString& text );
00523
00524
private:
00525
00526
00527
enum MenuID
00528 {
00529 Default = 42,
00530 NoCompletion,
00531 AutoCompletion,
00532 ShellCompletion,
00533 PopupCompletion,
00534 ShortAutoCompletion,
00535 PopupAutoCompletion
00536 };
00537
00541
void init();
00542
00546
void makeCompletionBox();
00547
00552
bool overrideAccel (
const QKeyEvent* e);
00553
00558
void setSqueezedText ();
00559
00560
bool m_bEnableMenu;
00561
00562
bool possibleTripleClick;
00563
00564
protected:
00565
virtual void virtual_hook(
int id,
void* data );
00566
private:
00567
class KLineEditPrivate;
00568 KLineEditPrivate *d;
00569 };
00570
00571
#endif