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