@@ -1132,10 +1132,8 @@ void NotationInteraction::clearSelection()
11321132{
11331133 TRACEFUNC;
11341134
1135- if (isElementEditStarted ()) {
1135+ if (isEditingElement ()) {
11361136 endEditElement ();
1137- } else if (m_editData.element ) {
1138- m_editData.element = nullptr ;
11391137 }
11401138
11411139 if (isDragStarted ()) {
@@ -1297,7 +1295,7 @@ void NotationInteraction::drag(const PointF& fromPos, const PointF& toPos, DragM
12971295 m_dragData.ed .pos = toPos;
12981296 m_dragData.ed .modifiers = keyboardModifier (QGuiApplication::keyboardModifiers ());
12991297
1300- m_dragData.ed .isEditMode = isElementEditStarted ();
1298+ m_dragData.ed .isEditMode = isEditingElement ();
13011299
13021300 if (isTextEditingStarted ()) {
13031301 m_editData.pos = toPos;
@@ -3768,7 +3766,7 @@ void NotationInteraction::addToSelection(MoveDirection d, MoveSelectionType type
37683766bool NotationInteraction::moveSelectionAvailable (MoveSelectionType type) const
37693767{
37703768 if (type != MoveSelectionType::EngravingItem) {
3771- return !isElementEditStarted ();
3769+ return !isEditingElement ();
37723770 }
37733771
37743772 EngravingItem* el = score ()->selection ().element ();
@@ -3786,7 +3784,7 @@ bool NotationInteraction::moveSelectionAvailable(MoveSelectionType type) const
37863784 return true ;
37873785 }
37883786
3789- return m_editData.element && m_editData.element ->isTextBase () ? !isTextEditingStarted () : !isElementEditStarted ();
3787+ return m_editData.element && m_editData.element ->isTextBase () ? !isTextEditingStarted () : !isEditingElement ();
37903788}
37913789
37923790void NotationInteraction::moveSelection (MoveDirection d, MoveSelectionType type)
@@ -4100,7 +4098,7 @@ void NotationInteraction::moveElementSelection(MoveDirection d)
41004098 return ;
41014099 }
41024100
4103- if (isElementEditStarted ()) {
4101+ if (isEditingElement ()) {
41044102 endEditElement ();
41054103 }
41064104
@@ -4309,6 +4307,7 @@ void NotationInteraction::startEditText(EngravingItem* element, const PointF& cu
43094307
43104308 m_editData.element ->startEdit (m_editData);
43114309
4310+ m_isEditingElementChanged.notify ();
43124311 notifyAboutTextEditingStarted ();
43134312 notifyAboutTextEditingChanged ();
43144313}
@@ -4449,6 +4448,8 @@ void NotationInteraction::endEditText()
44494448
44504449 TextBase* editedElement = toTextBase (m_editData.element );
44514450 doEndEditElement ();
4451+
4452+ m_isEditingElementChanged.notify ();
44524453 notifyAboutTextEditingEnded (editedElement);
44534454
44544455 notifyAboutTextEditingChanged ();
@@ -4623,7 +4624,7 @@ void NotationInteraction::updateDragAnchorLines()
46234624 setAnchorLines (anchorLines);
46244625}
46254626
4626- bool NotationInteraction::isElementEditStarted () const
4627+ bool NotationInteraction::isEditingElement () const
46274628{
46284629 return m_editData.element != nullptr ;
46294630}
@@ -4634,7 +4635,7 @@ void NotationInteraction::startEditElement(EngravingItem* element)
46344635 return ;
46354636 }
46364637
4637- if (isElementEditStarted ()) {
4638+ if (isEditingElement ()) {
46384639 return ;
46394640 }
46404641
@@ -4646,6 +4647,8 @@ void NotationInteraction::startEditElement(EngravingItem* element)
46464647 element->startEdit (m_editData);
46474648 m_editData.element = element;
46484649 }
4650+
4651+ m_isEditingElementChanged.notify ();
46494652}
46504653
46514654void NotationInteraction::changeEditElement (EngravingItem* newElement)
@@ -4795,9 +4798,15 @@ void NotationInteraction::endEditElement()
47954798 doEndEditElement ();
47964799 resetAnchorLines ();
47974800
4801+ m_isEditingElementChanged.notify ();
47984802 notifyAboutNotationChanged ();
47994803}
48004804
4805+ muse::async::Notification NotationInteraction::isEditingElementChanged () const
4806+ {
4807+ return m_isEditingElementChanged;
4808+ }
4809+
48014810void NotationInteraction::updateTimeTickAnchors (QKeyEvent* event)
48024811{
48034812 EngravingItem* selectedElement = m_selection->element ();
@@ -6416,7 +6425,7 @@ bool NotationInteraction::needEndTextEditing(const std::vector<EngravingItem*>&
64166425
64176426bool NotationInteraction::needEndElementEditing (const std::vector<EngravingItem*>& newSelectedElements) const
64186427{
6419- if (!isElementEditStarted ()) {
6428+ if (!isEditingElement ()) {
64206429 return false ;
64216430 }
64226431
0 commit comments