From e4d7690cf5bf848d7d56a269434f292f58bdc48e Mon Sep 17 00:00:00 2001
From: SeeLook <SeeLook@localhost>
Date: Mon, 1 Jan 2018 21:50:06 +0100
Subject: [PATCH] Properly play newly added note, hide note cursor when clicked
 to show what note was selected, properly hide note names when single note is
 on

---
 src/libs/core/score/taddobject.cpp   |  4 ++--
 src/libs/core/score/tscoreobject.cpp |  4 ++--
 src/libs/core/tnootkaqml.cpp         |  4 ++--
 src/qml/score/NoteCursor.qml         | 13 +++++++++++--
 4 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/libs/core/score/taddobject.cpp b/src/libs/core/score/taddobject.cpp
index d9bb00d66..dff1d0161 100644
--- a/src/libs/core/score/taddobject.cpp
+++ b/src/libs/core/score/taddobject.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2017 by Tomasz Bojczuk                                  *
+ *   Copyright (C) 2017-2018 by Tomasz Bojczuk                             *
  *   seelook@gmail.com                                                     *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -132,7 +132,7 @@ void TaddObject::mouseMoveEvent(QMouseEvent* event) {
 
 
 void TaddObject::addNote() {
-  m_scoreObject->addNote(m_scoreObject->posToNote(m_yPos));
+  m_scoreObject->addNote(m_scoreObject->posToNote(m_yPos), true);
   if (m_scoreObject->recordMode())
     m_scoreObject->setSelectedItem(nullptr);
 }
diff --git a/src/libs/core/score/tscoreobject.cpp b/src/libs/core/score/tscoreobject.cpp
index d3508ff7c..eab543a31 100644
--- a/src/libs/core/score/tscoreobject.cpp
+++ b/src/libs/core/score/tscoreobject.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2017 by Tomasz Bojczuk                                  *
+ *   Copyright (C) 2017-2018 by Tomasz Bojczuk                             *
  *   seelook@gmail.com                                                     *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -585,10 +585,10 @@ void TscoreObject::setSingleNote(bool singleN) {
   if (singleN != m_singleNote) {
     clearScore(); // In single note mode this call is ignored
     if (singleN) {
-        setShowNoteNames(false);
         addNote(Tnote()); // it is avoided in single note mode
         addNote(Tnote());
         addNote(Tnote());
+        setShowNoteNames(false);
         m_singleNote = true;
         setNote(0, Tnote()); // reset it (hide) because addNote was performed above in multi notes mode
         setNote(1, Tnote());
diff --git a/src/libs/core/tnootkaqml.cpp b/src/libs/core/tnootkaqml.cpp
index d366e97cb..38d4c8477 100755
--- a/src/libs/core/tnootkaqml.cpp
+++ b/src/libs/core/tnootkaqml.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2017 by Tomasz Bojczuk                                  *
+ *   Copyright (C) 2017-2018 by Tomasz Bojczuk                             *
  *   seelook@gmail.com                                                     *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -508,7 +508,7 @@ void TnootkaQML::instrumentChangesNoteSlot() {
     rawNote = rawNote.showWithFlat();
 
   if (m_scoreObject->singleNote()) {
-      m_scoreObject->setNote(m_scoreObject->note(0), rawNote);
+      m_scoreObject->setNote(0, rawNote);
   } else {
       if (m_scoreObject->selectedItem()) {
           rawNote.setRhythm(m_scoreObject->selectedItem()->note()->rtm);
diff --git a/src/qml/score/NoteCursor.qml b/src/qml/score/NoteCursor.qml
index d771d2bf0..1e69ae6a7 100644
--- a/src/qml/score/NoteCursor.qml
+++ b/src/qml/score/NoteCursor.qml
@@ -1,5 +1,5 @@
 /** This file is part of Nootka (http://nootka.sf.net)               *
- * Copyright (C) 2017 by Tomasz Bojczuk (seelook@gmail.com)          *
+ * Copyright (C) 2017-2018 by Tomasz Bojczuk (seelook@gmail.com)     *
  * on the terms of GNU GPLv3 license (http://www.gnu.org/licenses)   */
 
 import QtQuick 2.9
@@ -17,7 +17,16 @@ Item {
   property color color: GLOB.noteCursorColor
   property real yPos: scoreObj.activeYpos
 
-  visible: yPos > 0
+  // private
+  property bool allow: true
+
+  visible: yPos > 0 && allow
+
+  Connections { // hide cursor after click on a note to show what was selected
+    target: scoreObj
+    onClicked: allow = false
+    onActiveYposChanged: allow = scoreObj.activeYpos > 0
+  }
 
   Rectangle { // highlight
       width: parent.width + 1
-- 
GitLab