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
00031
00032
00033 #ifndef OLINEEDIT_H
00034 #define OLINEEDIT_H
00035
00036
00037
00038 #include <qlineedit.h>
00039
00040
00041
00042 #include <opie2/ocompletion.h>
00043 #include <opie2/ocompletionbase.h>
00044
00045 class QPopupMenu;
00046
00047 class OCompletionBox;
00048 typedef QString KURL;
00049
00150 class OLineEdit : public QLineEdit, public OCompletionBase
00151 {
00152 friend class OComboBox;
00153
00154 Q_OBJECT
00155 Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled )
00156 Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled )
00157
00158 public:
00159
00168 OLineEdit( const QString &string, QWidget *parent, const char *name = 0 );
00169
00177 OLineEdit ( QWidget *parent=0, const char *name=0 );
00178
00182 virtual ~OLineEdit ();
00183
00188 void setURL( const KURL& url );
00189
00199 void cursorAtEnd() { end( false ); }
00200
00209 virtual void setCompletionMode( OGlobalSettings::Completion mode );
00210
00225 virtual void setContextMenuEnabled( bool showMenu ) { m_bEnableMenu = showMenu; }
00226
00230 bool isContextMenuEnabled() const { return m_bEnableMenu; }
00231
00239 void setURLDropsEnabled( bool enable );
00240
00244 bool isURLDropsEnabled() const;
00245
00256 void setTrapReturnKey( bool trap );
00257
00264 bool trapReturnKey() const;
00265
00271 virtual bool eventFilter( QObject *, QEvent * );
00272
00281 OCompletionBox * completionBox( bool create = true );
00282
00286 virtual void setCompletionObject( OCompletion *, bool hsig = true );
00287
00288
00289 signals:
00290
00298 void returnPressed( const QString& );
00299
00307 void completion( const QString& );
00308
00312 void substringCompletion( const QString& );
00313
00325 void textRotation( OCompletionBase::KeyBindingType );
00326
00331 void completionModeChanged( OGlobalSettings::Completion );
00332
00345 void aboutToShowContextMenu( QPopupMenu* );
00346
00347 public slots:
00348
00352 virtual void setReadOnly(bool);
00353
00364 void rotateText( OCompletionBase::KeyBindingType );
00365
00369 virtual void setCompletedText( const QString& );
00370
00375 void setCompletedItems( const QStringList& items );
00376
00381 virtual void clear();
00382
00383 protected slots:
00384
00389 virtual void makeCompletion( const QString& );
00390
00394 void slotAboutToShow() {}
00395
00399 void slotCancelled() {}
00400
00401 protected:
00402
00408 virtual void keyPressEvent( QKeyEvent * );
00409
00415 virtual void mousePressEvent( QMouseEvent * );
00416
00422 virtual void mouseDoubleClickEvent( QMouseEvent * );
00423
00429 virtual QPopupMenu *createPopupMenu();
00430
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446 virtual void setCompletedText( const QString& , bool );
00447
00451 virtual void create( WId = 0, bool initializeWindow = true,
00452 bool destroyOldWindow = true );
00453
00454 private slots:
00455 void completionMenuActivated( int id );
00456 void tripleClickTimeout();
00457
00458 private:
00459
00460
00461
00462 enum MenuID {
00463 Default = 42,
00464 NoCompletion,
00465 AutoCompletion,
00466 ShellCompletion,
00467 PopupCompletion,
00468 SemiAutoCompletion
00469 };
00470
00474 void init();
00475
00479 void makeCompletionBox();
00480
00485
00486
00487 bool m_bEnableMenu;
00488
00489 bool possibleTripleClick;
00490
00491 protected:
00492
00493 private:
00494 class OLineEditPrivate;
00495 OLineEditPrivate *d;
00496 };
00497
00498 #endif