soundboard/src/buttonmanager.cpp

44 lines
1.4 KiB
C++

#include "buttonmanager.h"
#include "ui_buttonmanager.h"
ButtonManager::ButtonManager(const Config& conf, QWidget *parent) : QDialog(parent), ui(new Ui::ButtonManager), mainConfig(conf) {
ui->setupUi(this);
QList<QTreeWidgetItem*> items;
for(uint8_t rownr = 0; rownr < conf.rootConfig.buttons.size(); ++rownr) {
const std::vector<Config::ButtonConfig>& btnrow = conf.rootConfig.buttons.at(rownr);
QTreeWidgetItem* row = new QTreeWidgetItem(1000);
row->setData(0, 0, QVariant((int) rownr+1));
items.push_back(row);
// iterate buttons in a row
for(const Config::ButtonConfig& btn : btnrow) {
QTreeWidgetItem* qbtn = new QTreeWidgetItem(1001);
qbtn->setData(1, 0, QVariant(QString::fromStdString(btn.name)));
qbtn->setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable);
row->addChild(qbtn);
// iterate samples in a button
for(uint8_t samplenr = 0; samplenr < btn.samples.size(); ++samplenr) {
const Config::SampleConfig& sample = btn.samples.at(samplenr);
QTreeWidgetItem* qsample = new QTreeWidgetItem(1002);
qsample->setData(2, 0, QVariant((int) samplenr+1));
qbtn->addChild(qsample);
}
}
}
QStringList labels;
labels.push_back("Row");
labels.push_back("Button");
labels.push_back("Sample");
ui->buttonTreeWidget->addTopLevelItems(items);
ui->buttonTreeWidget->setHeaderLabels(labels);
}
ButtonManager::~ButtonManager() {
delete ui;
}