From 9c2174c9b0ff603d9035c9a49636df245d6db311 Mon Sep 17 00:00:00 2001 From: Yohann Dedy Date: Sun, 5 Mar 2017 12:39:29 +0100 Subject: [PATCH] Added Parameter window --- src/mainwindow.cpp | 24 ++++++++++++++++++++++-- src/mainwindow.h | 1 + src/paramwindow.cpp | 36 +++++++++++++++++++++++++++++++++++- src/paramwindow.h | 4 ++++ 4 files changed, 62 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 631f9b7..a863174 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -181,8 +181,16 @@ void mainWindow::presetCellClicked(int row, int column) if(column == 2) { - // TODO : CREATE A PARAM WINDOW - _paramWindow->show(); + int presetNum = _presetsList->currentRow(); + int paramVal = _preset[presetNum][2][row]; + + int r = paramVal / 16; + int c = paramVal % 16; + + QModelIndex currentParam = _paramWindow->_paramNumsTable->model()->index(r,c); + _paramWindow->_paramNumsTable->setCurrentIndex(currentParam); + _paramWindow->_paramNumsTable->setFocus(); + _paramWindow->show(); } } @@ -247,6 +255,18 @@ void mainWindow::updateEventCell(int r, int c) _eventWindow->close(); } +void mainWindow::updateParamCell(int r, int c) +{ + //qDebug() << "r : " << r << "c : " << c; + int paramVal; + paramVal = 16*r + c; + // qDebug() << "paramVal : " << paramVal; + _preset[_presetsList->currentRow()][2][_presetSettingsTable->currentRow()] = paramVal; + _presetSettingsTable->setItem(_presetSettingsTable->currentRow(),2,new QTableWidgetItem(QString::number(paramVal))); + _paramWindow->close(); + +} + void mainWindow::updateSelectedPreset() { std::bitset<8> presetNum; diff --git a/src/mainwindow.h b/src/mainwindow.h index 6537dc0..00b290a 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -66,6 +66,7 @@ public slots: void updatePreset(QMidiMessage* message); void updateTable(); void updateEventCell(int row, int col); + void updateParamCell(int row, int col); void updateSelectedPreset(); void updateSliders(); diff --git a/src/paramwindow.cpp b/src/paramwindow.cpp index 5e050eb..41fd4da 100644 --- a/src/paramwindow.cpp +++ b/src/paramwindow.cpp @@ -1,6 +1,40 @@ #include "paramwindow.h" +#include -paramWindow::paramWindow(QWidget *parent) : QMainWindow(parent) +paramWindow::paramWindow(QWidget *parent) : + QMainWindow(parent), + _paramNumsTable(new QTableWidget) { + QWidget *mainWidget = new QWidget(this); + QHBoxLayout *mainLayout = new QHBoxLayout(mainWidget); + + _paramNumsTable->setRowCount(8); + _paramNumsTable->setColumnCount(16); + _paramNumsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + _paramNumsTable->setSelectionMode(QAbstractItemView::SingleSelection); + _paramNumsTable->horizontalHeader()->setHidden(true); + _paramNumsTable->horizontalHeader()->setDefaultSectionSize(40); + _paramNumsTable->verticalHeader()->setHidden(true); + _paramNumsTable->verticalHeader()->setDefaultSectionSize(30); + + int i=0; + for(int r=0; r<_paramNumsTable->rowCount(); r++){ + for(int c=0; c<_paramNumsTable->columnCount(); c++){ + QString val = QString::number(i); + _paramNumsTable->setItem(r,c,new QTableWidgetItem(val)); + i++; + } + } + + mainLayout->addWidget(_paramNumsTable); + mainWidget->setFixedSize(670,270); + mainWidget->setLayout(mainLayout); + this->setCentralWidget(mainWidget); + + connect(_paramNumsTable,SIGNAL(cellDoubleClicked(int,int)),parent,SLOT(updateParamCell(int,int))); } + +paramWindow::~paramWindow() +{ +} diff --git a/src/paramwindow.h b/src/paramwindow.h index 41daeb0..708d77c 100644 --- a/src/paramwindow.h +++ b/src/paramwindow.h @@ -3,12 +3,16 @@ #include #include +#include class paramWindow : public QMainWindow { Q_OBJECT public: explicit paramWindow(QWidget *parent = 0); + ~paramWindow(); + + QTableWidget* _paramNumsTable; signals: