Merge pull request #18531 from RomanPudashkin/fix_updating_offset_property_410

fix_updating_offset_property_410
This commit is contained in:
RomanPudashkin 2023-07-11 16:58:04 +03:00 committed by GitHub
commit 2e3a93abe6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 40 additions and 26 deletions

View File

@ -63,6 +63,8 @@ public:
void updateModels(const ElementKeySet& newElementKeySet);
void onCurrentNotationChanged() override;
public slots:
void setDefaultSubModelType(mu::inspector::InspectorModelType modelType);
@ -74,8 +76,6 @@ protected:
void setModels(const QList<AbstractInspectorModel*>& models);
private:
void onCurrentNotationChanged() override;
QHash<InspectorModelType, AbstractInspectorModel*> m_modelsHash;
InspectorModelType m_defaultSubModelType = InspectorModelType::TYPE_UNDEFINED;
};

View File

@ -33,8 +33,12 @@ GeneralSettingsModel::GeneralSettingsModel(QObject* parent, IElementRepositorySe
setTitle(qtrc("inspector", "General"));
setSectionType(InspectorSectionType::SECTION_GENERAL);
setPlaybackProxyModel(new PlaybackProxyModel(this, repository));
setAppearanceSettingsModel(new AppearanceSettingsModel(this, repository));
m_playbackProxyModel = new PlaybackProxyModel(this, repository);
m_playbackProxyModel->init();
m_appearanceSettingsModel = new AppearanceSettingsModel(this, repository);
m_appearanceSettingsModel->init();
}
void GeneralSettingsModel::createProperties()
@ -124,6 +128,14 @@ void GeneralSettingsModel::loadProperties(const mu::engraving::PropertyIdSet& pr
}
}
void GeneralSettingsModel::onCurrentNotationChanged()
{
AbstractInspectorModel::onCurrentNotationChanged();
m_appearanceSettingsModel->onCurrentNotationChanged();
m_playbackProxyModel->onCurrentNotationChanged();
}
void GeneralSettingsModel::onVisibleChanged(bool visible)
{
beginCommand();
@ -167,15 +179,3 @@ QObject* GeneralSettingsModel::appearanceSettingsModel() const
{
return m_appearanceSettingsModel;
}
void GeneralSettingsModel::setPlaybackProxyModel(PlaybackProxyModel* playbackProxyModel)
{
m_playbackProxyModel = playbackProxyModel;
emit playbackProxyModelChanged(m_playbackProxyModel);
}
void GeneralSettingsModel::setAppearanceSettingsModel(AppearanceSettingsModel* appearanceSettingsModel)
{
m_appearanceSettingsModel = appearanceSettingsModel;
emit appearanceSettingsModelChanged(m_appearanceSettingsModel);
}

View File

@ -36,8 +36,8 @@ class GeneralSettingsModel : public AbstractInspectorModel
Q_PROPERTY(PropertyItem * isPlayable READ isPlayable CONSTANT)
Q_PROPERTY(PropertyItem * isSmall READ isSmall CONSTANT)
Q_PROPERTY(QObject * playbackProxyModel READ playbackProxyModel NOTIFY playbackProxyModelChanged)
Q_PROPERTY(QObject * appearanceSettingsModel READ appearanceSettingsModel NOTIFY appearanceSettingsModelChanged)
Q_PROPERTY(QObject * playbackProxyModel READ playbackProxyModel CONSTANT)
Q_PROPERTY(QObject * appearanceSettingsModel READ appearanceSettingsModel CONSTANT)
public:
explicit GeneralSettingsModel(QObject* parent, IElementRepositoryService* repository);
@ -50,13 +50,7 @@ public:
QObject* playbackProxyModel() const;
QObject* appearanceSettingsModel() const;
public slots:
void setPlaybackProxyModel(mu::inspector::PlaybackProxyModel* playbackProxyModel);
void setAppearanceSettingsModel(mu::inspector::AppearanceSettingsModel* appearanceSettingsModel);
signals:
void playbackProxyModelChanged(QObject* playbackProxyModel);
void appearanceSettingsModelChanged(QObject* appearanceSettingsModel);
void onCurrentNotationChanged() override;
private:
void createProperties() override;

View File

@ -43,5 +43,9 @@ PlaybackProxyModel::PlaybackProxyModel(QObject* parent, IElementRepositoryServic
new GradualTempoChangePlaybackModel(this, repository)
};
for (AbstractInspectorModel* model : models) {
model->init();
}
setModels(models);
}

View File

@ -40,5 +40,9 @@ BarlineSettingsProxyModel::BarlineSettingsProxyModel(QObject* parent, IElementRe
new StaffSettingsModel(this, repository)
};
for (AbstractInspectorModel* model : models) {
model->init();
}
setModels(models);
}

View File

@ -50,6 +50,10 @@ NoteSettingsProxyModel::NoteSettingsProxyModel(QObject* parent, IElementReposito
models << inspectorModelCreator()->newInspectorModel(modelType, this, repository);
}
for (AbstractInspectorModel* model : models) {
model->init();
}
setModels(models);
connect(m_repository->getQObject(), SIGNAL(elementsUpdated(const QList<mu::engraving::EngravingItem*>&)), this,

View File

@ -32,7 +32,11 @@ RestBeamSettingsModel::RestBeamSettingsModel(QObject* parent, IElementRepository
{
setModelType(InspectorModelType::TYPE_BEAM);
setTitle(qtrc("inspector", "Beam"));
setBeamModesModel(new BeamModesModel(this, repository));
BeamModesModel* modesModel = new BeamModesModel(this, repository);
modesModel->init();
setBeamModesModel(modesModel);
}
QObject* RestBeamSettingsModel::beamModesModel() const

View File

@ -41,6 +41,10 @@ RestSettingsProxyModel::RestSettingsProxyModel(QObject* parent, IElementReposito
models << inspectorModelCreator()->newInspectorModel(modelType, this, repository);
}
for (AbstractInspectorModel* model : models) {
model->init();
}
setModels(models);
connect(m_repository->getQObject(), SIGNAL(elementsUpdated(const QList<mu::engraving::EngravingItem*>&)), this,