From c5dabe49ee310e3750c238b7440b67bfd3408b02 Mon Sep 17 00:00:00 2001 From: Yohann Dedy Date: Sun, 12 Feb 2017 21:34:36 +0100 Subject: [PATCH] Event type selectable in new window Main window shows event name instead of decimal value --- src/eventwindow.cpp | 23 ++++++++++++++++++++++- src/eventwindow.h | 1 + src/mainwindow.cpp | 14 ++++++++++++++ src/mainwindow.h | 1 + 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/eventwindow.cpp b/src/eventwindow.cpp index b22102d..2ff0e12 100644 --- a/src/eventwindow.cpp +++ b/src/eventwindow.cpp @@ -16,8 +16,15 @@ eventWindow::eventWindow(QWidget *parent) : _eventsTable->setRowCount(32); _eventsTable->setColumnCount(4); + _eventsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + _eventsTable->setSelectionMode(QAbstractItemView::SingleSelection); + _eventsTable->horizontalHeader()->setHidden(true); + _eventsTable->horizontalHeader()->setDefaultSectionSize(200); + _eventsTable->verticalHeader()->setHidden(true); + _eventsTable->verticalHeader()->setDefaultSectionSize(20); + for(int r=0; r<32; r++){ for(int c=0; c<4; c++){ QString nom = _eventsList.at(32*c+r); @@ -27,11 +34,25 @@ eventWindow::eventWindow(QWidget *parent) : mainLayout->addWidget(_eventsTable); - + mainWidget->setFixedSize(826,666); 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))); } 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); + + + +} diff --git a/src/eventwindow.h b/src/eventwindow.h index 4b52468..374d8fb 100644 --- a/src/eventwindow.h +++ b/src/eventwindow.h @@ -18,6 +18,7 @@ public: signals: public slots: + void updatePreset(int row, int col); }; #endif // EVENTWINDOW_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 75fc4e4..444b2b4 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -79,6 +79,7 @@ mainWindow::mainWindow(QWidget *parent) : _presetSettingsTable->setRowCount(16); _presetSettingsTable->setColumnCount(4); _presetSettingsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + _presetSettingsTable->setSelectionMode(QAbstractItemView::SingleSelection); _presetSettingsTable->setHorizontalHeaderLabels(settingsList); tableLayout->addWidget(_presetsList); @@ -193,11 +194,24 @@ void mainWindow::updateTable() 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)); } } } +void mainWindow::updateEventCell(int r, int c) +{ + int eventNum; + QString eventName; + + eventNum = 32*c + r; + eventName = _eventWindow->_eventsList.at(eventNum); + _preset[_presetsList->currentRow()][1][_presetSettingsTable->currentRow()] = eventNum; + _presetSettingsTable->setItem(_presetSettingsTable->currentRow(),1,new QTableWidgetItem(eventName)); + _eventWindow->close(); +} + void mainWindow::openMidiPorts(){ _midiIn->closePort(); _midiOut->closePort(); diff --git a/src/mainwindow.h b/src/mainwindow.h index ca6cf09..a95c25d 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -64,6 +64,7 @@ public slots: void updateDeviceConfig(); void updatePreset(QMidiMessage* message); void updateTable(); + void updateEventCell(int row, int col); private slots: void openMidiPorts();