Remove PresetModel and add index argument to copy from/to sliders
This commit is contained in:
@@ -28,11 +28,11 @@ qt_add_executable(appscheincommander
|
||||
devicetyperegistersmodel.h devicetyperegistersmodel.cpp
|
||||
presetsmodel.h presetsmodel.cpp
|
||||
deviceregistervaluehelper.h deviceregistervaluehelper.cpp
|
||||
presetmodel.h presetmodel.cpp
|
||||
projectloader.h projectloader.cpp
|
||||
scheincommandersettings.h scheincommandersettings.cpp
|
||||
iconutils.h iconutils.cpp
|
||||
presetstepsmodel.h presetstepsmodel.cpp
|
||||
patternmaker.h patternmaker.cpp
|
||||
)
|
||||
|
||||
qt_add_qml_module(appscheincommander
|
||||
|
@@ -90,6 +90,8 @@ ColumnLayout {
|
||||
}
|
||||
|
||||
EditableListView {
|
||||
id: presetStepsListView
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
enabled: presetsListView.currentIndex !== -1
|
||||
@@ -138,31 +140,36 @@ ColumnLayout {
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
PresetModel {
|
||||
id: presetModel
|
||||
controller: __controller
|
||||
presetId: presetsListView.currentData ? presetsListView.currentData.id : -1
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
enabled: presetStepsListView.currentIndex >= 0
|
||||
|
||||
Button {
|
||||
text: qsTr('Auf Schieberegler\nunten kopieren');
|
||||
onPressed: presetModel.copyToFaders()
|
||||
onPressed: presetStepsModel.copyToFaders(presetStepsListView.currentIndex)
|
||||
}
|
||||
Button {
|
||||
text: qsTr('Von Schieberegler\nunten kopieren');
|
||||
onPressed: presetModel.copyFromFaders()
|
||||
onPressed: presetStepsModel.copyFromFaders(presetStepsListView.currentIndex)
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
PatternMaker {
|
||||
id: patternMaker
|
||||
controller: __controller
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Button {
|
||||
text: qsTr('Alle auf\n0 setzen');
|
||||
onPressed: presetModel.setAllFadersLow()
|
||||
onPressed: patternMaker.setAllFadersLow()
|
||||
}
|
||||
Button {
|
||||
text: qsTr('Alle auf\nMaximum setzen');
|
||||
onPressed: presetModel.setAllFadersMax()
|
||||
onPressed: patternMaker.setAllFadersMax()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -195,13 +202,9 @@ ColumnLayout {
|
||||
|
||||
Button {
|
||||
text: qsTr('Set')
|
||||
onPressed: presetModel.setPattern(nSpinBox.value, kSpinBox.value, registerTypeComboBox.currentValue, valueSlider.value)
|
||||
onPressed: patternMaker.setPattern(nSpinBox.value, kSpinBox.value, registerTypeComboBox.currentValue, valueSlider.value)
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,6 @@
|
||||
#include "presetmodel.h"
|
||||
#include "patternmaker.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QMutexLocker>
|
||||
|
||||
void PresetModel::setController(DmxController *controller)
|
||||
void PatternMaker::setController(DmxController *controller)
|
||||
{
|
||||
if (m_controller == controller)
|
||||
return;
|
||||
@@ -25,78 +22,7 @@ void PresetModel::setController(DmxController *controller)
|
||||
emit controllerChanged(m_controller);
|
||||
}
|
||||
|
||||
void PresetModel::setPresetId(int presetId)
|
||||
{
|
||||
if (m_presetId == presetId)
|
||||
return;
|
||||
|
||||
m_presetId = presetId;
|
||||
|
||||
emit presetIdChanged(m_presetId);
|
||||
}
|
||||
|
||||
void PresetModel::copyFromFaders()
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_presetId == -1)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
auto presetPtr = m_controller->lightProject().presets.findById(m_presetId);
|
||||
if (!presetPtr)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
auto &preset = *presetPtr;
|
||||
|
||||
{
|
||||
QMutexLocker locker{&m_controller->mutex()};
|
||||
preset.steps = { { .sliders=m_controller->sliderStates() } };
|
||||
}
|
||||
}
|
||||
|
||||
void PresetModel::copyToFaders()
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_presetId == -1)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
const auto presetPtr = m_controller->lightProject().presets.findById(m_presetId);
|
||||
if (!presetPtr)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
const auto &preset = *presetPtr;
|
||||
|
||||
if (preset.steps.empty())
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
m_controller->setSliderStates(preset.steps.front().sliders);
|
||||
}
|
||||
|
||||
void PresetModel::setAllFadersLow()
|
||||
void PatternMaker::setAllFadersLow()
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
@@ -134,7 +60,7 @@ void PresetModel::setAllFadersLow()
|
||||
m_controller->setSliderStates(std::move(sliderStates));
|
||||
}
|
||||
|
||||
void PresetModel::setAllFadersMax()
|
||||
void PatternMaker::setAllFadersMax()
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
@@ -172,7 +98,7 @@ void PresetModel::setAllFadersMax()
|
||||
m_controller->setSliderStates(std::move(sliderStates));
|
||||
}
|
||||
|
||||
void PresetModel::setPattern(int n, int k, DeviceTypeRegisterType registerType, quint8 value)
|
||||
void PatternMaker::setPattern(int n, int k, DeviceTypeRegisterType registerType, quint8 value)
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
@@ -5,12 +5,11 @@
|
||||
|
||||
#include "dmxcontroller.h"
|
||||
|
||||
class PresetModel : public QObject
|
||||
class PatternMaker : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
Q_PROPERTY(DmxController* controller READ controller WRITE setController NOTIFY controllerChanged)
|
||||
Q_PROPERTY(int presetId READ presetId WRITE setPresetId NOTIFY presetIdChanged)
|
||||
|
||||
public:
|
||||
using QObject::QObject;
|
||||
@@ -19,20 +18,13 @@ public:
|
||||
const DmxController *controller() const { return m_controller; }
|
||||
void setController(DmxController *controller);
|
||||
|
||||
int presetId() const { return m_presetId; }
|
||||
void setPresetId(int presetId);
|
||||
|
||||
Q_INVOKABLE void copyFromFaders();
|
||||
Q_INVOKABLE void copyToFaders();
|
||||
Q_INVOKABLE void setAllFadersLow();
|
||||
Q_INVOKABLE void setAllFadersMax();
|
||||
Q_INVOKABLE void setPattern(int n, int k, DeviceTypeRegisterType registerType, quint8 value);
|
||||
|
||||
signals:
|
||||
void controllerChanged(DmxController *controller);
|
||||
void presetIdChanged(int presetId);
|
||||
|
||||
private:
|
||||
DmxController *m_controller{};
|
||||
int m_presetId{-1};
|
||||
};
|
@@ -47,6 +47,69 @@ void PresetStepsModel::setPresetId(int presetId)
|
||||
emit presetIdChanged(m_presetId);
|
||||
}
|
||||
|
||||
void PresetStepsModel::copyFromFaders(int stepIndex)
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_presetId == -1)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
auto presetPtr = m_controller->lightProject().presets.findById(m_presetId);
|
||||
if (!presetPtr)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
auto &preset = *presetPtr;
|
||||
|
||||
{
|
||||
QMutexLocker locker{&m_controller->mutex()};
|
||||
// TODO respect stepIndex
|
||||
preset.steps = { { .sliders=m_controller->sliderStates() } };
|
||||
}
|
||||
}
|
||||
|
||||
void PresetStepsModel::copyToFaders(int stepIndex)
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_presetId == -1)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
const auto presetPtr = m_controller->lightProject().presets.findById(m_presetId);
|
||||
if (!presetPtr)
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
const auto &preset = *presetPtr;
|
||||
|
||||
// TODO respect stepIndex
|
||||
if (preset.steps.empty())
|
||||
{
|
||||
qDebug() << "hilfe" << __LINE__;
|
||||
return;
|
||||
}
|
||||
|
||||
m_controller->setSliderStates(preset.steps.front().sliders);
|
||||
}
|
||||
|
||||
int PresetStepsModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
if (parent.isValid())
|
||||
|
@@ -22,6 +22,9 @@ public:
|
||||
int presetId() const { return m_presetId; }
|
||||
void setPresetId(int presetId);
|
||||
|
||||
Q_INVOKABLE void copyFromFaders(int stepIndex);
|
||||
Q_INVOKABLE void copyToFaders(int stepIndex);
|
||||
|
||||
int rowCount(const QModelIndex &parent) const override;
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
QMap<int, QVariant> itemData(const QModelIndex &index) const override;
|
||||
|
Reference in New Issue
Block a user