summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--library/menubutton.cpp41
-rw-r--r--library/menubutton.h6
2 files changed, 45 insertions, 2 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);
}
@@ -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.
@@ -207,10 +208,46 @@ void MenuButton::setLabel(const QString& label)
}
void MenuButton::updateLabel()
{
+ 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;