-rw-r--r-- | library/menubutton.cpp | 71 | ||||
-rw-r--r-- | library/menubutton.h | 6 |
2 files changed, 60 insertions, 17 deletions
diff --git a/library/menubutton.cpp b/library/menubutton.cpp index 007761f..4357460 100644 --- a/library/menubutton.cpp +++ b/library/menubutton.cpp @@ -66,8 +66,9 @@ */ MenuButton::MenuButton( const QStringList& items, QWidget* parent, const char* name) : QPushButton(parent,name) { + useLabel = true; init(); insertItems(items); } @@ -97,10 +98,10 @@ void MenuButton::init() Removes all the menu items from the button and menu. */ void MenuButton::clear() { - delete pop; - init(); + delete pop; + init(); } /*! A menu item is created (see insertItem()) for each string in the \a @@ -110,12 +111,12 @@ void MenuButton::clear() void MenuButton::insertItems( const QStringList& items ) { QStringList::ConstIterator it=items.begin(); for (; it!=items.end(); ++it) { - if ( (*it) == "--" ) - insertSeparator(); - else - insertItem(*it); + if ( (*it) == "--" ) + insertSeparator(); + else + insertItem(*it); } } /*! @@ -126,9 +127,9 @@ void MenuButton::insertItems( const QStringList& items ) */ void MenuButton::insertItem( const QIconSet& icon, const QString& text ) { pop->insertItem(icon, text, nitems++); - if ( nitems==1 ) select(0); +// if ( nitems==1 ) select(0); } /*! \overload @@ -138,9 +139,9 @@ void MenuButton::insertItem( const QIconSet& icon, const QString& text ) */ void MenuButton::insertItem( const QString& text ) { pop->insertItem(text, nitems++); - if ( nitems==1 ) select(0); +// if ( nitems==1 ) select(0); } /*! Inserts a separator into the menu. @@ -157,12 +158,12 @@ void MenuButton::insertSeparator() */ void MenuButton::select(const QString& s) { for (int i=0; i<nitems; i++) { - if ( pop->text(i) == s ) { - select(i); - break; - } + if ( pop->text(i) == s ) { + select(i); + break; + } } } /*! @@ -173,9 +174,9 @@ void MenuButton::select(int s) { cur = s; updateLabel(); if ( pop->iconSet(cur) ) - setIconSet(*pop->iconSet(cur)); + setIconSet(*pop->iconSet(cur)); emit selected(cur); emit selected(currentText()); } @@ -207,10 +208,46 @@ void MenuButton::setLabel(const QString& label) } void MenuButton::updateLabel() { - QString t = pop->text(cur); - if ( !lab.isEmpty() ) - t = lab.arg(t); - setText(t); + if(useLabel) + { + QString t = pop->text(cur); + if ( !lab.isEmpty() ) + t = lab.arg(t); + setText(t); + } } + +/*! + remove item at id + */ +void MenuButton::remove(int id) +{ + pop->removeItem(id); + nitems--; +} + +/*! + return count of items in menu + */ +int MenuButton::count() +{ + return nitems; +} + +/*! + returns text of item id + */ +QString MenuButton::text(int id) +{ + return pop->text(id); +} + +/*! + sets true or false the use of label + */ +void MenuButton::setUseLabel(bool b) +{ + useLabel = b; +} diff --git a/library/menubutton.h b/library/menubutton.h index 6582b1e..ee5dcf1 100644 --- a/library/menubutton.h +++ b/library/menubutton.h @@ -30,8 +30,9 @@ public: MenuButton( const QStringList& items, QWidget* parent, const char* name=0); void clear(); + int currentItem() const; QString currentText() const; void insertItems( const QStringList& items ); @@ -39,8 +40,12 @@ public: void insertItem( const QString& text ); void insertSeparator(); void setLabel(const QString& label); + int count(); + void remove(int id); + QString text(int id); + void setUseLabel(bool b); signals: void selected(int); void selected(const QString&); @@ -49,8 +54,9 @@ public slots: void select(int); void select(const QString&); private: + bool useLabel; void init(); QStringList txts; QPopupMenu* pop; int nitems; |