forked from MrBesen/soundboard
44 lines
1.4 KiB
C++
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;
|
|
}
|