keditlistbox.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KEDITLISTBOX_H
00021 #define KEDITLISTBOX_H
00022
00023 #include <qgroupbox.h>
00024 #include <qlistbox.h>
00025
00026 #include <kdelibs_export.h>
00027
00028 class KLineEdit;
00029 class KComboBox;
00030 class QPushButton;
00031
00032 class KEditListBoxPrivate;
00044 class KDEUI_EXPORT KEditListBox : public QGroupBox
00045 {
00046 Q_OBJECT
00047
00048 Q_SETS( Button )
00049 Q_PROPERTY( Button buttons READ buttons WRITE setButtons )
00050 Q_PROPERTY( QStringList items READ items WRITE setItems )
00051
00052 public:
00058 class CustomEditor
00059 {
00060 public:
00061 KDEUI_EXPORT CustomEditor()
00062 : m_representationWidget( 0L ),
00063 m_lineEdit( 0L ) {}
00064 KDEUI_EXPORT CustomEditor( QWidget *repWidget, KLineEdit *edit )
00065 : m_representationWidget( repWidget ),
00066 m_lineEdit( edit ) {}
00067 KDEUI_EXPORT CustomEditor( KComboBox *combo );
00068
00069 KDEUI_EXPORT void setRepresentationWidget( QWidget *repWidget ) {
00070 m_representationWidget = repWidget;
00071 }
00072 KDEUI_EXPORT void setLineEdit( KLineEdit *edit ) {
00073 m_lineEdit = edit;
00074 }
00075
00076 KDEUI_EXPORT virtual QWidget *representationWidget() const {
00077 return m_representationWidget;
00078 }
00079 KDEUI_EXPORT virtual KLineEdit *lineEdit() const {
00080 return m_lineEdit;
00081 }
00082
00083 protected:
00084 QWidget *m_representationWidget;
00085 KLineEdit *m_lineEdit;
00086 };
00087
00088 public:
00089
00094 enum Button { Add = 1, Remove = 2, UpDown = 4 };
00095 enum { All = Add|Remove|UpDown };
00096
00109 KEditListBox(QWidget *parent = 0, const char *name = 0,
00110 bool checkAtEntering=false, int buttons = All );
00117 KEditListBox(const QString& title, QWidget *parent = 0,
00118 const char *name = 0, bool checkAtEntering=false,
00119 int buttons = All );
00120
00133 KEditListBox( const QString& title,
00134 const CustomEditor &customEditor,
00135 QWidget *parent = 0, const char *name = 0,
00136 bool checkAtEntering = false, int buttons = All );
00137
00138 virtual ~KEditListBox();
00139
00143 QListBox* listBox() const { return m_listBox; }
00147 KLineEdit* lineEdit() const { return m_lineEdit; }
00151 QPushButton* addButton() const { return servNewButton; }
00155 QPushButton* removeButton() const { return servRemoveButton; }
00159 QPushButton* upButton() const { return servUpButton; }
00163 QPushButton* downButton() const { return servDownButton; }
00164
00168 int count() const { return int(m_listBox->count()); }
00172 void insertStringList(const QStringList& list, int index=-1);
00176 void insertStrList(const QStrList* list, int index=-1);
00180 void insertStrList(const QStrList& list, int index=-1);
00184 void insertStrList(const char ** list, int numStrings=-1, int index=-1);
00188 void insertItem(const QString& text, int index=-1) {m_listBox->insertItem(text,index);}
00192 void clear();
00196 QString text(int index) const { return m_listBox->text(index); }
00200 int currentItem() const;
00204 QString currentText() const { return m_listBox->currentText(); }
00205
00209 QStringList items() const;
00210
00216 void setItems(const QStringList& items);
00217
00221 int buttons() const;
00222
00226 void setButtons( uint buttons );
00227
00228 signals:
00229 void changed();
00230
00236 void added( const QString & text );
00237
00243 void removed( const QString & text );
00244
00245 protected slots:
00246
00247 void moveItemUp();
00248 void moveItemDown();
00249 void addItem();
00250 void removeItem();
00251 void enableMoveButtons(int index);
00252 void typedSomething(const QString& text);
00253
00254 private:
00255 QListBox *m_listBox;
00256 QPushButton *servUpButton, *servDownButton;
00257 QPushButton *servNewButton, *servRemoveButton;
00258 KLineEdit *m_lineEdit;
00259
00260
00261 void init( bool checkAtEntering, int buttons,
00262 QWidget *representationWidget = 0L );
00263
00264 protected:
00265 virtual void virtual_hook( int id, void* data );
00266 private:
00267
00268 KEditListBoxPrivate* const d;
00269 };
00270
00271 #endif
This file is part of the documentation for kdeui Library Version 3.4.0.