Support item tabs based on item group string

This commit is contained in:
Carl Philipp Klemm 2026-04-01 19:40:47 +02:00
parent 0e09b6f46c
commit a17cd23a4e
29 changed files with 527 additions and 181 deletions

View file

@ -4,10 +4,12 @@
#include <QCheckBox>
#include <QDebug>
#include <QSlider>
#include "itemsettingsdialog.h"
ItemWidget::ItemWidget(std::weak_ptr<Item> item, QWidget *parent) :
ItemWidget::ItemWidget(std::weak_ptr<Item> item, bool noGroupEdit, QWidget *parent) :
QWidget(parent),
item_(item),
noGroupEdit_(noGroupEdit),
ui(new Ui::ItemWidget)
{
ui->setupUi(this);
@ -40,12 +42,13 @@ ItemWidget::ItemWidget(std::weak_ptr<Item> item, QWidget *parent) :
connect(ui->pushButton, &QPushButton::clicked, this, &ItemWidget::showSettingsDialog);
connect(workingItem.get(), &Item::updated, this, &ItemWidget::onItemUpdated);
connect(ui->pushButton_Remove, &QPushButton::clicked, this, &ItemWidget::deleteItem);
}
else
{
disable();
}
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
}
void ItemWidget::deleteItem()
@ -60,7 +63,9 @@ void ItemWidget::moveToValue(int value)
{
if(auto workingItem = item_.lock())
{
ItemUpdateRequest request = workingItem->createValueUpdateRequest(value, ITEM_UPDATE_USER);
ItemUpdateRequest request = workingItem->createValueUpdateRequest(ITEM_UPDATE_USER);
request.payload.setValueData(value);
request.changes.value = true;
workingItem->requestUpdate(request);
}
else
@ -71,15 +76,7 @@ void ItemWidget::moveToValue(int value)
void ItemWidget::moveToState(bool state)
{
if(auto workingItem = item_.lock())
{
ItemUpdateRequest request = workingItem->createValueUpdateRequest(state, ITEM_UPDATE_USER);
workingItem->requestUpdate(request);
}
else
{
disable();
}
moveToValue(state);
}
void ItemWidget::disable()
@ -104,8 +101,9 @@ void ItemWidget::showSettingsDialog()
{
if(auto workingItem = item_.lock())
{
ItemSettingsDialog dialog(workingItem, this);
ItemSettingsDialog dialog(workingItem, noGroupEdit_, this);
dialog.exec();
}
else disable();
}