20 #include "hwform.h" |
20 #include "hwform.h" |
21 |
21 |
22 #include <QMouseEvent> |
22 #include <QMouseEvent> |
23 #include <QPainter> |
23 #include <QPainter> |
24 |
24 |
25 ItemNum::ItemNum(const QImage& im, QWidget * parent, unsigned char min, unsigned char max) : |
25 ItemNum::ItemNum(const QImage& im, const QImage& img, QWidget * parent, unsigned char min, unsigned char max) : |
26 QFrame(parent), m_im(im), infinityState(false), nonInteractive(false), minItems(min), maxItems(max), |
26 QFrame(parent), m_im(im), m_img(img), infinityState(false), nonInteractive(false), minItems(min), maxItems(max), |
27 numItems(min+2 >= max ? min : min+2) |
27 numItems(min+2 >= max ? min : min+2) |
28 { |
28 { |
|
29 enabled = true; |
29 if(frontendEffects) setAttribute(Qt::WA_PaintOnScreen, true); |
30 if(frontendEffects) setAttribute(Qt::WA_PaintOnScreen, true); |
30 } |
31 } |
31 |
32 |
32 ItemNum::~ItemNum() |
33 ItemNum::~ItemNum() |
33 { |
34 { |
34 } |
35 } |
35 |
36 |
36 void ItemNum::mousePressEvent ( QMouseEvent * event ) |
37 void ItemNum::mousePressEvent ( QMouseEvent * event ) |
37 { |
38 { |
38 if(nonInteractive) return; |
39 if(nonInteractive) return; |
39 if(event->button()==Qt::LeftButton) { |
40 if(event->button()==Qt::LeftButton && enabled) { |
40 event->accept(); |
41 event->accept(); |
41 if((infinityState && numItems <= maxItems) || (!infinityState && numItems < maxItems)) { |
42 if((infinityState && numItems <= maxItems) || (!infinityState && numItems < maxItems)) { |
42 incItems(); |
43 incItems(); |
43 } else { |
44 } else { |
44 numItems = minItems+1; |
45 numItems = minItems+1; |
45 // appears there's an emit in there |
46 // appears there's an emit in there |
46 decItems(); |
47 decItems(); |
47 } |
48 } |
48 } else if (event->button()==Qt::RightButton) { |
49 } else if (event->button()==Qt::RightButton && enabled) { |
49 event->accept(); |
50 event->accept(); |
50 if(numItems > minItems) { |
51 if(numItems > minItems) { |
51 decItems(); |
52 decItems(); |
52 } else { |
53 } else { |
53 numItems = maxItems+(infinityState?0:-1); |
54 numItems = maxItems+(infinityState?0:-1); |
65 return QSize((maxItems+1)*12, 32); |
66 return QSize((maxItems+1)*12, 32); |
66 } |
67 } |
67 |
68 |
68 void ItemNum::paintEvent(QPaintEvent* event) |
69 void ItemNum::paintEvent(QPaintEvent* event) |
69 { |
70 { |
|
71 Q_UNUSED(event); |
|
72 |
70 QPainter painter(this); |
73 QPainter painter(this); |
71 |
74 |
72 if (numItems==maxItems+1) { |
75 if (numItems==maxItems+1) { |
73 QRect target(0, 0, 100, 32); |
76 QRect target(0, 0, 100, 32); |
74 painter.drawImage(target, QImage(":/res/infinity.png")); |
77 if (enabled) { |
|
78 painter.drawImage(target, QImage(":/res/infinity.png")); |
|
79 } else { |
|
80 painter.drawImage(target, QImage(":/res/infinitygrey.png")); |
|
81 } |
75 } else { |
82 } else { |
76 for(int i=0; i<numItems; i++) { |
83 for(int i=0; i<numItems; i++) { |
77 QRect target(11 * i, i % 2, 25, 35); |
84 QRect target(11 * i, i % 2, 25, 35); |
78 painter.drawImage(target, m_im); |
85 if (enabled) { |
|
86 painter.drawImage(target, m_im); |
|
87 } else { |
|
88 painter.drawImage(target, m_img); |
|
89 } |
79 } |
90 } |
80 } |
91 } |
81 } |
92 } |
82 |
93 |
83 unsigned char ItemNum::getItemsNum() const |
94 unsigned char ItemNum::getItemsNum() const |