summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/menubutton.cpp71
-rw-r--r--library/menubutton.h6
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
@@ -67,6 +67,7 @@
67MenuButton::MenuButton( const QStringList& items, QWidget* parent, const char* name) : 67MenuButton::MenuButton( const QStringList& items, QWidget* parent, const char* name) :
68 QPushButton(parent,name) 68 QPushButton(parent,name)
69{ 69{
70 useLabel = true;
70 init(); 71 init();
71 insertItems(items); 72 insertItems(items);
72} 73}
@@ -98,8 +99,8 @@ void MenuButton::init()
98*/ 99*/
99void MenuButton::clear() 100void MenuButton::clear()
100{ 101{
101 delete pop; 102 delete pop;
102 init(); 103 init();
103} 104}
104 105
105/*! 106/*!
@@ -111,10 +112,10 @@ void MenuButton::insertItems( const QStringList& items )
111{ 112{
112 QStringList::ConstIterator it=items.begin(); 113 QStringList::ConstIterator it=items.begin();
113 for (; it!=items.end(); ++it) { 114 for (; it!=items.end(); ++it) {
114 if ( (*it) == "--" ) 115 if ( (*it) == "--" )
115 insertSeparator(); 116 insertSeparator();
116 else 117 else
117 insertItem(*it); 118 insertItem(*it);
118 } 119 }
119} 120}
120 121
@@ -127,7 +128,7 @@ void MenuButton::insertItems( const QStringList& items )
127void MenuButton::insertItem( const QIconSet& icon, const QString& text ) 128void MenuButton::insertItem( const QIconSet& icon, const QString& text )
128{ 129{
129 pop->insertItem(icon, text, nitems++); 130 pop->insertItem(icon, text, nitems++);
130 if ( nitems==1 ) select(0); 131// if ( nitems==1 ) select(0);
131} 132}
132 133
133/*! 134/*!
@@ -139,7 +140,7 @@ void MenuButton::insertItem( const QIconSet& icon, const QString& text )
139void MenuButton::insertItem( const QString& text ) 140void MenuButton::insertItem( const QString& text )
140{ 141{
141 pop->insertItem(text, nitems++); 142 pop->insertItem(text, nitems++);
142 if ( nitems==1 ) select(0); 143// if ( nitems==1 ) select(0);
143} 144}
144 145
145/*! 146/*!
@@ -158,10 +159,10 @@ void MenuButton::insertSeparator()
158void MenuButton::select(const QString& s) 159void MenuButton::select(const QString& s)
159{ 160{
160 for (int i=0; i<nitems; i++) { 161 for (int i=0; i<nitems; i++) {
161 if ( pop->text(i) == s ) { 162 if ( pop->text(i) == s ) {
162 select(i); 163 select(i);
163 break; 164 break;
164 } 165 }
165 } 166 }
166} 167}
167 168
@@ -174,7 +175,7 @@ void MenuButton::select(int s)
174 cur = s; 175 cur = s;
175 updateLabel(); 176 updateLabel();
176 if ( pop->iconSet(cur) ) 177 if ( pop->iconSet(cur) )
177 setIconSet(*pop->iconSet(cur)); 178 setIconSet(*pop->iconSet(cur));
178 emit selected(cur); 179 emit selected(cur);
179 emit selected(currentText()); 180 emit selected(currentText());
180} 181}
@@ -208,9 +209,45 @@ void MenuButton::setLabel(const QString& label)
208 209
209void MenuButton::updateLabel() 210void MenuButton::updateLabel()
210{ 211{
211 QString t = pop->text(cur); 212 if(useLabel)
212 if ( !lab.isEmpty() ) 213 {
213 t = lab.arg(t); 214 QString t = pop->text(cur);
214 setText(t); 215 if ( !lab.isEmpty() )
216 t = lab.arg(t);
217 setText(t);
218 }
215} 219}
216 220
221
222/*!
223 remove item at id
224 */
225void MenuButton::remove(int id)
226{
227 pop->removeItem(id);
228 nitems--;
229}
230
231/*!
232 return count of items in menu
233 */
234int MenuButton::count()
235{
236 return nitems;
237}
238
239/*!
240 returns text of item id
241 */
242QString MenuButton::text(int id)
243{
244 return pop->text(id);
245}
246
247/*!
248 sets true or false the use of label
249 */
250void MenuButton::setUseLabel(bool b)
251{
252 useLabel = b;
253}
diff --git a/library/menubutton.h b/library/menubutton.h
index 6582b1e..ee5dcf1 100644
--- a/library/menubutton.h
+++ b/library/menubutton.h
@@ -31,6 +31,7 @@ public:
31 31
32 void clear(); 32 void clear();
33 33
34
34 int currentItem() const; 35 int currentItem() const;
35 QString currentText() const; 36 QString currentText() const;
36 37
@@ -40,6 +41,10 @@ public:
40 void insertSeparator(); 41 void insertSeparator();
41 42
42 void setLabel(const QString& label); 43 void setLabel(const QString& label);
44 int count();
45 void remove(int id);
46 QString text(int id);
47 void setUseLabel(bool b);
43 48
44signals: 49signals:
45 void selected(int); 50 void selected(int);
@@ -50,6 +55,7 @@ public slots:
50 void select(const QString&); 55 void select(const QString&);
51 56
52private: 57private:
58 bool useLabel;
53 void init(); 59 void init();
54 QStringList txts; 60 QStringList txts;
55 QPopupMenu* pop; 61 QPopupMenu* pop;