PK |U}uB uB LoopPlayer.html
PK |U LoopPlayer.qmlimport MuseScore 3.0
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtWebEngine 1.5
import QtWebChannel 1.0
import Qt.labs.settings 1.0
MuseScore {
menuPath: "Plugins.Loop Player"
version: "221127"
pluginType: "dock"
anchors.fill: parent
implicitHeight: 9999
QtObject {
id: backendobj
WebChannel.id: "backendid"
signal post(string payload)
function ui(n,t){
settings[n]=t
genview()
}
function setoption(n,v){
settings[n]=v
genview()
}
function backf(payload){
if(payload){
if(payload.ui) ui(payload.ui, payload.v)
if(payload.redraw) genview()
if(payload.op) setoption(payload.op, payload.v)
stealfocusfrombutton.forceActiveFocus()
}
}
}
WebChannel {
id: channel
registeredObjects: [backendobj]
}
WebEngineView {
id : wv
anchors.fill: parent
url : "LoopPlayer.html"
webChannel: channel
onContextMenuRequested: request.accepted = true //disable right click menu
onLoadingChanged: runJavaScript("backend.backf({redraw:true})")
onJavaScriptConsoleMessage: function(w,s,l,i){ console.log('Web console line '+l+' : '+s) }
}
Item {
id:stealfocusfrombutton
focus:true
}
function genview(){
backendobj.post(JSON.stringify({
ui: {
darktheme: settings.darktheme
,smallerfont: settings.smallerfont
}
,step: settings.step
,aponoff: settings.aponoff
,apset: settings.apset
}))
}
Settings {
id: settings
category: "PluginLoopPlayer"
property bool darktheme
property bool smallerfont
property var step
property bool aponoff
property int apset
}
}PK |U}uB uB $ LoopPlayer.html