Current event type are preselected when edited
Added splitter to separate the preset list and its the parameters table more evenly Cleaned unused functionsmaster
parent
c5dabe49ee
commit
c0ca86dd41
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
eventWindow::eventWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
//_eventsList(new QStringList),
|
||||
_eventsTable(new QTableWidget)
|
||||
{
|
||||
QWidget *mainWidget = new QWidget(this);
|
||||
|
|
@ -29,6 +28,12 @@ eventWindow::eventWindow(QWidget *parent) :
|
|||
for(int c=0; c<4; c++){
|
||||
QString nom = _eventsList.at(32*c+r);
|
||||
_eventsTable->setItem(r,c,new QTableWidgetItem(nom));
|
||||
if(nom.isEmpty())
|
||||
{
|
||||
// TO DO SET GREY COLOR TO DISABLED CELLS
|
||||
// _eventsTable->item(r,c)->setBackgroundColor(QColor().black());
|
||||
_eventsTable->item(r,c)->setFlags(Qt::ItemIsEnabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -38,7 +43,6 @@ eventWindow::eventWindow(QWidget *parent) :
|
|||
mainWidget->setLayout(mainLayout);
|
||||
this->setCentralWidget(mainWidget);
|
||||
|
||||
//connect(_eventsTable,SIGNAL(cellDoubleClicked(int,int)),this,SLOT(updatePreset(int, int)));
|
||||
connect(_eventsTable,SIGNAL(cellDoubleClicked(int,int)),parent,SLOT(updateEventCell(int,int)));
|
||||
}
|
||||
|
||||
|
|
@ -46,13 +50,3 @@ eventWindow::~eventWindow()
|
|||
{
|
||||
}
|
||||
|
||||
void eventWindow::updatePreset(int r, int c)
|
||||
{
|
||||
int presetNum = c*32 + r;
|
||||
//emit this->updateMainWindow(_eventsList.at(presetNum));
|
||||
qDebug() << "Event #" << presetNum;
|
||||
qDebug() << "Event name" << _eventsList.at(presetNum);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ public:
|
|||
signals:
|
||||
|
||||
public slots:
|
||||
void updatePreset(int row, int col);
|
||||
};
|
||||
|
||||
#endif // EVENTWINDOW_H
|
||||
|
|
|
|||
|
|
@ -20,6 +20,13 @@ mainWindow::mainWindow(QWidget *parent) :
|
|||
_midiIn(new QMidiIn(this)),
|
||||
_midiOut(new QMidiOut(this))
|
||||
{
|
||||
for(int i=0; i<8; i++){
|
||||
_presetSlider.append(new QSlider());
|
||||
if(i==7) _presetSlider.at(7)->setDisabled(true);
|
||||
connect(_presetSlider.at(i),SIGNAL(valueChanged(int)),this,SLOT(updateSelectedPreset()));
|
||||
|
||||
}
|
||||
|
||||
this->setFixedSize(1024,768);
|
||||
_prefixPocketC = {0xF0,0x00,0x20,0x20,0x14,0x00};
|
||||
_midiIn->setIgnoreTypes(false, false, false);
|
||||
|
|
@ -37,7 +44,7 @@ mainWindow::mainWindow(QWidget *parent) :
|
|||
|
||||
QWidget *mainWidget = new QWidget(this);
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout(mainWidget);
|
||||
QHBoxLayout *tableLayout = new QHBoxLayout;
|
||||
QSplitter *presetSplitter = new QSplitter(mainWidget);
|
||||
|
||||
// Menu Bar
|
||||
|
||||
|
|
@ -61,18 +68,37 @@ mainWindow::mainWindow(QWidget *parent) :
|
|||
_menuBar->addMenu(mainMenu);
|
||||
mainLayout->addWidget(_menuBar);
|
||||
|
||||
QHBoxLayout *toolBar = new QHBoxLayout;
|
||||
|
||||
QPushButton *getPresetButton = new QPushButton;
|
||||
getPresetButton->setText("Get preset");
|
||||
mainLayout->addWidget(getPresetButton);
|
||||
|
||||
connect(getPresetButton, SIGNAL(clicked(bool)),this,SLOT(sendSingleDumpRequest()));
|
||||
|
||||
QHBoxLayout *presetPins = new QHBoxLayout;
|
||||
|
||||
for(int i=0; i<8; i++)
|
||||
{
|
||||
_presetSlider.at(i)->setMaximum(1);
|
||||
_presetSlider.at(i)->setFixedHeight(50);
|
||||
_presetSlider.at(i)->setFixedWidth(20);
|
||||
_presetSlider.at(i)->setInvertedAppearance(true);
|
||||
presetPins->addWidget(_presetSlider.at(i));
|
||||
}
|
||||
|
||||
toolBar->addWidget(getPresetButton);
|
||||
toolBar->addLayout(presetPins);
|
||||
|
||||
mainLayout->addLayout(toolBar);
|
||||
|
||||
// Table
|
||||
for(int i=0; i<128; i++){
|
||||
QString defaultCelString = QString("Preset #%1").arg(i+1);
|
||||
_presetsList->addItem(defaultCelString);
|
||||
}
|
||||
|
||||
connect(_presetsList,SIGNAL(itemSelectionChanged()),this,SLOT(updateTable()));
|
||||
//connect(_presetsList,SIGNAL(itemSelectionChanged()),this,SLOT(updateTable()));
|
||||
connect(_presetsList,SIGNAL(itemSelectionChanged()),this,SLOT(updateSliders()));
|
||||
|
||||
QStringList settingsList;
|
||||
settingsList << "Channel" << "Type" << "Parameter" << "Description" ;
|
||||
|
|
@ -82,15 +108,14 @@ mainWindow::mainWindow(QWidget *parent) :
|
|||
_presetSettingsTable->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
_presetSettingsTable->setHorizontalHeaderLabels(settingsList);
|
||||
|
||||
tableLayout->addWidget(_presetsList);
|
||||
tableLayout->addWidget(_presetSettingsTable);
|
||||
|
||||
mainLayout->addLayout(tableLayout);
|
||||
presetSplitter->addWidget(_presetsList);
|
||||
presetSplitter->addWidget(_presetSettingsTable);
|
||||
presetSplitter->setStretchFactor(1,1);
|
||||
mainLayout->addWidget(presetSplitter);
|
||||
|
||||
mainWidget->setLayout(mainLayout);
|
||||
setCentralWidget(mainWidget);
|
||||
|
||||
|
||||
connect(_midiIn, SIGNAL(midiMessageReceived(QMidiMessage*)), this, SLOT(onMidiMessageReceive(QMidiMessage*)));
|
||||
connect(_presetSettingsTable, SIGNAL(cellDoubleClicked(int,int)), this, SLOT(presetCellClicked(int,int)));
|
||||
connect(settings, SIGNAL(triggered(bool)), this, SLOT(openSettingsWindow()));
|
||||
|
|
@ -131,8 +156,6 @@ void mainWindow::onMidiMessageReceive(QMidiMessage *message)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//qDebug() << "BYTE #7 : " << rawMessage.at(6) ; // DEBUG
|
||||
}
|
||||
|
||||
void mainWindow::presetCellClicked(int row, int column)
|
||||
|
|
@ -144,13 +167,23 @@ void mainWindow::presetCellClicked(int row, int column)
|
|||
_eventWindow->setWindowTitle("Event");
|
||||
if(column == 1)
|
||||
{
|
||||
// TODO : Preselect currently used preset
|
||||
// QModelIndex newIndex = _presetSettingsTable->_eventsTable->model()->index(10,3);
|
||||
// _eventWindow->_eventsTable->setCurrentIndex(newIndex);
|
||||
// _eventWindow->_eventsTable->setFocus();
|
||||
int presetNum = _presetsList->currentRow();
|
||||
int eventNum = _preset[presetNum][1][row];
|
||||
|
||||
int r = eventNum % 32;
|
||||
int c = (eventNum - r) / 32;
|
||||
|
||||
QModelIndex currentEvent = _eventWindow->_eventsTable->model()->index(r,c);
|
||||
_eventWindow->_eventsTable->setCurrentIndex(currentEvent);
|
||||
_eventWindow->_eventsTable->setFocus();
|
||||
_eventWindow->show();
|
||||
}
|
||||
if(column == 2) _paramWindow->show();
|
||||
|
||||
if(column == 2)
|
||||
{
|
||||
// TODO : CREATE A PARAM WINDOW
|
||||
_paramWindow->show();
|
||||
}
|
||||
}
|
||||
|
||||
void mainWindow::openSettingsWindow()
|
||||
|
|
@ -191,8 +224,10 @@ void mainWindow::updatePreset(QMidiMessage *message)
|
|||
void mainWindow::updateTable()
|
||||
{
|
||||
|
||||
for(int i=0; i<3; i++){
|
||||
for(int j=0; j<16; j++){
|
||||
for(int i=0; i<3; i++)
|
||||
{
|
||||
for(int j=0; j<16; j++)
|
||||
{
|
||||
QString value = QString::number(_preset[_presetsList->currentRow()][i][j]);
|
||||
if(i==1) value = _eventWindow->_eventsList.at(_preset[_presetsList->currentRow()][i][j]);
|
||||
_presetSettingsTable->setItem(j,i,new QTableWidgetItem(value));
|
||||
|
|
@ -212,20 +247,45 @@ void mainWindow::updateEventCell(int r, int c)
|
|||
_eventWindow->close();
|
||||
}
|
||||
|
||||
void mainWindow::openMidiPorts(){
|
||||
void mainWindow::updateSelectedPreset()
|
||||
{
|
||||
std::bitset<8> presetNum;
|
||||
for(int i=0; i<8; i++)
|
||||
{
|
||||
presetNum.set(i,_presetSlider.at(i)->value());
|
||||
}
|
||||
_presetsList->setCurrentRow(presetNum.to_ulong());
|
||||
updateTable();
|
||||
}
|
||||
|
||||
void mainWindow::updateSliders()
|
||||
{
|
||||
std::bitset<8> presetNum (_presetsList->currentRow());
|
||||
for(int i=0; i<8; i++)
|
||||
{
|
||||
_presetSlider.at(i)->setValue(presetNum.test(i));
|
||||
}
|
||||
updateTable();
|
||||
}
|
||||
|
||||
void mainWindow::openMidiPorts()
|
||||
{
|
||||
_midiIn->closePort();
|
||||
_midiOut->closePort();
|
||||
if(_settingsWindow->_inPortComboBox->currentText() != "None"){
|
||||
if(_settingsWindow->_inPortComboBox->currentText() != "None")
|
||||
{
|
||||
qDebug()<< "Selected MIDI IN : " <<_settingsWindow->_inPortComboBox->currentText();
|
||||
_midiIn->openPort(_settingsWindow->_inPortComboBox->currentIndex());
|
||||
}
|
||||
if(_settingsWindow->_outPortComboBox->currentText() != "None"){
|
||||
if(_settingsWindow->_outPortComboBox->currentText() != "None")
|
||||
{
|
||||
qDebug()<< "Selected MIDI OUT : " <<_settingsWindow->_outPortComboBox->currentText();
|
||||
_midiOut->openPort(_settingsWindow->_outPortComboBox->currentIndex());
|
||||
}
|
||||
}
|
||||
|
||||
void mainWindow::sendThruMasterChnRequest(){
|
||||
void mainWindow::sendThruMasterChnRequest()
|
||||
{
|
||||
std::vector<unsigned char> rawRequest;
|
||||
rawRequest = _prefixPocketC;
|
||||
rawRequest.push_back(0x56);
|
||||
|
|
@ -235,7 +295,8 @@ void mainWindow::sendThruMasterChnRequest(){
|
|||
if(_midiOut->isPortOpen()) _midiOut->sendRawMessage(rawRequest);
|
||||
}
|
||||
|
||||
void mainWindow::sendSingleDumpRequest(){
|
||||
void mainWindow::sendSingleDumpRequest()
|
||||
{
|
||||
std::vector<unsigned char> rawRequest;
|
||||
rawRequest = _prefixPocketC;
|
||||
rawRequest.push_back(0x26);
|
||||
|
|
@ -245,7 +306,8 @@ void mainWindow::sendSingleDumpRequest(){
|
|||
if(_midiOut->isPortOpen()) _midiOut->sendRawMessage(rawRequest);
|
||||
}
|
||||
|
||||
void mainWindow::sendAllDumpRequest(){
|
||||
void mainWindow::sendAllDumpRequest()
|
||||
{
|
||||
_presetsList->setCurrentRow(0);
|
||||
for(int i=0; i<_presetsList->count(); i++){
|
||||
_presetsList->setCurrentRow(i);
|
||||
|
|
@ -255,7 +317,8 @@ void mainWindow::sendAllDumpRequest(){
|
|||
|
||||
}
|
||||
|
||||
void mainWindow::sendSingleDump(){
|
||||
void mainWindow::sendSingleDump()
|
||||
{
|
||||
std::vector<unsigned char> rawRequest;
|
||||
rawRequest = _prefixPocketC;
|
||||
rawRequest.push_back(0x20);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ public:
|
|||
QListWidget* _presetsList;
|
||||
QTableWidget* _presetSettingsTable;
|
||||
QMenuBar* _menuBar;
|
||||
QList<QSlider*> _presetSlider;
|
||||
|
||||
~mainWindow();
|
||||
|
||||
|
|
@ -65,6 +66,8 @@ public slots:
|
|||
void updatePreset(QMidiMessage* message);
|
||||
void updateTable();
|
||||
void updateEventCell(int row, int col);
|
||||
void updateSelectedPreset();
|
||||
void updateSliders();
|
||||
|
||||
private slots:
|
||||
void openMidiPorts();
|
||||
|
|
|
|||
Loading…
Reference in New Issue