-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqbuttonswidget.cpp
99 lines (82 loc) · 3.04 KB
/
qbuttonswidget.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "qbuttonswidget.h"
#include "qtbbutton.h"
#include "qmidi/qmidisysexmsgs.h"
#include <QVBoxLayout>
Q_LOGGING_CATEGORY( BTN, "BTN" )
static QButtonsWidget * g_bw{Q_NULLPTR};
QButtonsWidget::QButtonsWidget(QWidget *parent) : QWidget(parent){
qCDebug(BTN) << Q_FUNC_INFO;
g_bw = this;
auto mainLayout = new QVBoxLayout();
setLayout( mainLayout );
auto grid = new QGridLayout();
mainLayout->addLayout( grid );
auto pb1 = new QTBbutton( 1 );
auto pb2 = new QTBbutton( 2 );
auto pb3 = new QTBbutton( 3 );
auto pb4 = new QTBbutton( 4 );
auto pb5 = new QTBbutton( 5 );
auto pb6 = new QTBbutton( 6 );
auto pb7 = new QTBbutton( 7 );
auto pb8 = new QTBbutton( 8 );
auto pb9 = new QTBbutton( 9 );
auto pb10= new QTBbutton(10 );
auto pb11= new QTBbutton(11 );
auto pb12= new QTBbutton(12 );
grid->addWidget( pb1, 0, 0 );
grid->addWidget( pb2, 0, 1 );
grid->addWidget( pb3, 0, 2 );
grid->addWidget( pb4, 0, 3 );
grid->addWidget( pb5, 1, 0 );
grid->addWidget( pb6, 1, 1 );
grid->addWidget( pb7, 1, 2 );
grid->addWidget( pb8, 1, 3 );
grid->addWidget( pb9, 2, 0 );
grid->addWidget( pb10,2, 1 );
grid->addWidget( pb11,2, 2 );
grid->addWidget( pb12,2, 3 );
connect( pb1, &QTBbutton::clicked, [=](){emit s_clickedBtn(1);} );
connect( pb2, &QTBbutton::clicked, [=](){emit s_clickedBtn(2);} );
connect( pb3, &QTBbutton::clicked, [=](){emit s_clickedBtn(3);} );
connect( pb4, &QTBbutton::clicked, [=](){emit s_clickedBtn(4);} );
connect( pb5, &QTBbutton::clicked, [=](){emit s_clickedBtn(5);} );
connect( pb6, &QTBbutton::clicked, [=](){emit s_clickedBtn(6);} );
connect( pb7, &QTBbutton::clicked, [=](){emit s_clickedBtn(7);} );
connect( pb8, &QTBbutton::clicked, [=](){emit s_clickedBtn(8);} );
connect( pb9, &QTBbutton::clicked, [=](){emit s_clickedBtn(9);} );
connect( pb10, &QTBbutton::clicked,[=](){emit s_clickedBtn(10);} );
connect( pb11, &QTBbutton::clicked,[=](){emit s_clickedBtn(11);} );
connect( pb12, &QTBbutton::clicked,[=](){emit s_clickedBtn(12);} );
m_pBtns << pb1 << pb2 << pb3 << pb4 << pb5 << pb6 << pb7 << pb8 << pb9 << pb10 << pb11 << pb12;
}
QButtonsWidget::~QButtonsWidget(){
qCDebug(BTN) << Q_FUNC_INFO;
}
QButtonsWidget * QButtonsWidget::getInstance(){
return(g_bw);
}
void QButtonsWidget::update( int bank ){
qCDebug(BTN) << Q_FUNC_INFO << "bank=" << bank;
for( auto p_btn: m_pBtns ){
p_btn->update( bank );
}
}
void QButtonsWidget::maskBtns(){
int activeBtns = SSXMSGS::g_Model;
if ( activeBtns > 100 ) activeBtns-=100;
qCDebug(BTN) << Q_FUNC_INFO << "activeBtns=" << activeBtns;
int i = 0;
for( auto p_btn: m_pBtns ){
if ( i < activeBtns )
p_btn->setBlanked(false);
else
p_btn->setBlanked(true);
i++;
}
}
void QButtonsWidget::update( int button, int bank ){
if ( (button-1)< m_pBtns.size() )
m_pBtns.at(button)->update( bank );
else
qCDebug(BTN) << Q_FUNC_INFO << "bad button number!";
}