diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2018-12-07 16:19:13 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2018-12-10 08:32:45 +0000 |
commit | cf54ebd6f3591c09a7d3c1e5fdde9d8be163f02d (patch) | |
tree | ffc532db256018f7f09b141c330e15dca30b685b /src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp | |
parent | 69c3a54687eed3bca968aaba4efd87334df7304f (diff) |
Also removed a previous hot fix (QT3DS-2768) and some cleanups in the
undo/redo system.
Task-number: QT3DS-2827
Change-Id: Id1bb8e89c4121dd3cf447bf29c1a0d02d034e247
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp')
-rw-r--r-- | src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp b/src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp index 1e521df8..47a44b51 100644 --- a/src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp +++ b/src/Authoring/Client/Code/Core/Commands/CmdDataModel.cpp @@ -64,9 +64,8 @@ void SApplicationState::Notify(const SApplicationState &inOther, CDoc &inDoc) // to a deleted item void SApplicationState::PreNotify(const SApplicationState &inOther, CDoc &inDoc) { - if (m_SelectedInstance != inOther.m_SelectedInstance) { + if (m_SelectedInstance != inOther.m_SelectedInstance) inDoc.DeselectAllItems(false); - } } CmdDataModel::CmdDataModel(CDoc &inDoc) @@ -96,25 +95,11 @@ bool CmdDataModel::ConsumerExists() const return m_Consumer != nullptr; } -void CmdDataModel::SetConsumer(ITransactionProducer *inProducer) -{ - if (!ConsumerExists()) - m_Consumer = std::make_shared<CTransactionConsumer>(); - inProducer->SetConsumer(m_Consumer); -} - -void CmdDataModel::ReleaseConsumer(ITransactionProducer *inProducer, bool inRunNotifications) -{ - inProducer->SetConsumer(TTransactionConsumerPtr()); - if (inRunNotifications) - RunDoNotifications(); -} - void CmdDataModel::SetConsumer() { if (!ConsumerExists()) { - m_Doc.GetCore()->GetDispatch(); - SetConsumer(m_Doc.GetStudioSystem()); + m_Consumer = std::make_shared<CTransactionConsumer>(); + m_Doc.GetStudioSystem()->SetConsumer(m_Consumer); m_Doc.GetAssetGraph()->SetConsumer(m_Consumer); m_BeforeDoAppState.Store(m_Doc); } @@ -123,11 +108,16 @@ void CmdDataModel::SetConsumer() void CmdDataModel::ReleaseConsumer(bool inRunNotifications) { if (ConsumerExists()) { - m_Doc.GetAssetGraph()->SetConsumer(TTransactionConsumerPtr()); + m_Doc.GetAssetGraph()->SetConsumer(nullptr); + if (HasTransactions()) m_Doc.SetModifiedFlag(true); m_AfterDoAppState.Store(m_Doc); - ReleaseConsumer(m_Doc.GetStudioSystem(), inRunNotifications); + + m_Doc.GetStudioSystem()->SetConsumer(nullptr); + + if (inRunNotifications) + RunDoNotifications(); } } |