MuseScore icon indicating copy to clipboard operation
MuseScore copied to clipboard

MS4 Plugin API onScoreStateChanged is never called

Open schoettl opened this issue 7 months ago • 2 comments

Issue type

Other type of issue

Bug description

The event onScoreStateChanged in plugins is not called anymore in MS4. It used to work in MS3.6.

Maybe the reason is that scoreStateChanged is not called anymore from MuseScore?

My plugin relies on this because it needs to be informed when the note selection changes (state.selectionChanged).

Steps to reproduce

Try this plugin: test.qml


import QtQuick 2.15
import MuseScore 3.0
import QtQuick.Dialogs 1.3
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15

MuseScore {
    id: plugin
    title:      "test"
    version:    "1.0"
    description: "description"
    requiresScore: true
    pluginType: "dialog"
    onRun:

    onScoreStateChanged: {
        console.warn('onScoreStateChanged. state: ' + state)
        if (state.selectionChanged) {
            console.warn('selection changed')
        }
    }

    Pane {
        anchors.fill: parent
        Text {
            text: "Test"
            horizontalAlignment: Text.AlignHCenter
            Layout.fillWidth: true
        }
    }
}

  1. Start MS from terminal to see stdout/stderr messages
  2. Enable the plugin in the plugin manager
  3. Open a score
  4. Start the plugin

It now should print warnings to stdout when you change note selection.

But it doesn't.

Screenshots/Screen recordings

No response

MuseScore Version

4.1.0 - 4.1.2

Regression

Yes, this used to work in MuseScore 3.x and now is broken

Operating system

Linux/NixOS

Additional context

Revision: OS: NixOS 23.05 (Stoat), Arch.: x86_64, MuseScore version (64-bit): 4.0.2-, revision: github-musescore-musescore-

schoettl avatar Dec 02 '23 21:12 schoettl