#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 items; for(uint8_t rownr = 0; rownr < conf.rootConfig.buttons.size(); ++rownr) { const std::vector& 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; }