klineedit.h
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
00036 class QPopupMenu;
00037
00038 class KCompletionBox;
00039 class KURL;
00040
00136 class KLineEdit : public QLineEdit, public KCompletionBase
00137 {
00138 friend class KComboBox;
00139
00140 Q_OBJECT
00141 Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled )
00142 Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled )
00143
00144 public:
00145
00154 KLineEdit( const QString &string, QWidget *parent, const char *name = 0 );
00155
00163 KLineEdit ( QWidget *parent=0, const char *name=0 );
00164
00168 virtual ~KLineEdit ();
00169
00174 void setURL( const KURL& url );
00175
00185 void cursorAtEnd() { end( false ); }
00186
00195 virtual void setCompletionMode( KGlobalSettings::Completion mode );
00196
00211 virtual void setContextMenuEnabled( bool showMenu ) { m_bEnableMenu = showMenu; }
00212
00216 bool isContextMenuEnabled() const { return m_bEnableMenu; }
00217
00225 void setURLDropsEnabled( bool enable );
00226
00230 bool isURLDropsEnabled() const;
00231
00242 void setTrapReturnKey( bool trap );
00243
00250 bool trapReturnKey() const;
00251
00257 virtual bool eventFilter( QObject *, QEvent * );
00258
00267 KCompletionBox * completionBox( bool create = true );
00268
00272 virtual void setCompletionObject( KCompletion *, bool hsig = true );
00273
00277 virtual void copy() const;
00278
00279 signals:
00280
00285 void completionBoxActivated (const QString &);
00286
00294 void returnPressed( const QString& );
00295
00303 void completion( const QString& );
00304
00308 void substringCompletion( const QString& );
00309
00321 void textRotation( KCompletionBase::KeyBindingType );
00322
00327 void completionModeChanged( KGlobalSettings::Completion );
00328
00341 void aboutToShowContextMenu( QPopupMenu* );
00342
00343 public slots:
00344
00348 virtual void setReadOnly(bool);
00349
00360 void rotateText( KCompletionBase::KeyBindingType );
00361
00365 virtual void setCompletedText( const QString& );
00366
00371 void setCompletedItems( const QStringList& items );
00372
00377 virtual void clear();
00378
00384 void setSqueezedText( const QString &text);
00385
00386 protected slots:
00387
00392 virtual void makeCompletion( const QString& );
00393
00397 void slotAboutToShow() {}
00398
00402 void slotCancelled() {}
00403
00404 protected:
00405
00411 virtual void resizeEvent( QResizeEvent * );
00412
00418 virtual void keyPressEvent( QKeyEvent * );
00419
00425 virtual void mousePressEvent( QMouseEvent * );
00426
00432 virtual void mouseDoubleClickEvent( QMouseEvent * );
00433
00439 virtual QPopupMenu *createPopupMenu();
00440
00446 virtual void dropEvent( QDropEvent * );
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456 virtual void setCompletedText( const QString& , bool );
00457
00461 virtual void create( WId = 0, bool initializeWindow = true,
00462 bool destroyOldWindow = true );
00463
00464 private slots:
00465 void completionMenuActivated( int id );
00466 void tripleClickTimeout();
00467 void setTextWorkaround( const QString& text );
00468
00469 private:
00470
00471
00472
00473 enum MenuID {
00474 Default = 42,
00475 NoCompletion,
00476 AutoCompletion,
00477 ShellCompletion,
00478 PopupCompletion,
00479 SemiAutoCompletion
00480 };
00481
00485 void init();
00486
00490 void makeCompletionBox();
00491
00496 bool overrideAccel (const QKeyEvent* e);
00497
00498 bool m_bEnableMenu;
00499
00500 bool possibleTripleClick;
00501
00502 protected:
00503 virtual void virtual_hook( int id, void* data );
00504 private:
00505 class KLineEditPrivate;
00506 KLineEditPrivate *d;
00507 };
00508
00509 #endif
This file is part of the documentation for kdelibs Version 3.1.5.