Skip to content
Snippets Groups Projects
MainScore.qml 3.06 KiB
Newer Older
  • Learn to ignore specific revisions
  • /** This file is part of Nootka (http://nootka.sf.net)               *
     * Copyright (C) 2017 by Tomasz Bojczuk (seelook@gmail.com)          *
     * on the terms of GNU GPLv3 license (http://www.gnu.org/licenses)   */
    
    
    import QtQuick 2.7
    import QtQuick.Controls 2.0
    
    
      property alias showNamesAct: showNamesAct
      property alias extraAccidsAct: extraAccidsAct
      property alias zoomInAct: zoomInAct
      property alias zoomOutAct: zoomOutAct
    
      enableDoubleAccids: GLOB.enableDoubleAccids
      enableKeySign: GLOB.keySignatureEnabled
    
      scoreObj.nameColor: GLOB.nameColor
      scoreObj.showNoteNames: GLOB.namesOnScore
    
      scoreObj.enableDoubleAccidentals: GLOB.enableDoubleAccids
    
      Text {
        id: keyName
        parent: firstStaff
        visible: GLOB.showKeyName && enableKeySign
        x: 4.5
        y: 5
        color: activPal.text
        font.pointSize: 1.5
        text: firstStaff.keySignature ? Noo.majorKeyName(firstStaff.keySignature.key) + "<br>" + Noo.minorKeyName(firstStaff.keySignature.key) : ""
        Connections {
          target: GLOB
          onKeyNameChanged: keyName.text = Noo.majorKeyName(firstStaff.keySignature.key) + "<br>" + Noo.minorKeyName(firstStaff.keySignature.key)
        }
      }
    
    
        parent: currentNote
        visible: currentNote != null
        width: currentNote ? (currentNote.width - currentNote.alterWidth) * 1.5 : 0
        height: currentNote ? Math.min(12.0, currentNote.notePosY + 6.0) : 0
        x: currentNote ? -width * 0.25 : 0
        y: currentNote ? Math.min(currentNote.height - height, Math.max(0.0, currentNote.notePosY - height / 2.0)) : 0
        color: Qt.rgba(activPal.highlight.r, activPal.highlight.g, activPal.highlight.b, 0.3)
        z: -1
        radius: width / 3.0
      }
    
    
      Taction {
        id: extraAccidsAct
        text: qsTr("Additional accidentals")
        checkable: true
    
      Taction {
        id: showNamesAct
        text: qsTr("Show note names")
        checkable: true
        checked: GLOB.namesOnScore
        onTriggered: { scoreObj.showNoteNames = checked }
      }
      Taction {
        id: zoomOutAct
        icon: "zoom-out"
        text: qsTr("Zoom score out")
        onTriggered: scaleFactor = Math.max(0.4, scaleFactor - 0.2)
        shortcut: Shortcut { sequence: StandardKey.ZoomOut; onActivated: zoomOutAct.triggered() }
      }
      Taction {
        id: zoomInAct
        icon: "zoom-in"
        text: qsTr("Zoom score in")
        onTriggered: scaleFactor = scaleFactor = Math.min(scaleFactor + 0.2, 1.4)
        shortcut: Shortcut { sequence: StandardKey.ZoomIn; onActivated: zoomInAct.triggered() }
      }
    
    
      Shortcut {
        sequence: StandardKey.MoveToNextChar;
        onActivated: {
          if (currentNote) {
              if (currentNote.index < notesCount - 1)
                currentNote =  scoreObj.note(currentNote.index + 1)
          } else
              currentNote = scoreObj.note(0)
        }
      }
      Shortcut {
        sequence: StandardKey.MoveToPreviousChar;
        onActivated: {
          if (currentNote) {
              if (currentNote.index > 0)
                currentNote = scoreObj.note(currentNote.index - 1)
          } else {
              currentNote = scoreObj.note(0)
          }
        }
      }