diff --git a/include/buttonmanageritems.h b/include/buttonmanageritems.h index 6eaab00..a982bfc 100644 --- a/include/buttonmanageritems.h +++ b/include/buttonmanageritems.h @@ -63,4 +63,17 @@ private: Config::RootConfig& conf; uint8_t buttonnr = 0; RowItem* row = nullptr; +}; + +class SampleItem : public ButtonManagerItem { +public: + SampleItem(ButtonItem* parent, uint8_t samplenr, Config::RootConfig& conf); + + const static int TYPE = 1002; + + Config::SampleConfig& getConfig(); +private: + Config::RootConfig& conf; + uint8_t samplenr = 0; + ButtonItem* button = nullptr; }; \ No newline at end of file diff --git a/src/buttonmanageritems.cpp b/src/buttonmanageritems.cpp index 7176784..6ae0e39 100644 --- a/src/buttonmanageritems.cpp +++ b/src/buttonmanageritems.cpp @@ -130,10 +130,7 @@ ButtonItem::ButtonItem(RowItem* parent, uint8_t buttonnr, Config::RootConfig& co // 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(this, SAMPLETYPE); - qsample->setData(2, Qt::ItemDataRole::DisplayRole, QVariant((int) samplenr+1)); - qsample->setData(3, Qt::ItemDataRole::DisplayRole, QVariant(QString::fromStdString(sample.file))); + SampleItem* sample = new SampleItem(this, samplenr, conf); } } @@ -145,3 +142,15 @@ void ButtonItem::nameWasChanged() { Config::ButtonConfig& ButtonItem::getConfig() { return row->getConfig().at(buttonnr); } + + + +SampleItem::SampleItem(ButtonItem* parent, uint8_t samplenr, Config::RootConfig& conf) : ButtonManagerItem(parent, TYPE), conf(conf), samplenr(samplenr), button(parent) { + const Config::SampleConfig& sample = getConfig(); + setData(2, Qt::ItemDataRole::DisplayRole, QVariant((int) samplenr+1)); + setData(3, Qt::ItemDataRole::DisplayRole, QVariant(QString::fromStdString(sample.file))); +} + +Config::SampleConfig& SampleItem::getConfig() { + return button->getConfig().samples.at(samplenr); +} \ No newline at end of file