@@ -1130,10 +1130,8 @@ void NotationInteraction::clearSelection()
11301130{
11311131 TRACEFUNC;
11321132
1133- if (isElementEditStarted ()) {
1133+ if (isEditingElement ()) {
11341134 endEditElement ();
1135- } else if (m_editData.element ) {
1136- m_editData.element = nullptr ;
11371135 }
11381136
11391137 if (isDragStarted ()) {
@@ -1295,7 +1293,7 @@ void NotationInteraction::drag(const PointF& fromPos, const PointF& toPos, DragM
12951293 m_dragData.ed .pos = toPos;
12961294 m_dragData.ed .modifiers = keyboardModifier (QGuiApplication::keyboardModifiers ());
12971295
1298- m_dragData.ed .isEditMode = isElementEditStarted ();
1296+ m_dragData.ed .isEditMode = isEditingElement ();
12991297
13001298 if (isTextEditingStarted ()) {
13011299 m_editData.pos = toPos;
@@ -3767,7 +3765,7 @@ void NotationInteraction::addToSelection(MoveDirection d, MoveSelectionType type
37673765bool NotationInteraction::moveSelectionAvailable (MoveSelectionType type) const
37683766{
37693767 if (type != MoveSelectionType::EngravingItem) {
3770- return !isElementEditStarted ();
3768+ return !isEditingElement ();
37713769 }
37723770
37733771 EngravingItem* el = score ()->selection ().element ();
@@ -3785,7 +3783,7 @@ bool NotationInteraction::moveSelectionAvailable(MoveSelectionType type) const
37853783 return true ;
37863784 }
37873785
3788- return m_editData.element && m_editData.element ->isTextBase () ? !isTextEditingStarted () : !isElementEditStarted ();
3786+ return m_editData.element && m_editData.element ->isTextBase () ? !isTextEditingStarted () : !isEditingElement ();
37893787}
37903788
37913789void NotationInteraction::moveSelection (MoveDirection d, MoveSelectionType type)
@@ -4099,7 +4097,7 @@ void NotationInteraction::moveElementSelection(MoveDirection d)
40994097 return ;
41004098 }
41014099
4102- if (isElementEditStarted ()) {
4100+ if (isEditingElement ()) {
41034101 endEditElement ();
41044102 }
41054103
@@ -4308,6 +4306,7 @@ void NotationInteraction::startEditText(EngravingItem* element, const PointF& cu
43084306
43094307 m_editData.element ->startEdit (m_editData);
43104308
4309+ m_isEditingElementChanged.notify ();
43114310 notifyAboutTextEditingStarted ();
43124311 notifyAboutTextEditingChanged ();
43134312}
@@ -4448,6 +4447,8 @@ void NotationInteraction::endEditText()
44484447
44494448 TextBase* editedElement = toTextBase (m_editData.element );
44504449 doEndEditElement ();
4450+
4451+ m_isEditingElementChanged.notify ();
44514452 notifyAboutTextEditingEnded (editedElement);
44524453
44534454 notifyAboutTextEditingChanged ();
@@ -4622,7 +4623,7 @@ void NotationInteraction::updateDragAnchorLines()
46224623 setAnchorLines (anchorLines);
46234624}
46244625
4625- bool NotationInteraction::isElementEditStarted () const
4626+ bool NotationInteraction::isEditingElement () const
46264627{
46274628 return m_editData.element != nullptr ;
46284629}
@@ -4633,7 +4634,7 @@ void NotationInteraction::startEditElement(EngravingItem* element)
46334634 return ;
46344635 }
46354636
4636- if (isElementEditStarted ()) {
4637+ if (isEditingElement ()) {
46374638 return ;
46384639 }
46394640
@@ -4645,6 +4646,8 @@ void NotationInteraction::startEditElement(EngravingItem* element)
46454646 element->startEdit (m_editData);
46464647 m_editData.element = element;
46474648 }
4649+
4650+ m_isEditingElementChanged.notify ();
46484651}
46494652
46504653void NotationInteraction::changeEditElement (EngravingItem* newElement)
@@ -4794,9 +4797,15 @@ void NotationInteraction::endEditElement()
47944797 doEndEditElement ();
47954798 resetAnchorLines ();
47964799
4800+ m_isEditingElementChanged.notify ();
47974801 notifyAboutNotationChanged ();
47984802}
47994803
4804+ muse::async::Notification NotationInteraction::isEditingElementChanged () const
4805+ {
4806+ return m_isEditingElementChanged;
4807+ }
4808+
48004809void NotationInteraction::updateTimeTickAnchors (QKeyEvent* event)
48014810{
48024811 EngravingItem* selectedElement = m_selection->element ();
@@ -6414,7 +6423,7 @@ bool NotationInteraction::needEndTextEditing(const std::vector<EngravingItem*>&
64146423
64156424bool NotationInteraction::needEndElementEditing (const std::vector<EngravingItem*>& newSelectedElements) const
64166425{
6417- if (!isElementEditStarted ()) {
6426+ if (!isEditingElement ()) {
64186427 return false ;
64196428 }
64206429
0 commit comments