import QtQuick 2.12 import QtQuick.Controls 2.12 import NERvGear 1.0 as NVG import NERvGear.Templates 1.0 as T import "." T.Widget { id: widget solid: true title: qsTr("ADV Widget") resizable: true editing: styleDialog.active property Component style property Component preference property var defaultValues Loader { id: styleDialog active: false sourceComponent: StylePreferences { transientParent: widget.NVG.View.window } } Loader { id: styleObjectLoader active: widget.NVG.View.exposed enabled: true source: Qt.resolvedUrl(widget.settings.current_style) onLoaded: { preference = item.preference; defaultValues = item.defaultValues; style = item.style; if (!widget.settings[widget.settings.current_style]) { widget.settings[widget.settings.current_style] = defaultValues; }else if(widget.settings[widget.settings.current_style]["Version"] !== defaultValues["Version"]) { delete widget.settings[widget.settings.current_style]["Version"]; widget.settings[widget.settings.current_style] = Object.assign(defaultValues, widget.settings[widget.settings.current_style]); } } } Loader { id: styleLoader active: widget.NVG.View.exposed enabled: true sourceComponent: style } menu: Menu { Action { text: qsTr("Style Settings") + "..." onTriggered: { Common.updateStyleList(); styleDialog.active = true; } } Action { text: qsTr("Server Settings") + "..." onTriggered: { Common.serverPreferencesOpen(); } } } Component.onCompleted: { Common.widgetsNum++; if ((!widget.settings.current_style) || (Common.stylesURL.indexOf(widget.settings.current_style) === -1)) { widget.settings.current_style = Common.stylesURL[0]; } } Component.onDestruction: { styleDialog.active = false; Common.widgetsNum--; } }