You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
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("Settings") + "..." |
|
enabled: !styleDialog.active |
|
onTriggered: { |
|
Common.updateStyleList(); |
|
styleDialog.active = true; |
|
} |
|
} |
|
} |
|
|
|
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--; |
|
} |
|
}
|
|
|