Skip to content
Snippets Groups Projects
Commit bd58f0ec authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

Refactoring in QuickSimulation

parent f0fa1634
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,11 @@
#include <QMouseEvent>
#include <QStyleOptionSlider>
#include <QAbstractItemModel>
#include <QRect>
#include <QItemSelectionModel>
#include <QHBoxLayout>
#include <QDoubleSpinBox>
#include <cmath>
#include "ItemLink.h"
......@@ -75,6 +80,9 @@ QWidget *SampleTuningDelegate::createEditor(QWidget *parent,
}
double value = index.model()->data(index, Qt::EditRole).toDouble();
m_current_link = index.model()->data(index, Qt::UserRole).value<ItemLink>();
double sliderValue = value * m_multiplyFactor;
double minValue = 0;
......@@ -134,7 +142,11 @@ void SampleTuningDelegate::sliderValueChanged(int position)
void SampleTuningDelegate::editorValueChanged(double value)
{
qDebug() << "XXXX: new value: " << value;
qDebug() << "SampleTuningDelegate::editorValueChanged() -> new value: " << value;
if(m_current_link.getItem()) {
qDebug() << "SampleTuningDelegate::editorValueChanged() -> Working on item " << m_current_link.getItem()->modelType() << m_current_link.getPropertyName();
m_current_link.getItem()->setRegisteredProperty(m_current_link.getPropertyName(), m_valueBox->value());
}
}
void SampleTuningDelegate::setEditorData(QWidget *editor,
......@@ -159,7 +171,8 @@ void SampleTuningDelegate::setModelData(QWidget *editor,
if(link.getItem() != NULL)
{
link.getItem()->setRegisteredProperty(link.getName(), m_valueBox->value());
qDebug() << "SampleTuningDelegate::setModelData() -> setting property " << link.getPropertyName();
link.getItem()->setRegisteredProperty(link.getPropertyName(), m_valueBox->value());
}
} else {
......
......@@ -2,10 +2,10 @@
#define SAMPLETUNINGDELEGATE_H
#include <QItemDelegate>
#include <QRect>
#include <QItemSelectionModel>
#include <QHBoxLayout>
#include <QDoubleSpinBox>
#include "ItemLink.h"
class QDoubleSpinBox;
class QHBoxLayout;
class SampleTuningDelegate : public QItemDelegate
{
......@@ -28,6 +28,7 @@ public:
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const;
private slots:
void sliderValueChanged(int position);
void editorValueChanged(double value);
......@@ -39,6 +40,7 @@ private:
mutable QWidget *m_contentWidget;
mutable QHBoxLayout * m_contentLayout;
double m_multiplyFactor;
mutable ItemLink m_current_link;
};
#endif //SAMPLETUNINGDELEGATE_H
......@@ -15,10 +15,13 @@ SampleTuningWidget::SampleTuningWidget(SampleModel *sampleModel, InstrumentModel
, m_parameterModel(0)
, m_treeView(0)
, m_delegate(new SampleTuningDelegate(1))
, m_sampleModel(sampleModel)
, m_instrumentModel(instrumentModel)
, m_sampleModel(0)
, m_instrumentModel(0)
{
setSampleModel(sampleModel);
setInstrumentModel(instrumentModel);
//generate Tree View
m_treeView = new QTreeView(this);
//treeView->setModel(model);
......@@ -258,6 +261,8 @@ void SampleTuningWidget::updateTreeView(const QString &instrument, const QString
delete m_parameterModel;
m_parameterModel = createParameterModel();
//connect(m_parameterModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelChanged(QModelIndex,QModelIndex)));
m_treeView->setModel(m_parameterModel);
m_treeView->expandAll();
......@@ -265,6 +270,42 @@ void SampleTuningWidget::updateTreeView(const QString &instrument, const QString
}
void SampleTuningWidget::setSampleModel(SampleModel *sampleModel)
{
Q_ASSERT(sampleModel);
if(m_sampleModel != sampleModel) {
if(m_sampleModel)
disconnect(m_sampleModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelChanged(QModelIndex,QModelIndex)));
m_sampleModel = sampleModel;
connect(m_sampleModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelChanged(QModelIndex,QModelIndex)));
}
}
void SampleTuningWidget::setInstrumentModel(InstrumentModel *instrumentModel)
{
Q_ASSERT(instrumentModel);
if(m_instrumentModel != instrumentModel) {
if(m_instrumentModel)
disconnect(m_instrumentModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelChanged(QModelIndex,QModelIndex)));
m_instrumentModel = instrumentModel;
connect(m_instrumentModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelChanged(QModelIndex,QModelIndex)));
}
}
void SampleTuningWidget::onModelChanged(const QModelIndex & /* first */, const QModelIndex & /* second */)
{
qDebug() << "SampleTuningWidget::onModelChanged()";
}
QStandardItemModel *SampleTuningWidget::createParameterModel()
{
QStandardItemModel *result(0);
......
......@@ -24,6 +24,12 @@ public:
SampleTuningWidget(SampleModel *sampleModel, InstrumentModel *instrumentModel, QWidget *parent = 0);
void updateTreeView(const QString &instrument, const QString &sample);
void setSampleModel(SampleModel *sampleModel);
void setInstrumentModel(InstrumentModel *instrumentModel);
public slots:
void onModelChanged(const QModelIndex &first, const QModelIndex &second);
private:
//QStandardItemModel *getItemModelFromSessionModel();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment