improved button manager basics

This commit is contained in:
mrbesen 2021-12-21 02:11:44 +01:00
parent f9d0c36402
commit baa5ddb98b
Signed by untrusted user: MrBesen
GPG Key ID: 596B2350DCD67504
2 changed files with 67 additions and 15 deletions

View File

@ -1,6 +1,11 @@
#include "buttonmanager.h" #include "buttonmanager.h"
#include "ui_buttonmanager.h" #include "ui_buttonmanager.h"
// itemtypes
const static int ROWTYPE = 1000;
const static int BUTTONTYPE = 1001;
const static int SAMPLETYPE = 1002;
ButtonManager::ButtonManager(const Config& conf, QWidget *parent) : QDialog(parent), ui(new Ui::ButtonManager), mainConfig(conf) { ButtonManager::ButtonManager(const Config& conf, QWidget *parent) : QDialog(parent), ui(new Ui::ButtonManager), mainConfig(conf) {
ui->setupUi(this); ui->setupUi(this);
@ -8,13 +13,13 @@ ButtonManager::ButtonManager(const Config& conf, QWidget *parent) : QDialog(pare
QList<QTreeWidgetItem*> items; QList<QTreeWidgetItem*> items;
for(uint8_t rownr = 0; rownr < conf.rootConfig.buttons.size(); ++rownr) { for(uint8_t rownr = 0; rownr < conf.rootConfig.buttons.size(); ++rownr) {
const std::vector<Config::ButtonConfig>& btnrow = conf.rootConfig.buttons.at(rownr); const std::vector<Config::ButtonConfig>& btnrow = conf.rootConfig.buttons.at(rownr);
QTreeWidgetItem* row = new QTreeWidgetItem(1000); QTreeWidgetItem* row = new QTreeWidgetItem(ROWTYPE);
row->setData(0, 0, QVariant((int) rownr+1)); row->setData(0, 0, QVariant((int) rownr+1));
items.push_back(row); items.push_back(row);
// iterate buttons in a row // iterate buttons in a row
for(const Config::ButtonConfig& btn : btnrow) { for(const Config::ButtonConfig& btn : btnrow) {
QTreeWidgetItem* qbtn = new QTreeWidgetItem(1001); QTreeWidgetItem* qbtn = new QTreeWidgetItem(BUTTONTYPE);
qbtn->setData(1, 0, QVariant(QString::fromStdString(btn.name))); qbtn->setData(1, 0, QVariant(QString::fromStdString(btn.name)));
qbtn->setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); qbtn->setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable);
row->addChild(qbtn); row->addChild(qbtn);
@ -22,8 +27,9 @@ ButtonManager::ButtonManager(const Config& conf, QWidget *parent) : QDialog(pare
// iterate samples in a button // iterate samples in a button
for(uint8_t samplenr = 0; samplenr < btn.samples.size(); ++samplenr) { for(uint8_t samplenr = 0; samplenr < btn.samples.size(); ++samplenr) {
const Config::SampleConfig& sample = btn.samples.at(samplenr); const Config::SampleConfig& sample = btn.samples.at(samplenr);
QTreeWidgetItem* qsample = new QTreeWidgetItem(1002); QTreeWidgetItem* qsample = new QTreeWidgetItem(SAMPLETYPE);
qsample->setData(2, 0, QVariant((int) samplenr+1)); qsample->setData(2, 0, QVariant((int) samplenr+1));
qsample->setData(3, 0, QVariant(QString::fromStdString(sample.file)));
qbtn->addChild(qsample); qbtn->addChild(qsample);
} }
} }
@ -33,6 +39,7 @@ ButtonManager::ButtonManager(const Config& conf, QWidget *parent) : QDialog(pare
labels.push_back("Row"); labels.push_back("Row");
labels.push_back("Button"); labels.push_back("Button");
labels.push_back("Sample"); labels.push_back("Sample");
labels.push_back("File");
ui->buttonTreeWidget->addTopLevelItems(items); ui->buttonTreeWidget->addTopLevelItems(items);
ui->buttonTreeWidget->setHeaderLabels(labels); ui->buttonTreeWidget->setHeaderLabels(labels);

View File

@ -6,33 +6,78 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>400</width> <width>888</width>
<height>300</height> <height>744</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Dialog</string> <string>Button Manager</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="2" column="2">
<widget class="QPushButton" name="deleteButton">
<property name="text">
<string>Delete</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QPushButton" name="moveDownButton">
<property name="text">
<string>Down</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="addButton">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="moveUpButton">
<property name="text">
<string>Up</string>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="6">
<widget class="QTreeWidget" name="buttonTreeWidget"> <widget class="QTreeWidget" name="buttonTreeWidget">
<property name="columnCount"> <property name="columnCount">
<number>1</number> <number>3</number>
</property> </property>
<column> <column>
<property name="text"> <property name="text">
<string notr="true">1</string> <string notr="true">1</string>
</property> </property>
</column> </column>
<column>
<property name="text">
<string notr="true">2</string>
</property>
</column>
<column>
<property name="text">
<string notr="true">3</string>
</property>
</column>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="2">
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QPushButton" name="editButton">
<property name="orientation"> <property name="text">
<enum>Qt::Horizontal</enum> <string>Edit</string>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property> </property>
</widget> </widget>
</item> </item>