@@ -39,19 +39,19 @@ import QtQuick 2.0
3939*/
4040
4141MenuAction {
42− id: dbusActionState
42+ id: menuAction
4343
4444 /*!
4545 \preliminary
4646 The component which will have the property changed by action
4747 */
48− property alias target: propertyBinding.target
48+ property QtObject target: null
4949
5050 /*!
5151 \preliminary
5252 The property name of \l target component which will be linked with action state
5353 */
54− property string property: propertyBinding.property
54+ property string property
5555
5656 /*!
5757 \preliminary
@@ -63,37 +63,36 @@ MenuAction {
6363 onTargetChanged: connectViewChanges()
6464 onPropertyChanged: connectViewChanges()
6565
66− QtObject {
67− id: priv
68− property alias actionObject : dbusActionState.__actionObject
69−
66+ Item {
67+ id: d
7068 property var currentTarget: undefined
7169 property string currentSignal
70+ }
7271
73−
74− Binding {
75− id: propertyBinding
76− value: dbusActionState.state
77− when: priv.actionObject && dbusActionState.active
78− property: dbusActionState.property
79− }
72+ Binding {
73+ id: propertyBinding
74+ target: menuAction.target
75+ property: menuAction.property
76+ value: menuAction.state
77+ when: menuAction.actionObject && menuAction.active
8078 }
8179
80+ // TODO - re-evaluate in c++
8281 function connectViewChanges() {
83− if (priv.currentTarget != undefined && priv.currentSignal !== "") {
84− if (priv.currentTarget[priv.currentSignal] !== undefined) {
85− priv.currentTarget[priv.currentSignal].disconnect(onViewValueChanged);
82+ if (d.currentTarget != undefined && d.currentSignal !== "") {
83+ if (d.currentTarget[d.currentSignal] !== undefined) {
84+ d.currentTarget[d.currentSignal].disconnect(onViewValueChanged);
8685 }
8786 }
8887
89− priv.currentTarget = null;
90− priv.currentSignal = "";
88+ d.currentTarget = null;
89+ d.currentSignal = "";
9190 if (target) {
9291 var signal = "on%1Changed".arg(property.charAt(0).toUpperCase() + property.slice(1));
9392 if (target[signal] !== undefined) {
9493 target[signal].connect(onViewValueChanged);
95− priv.currentTarget = target;
96− priv.currentSignal = signal;
94+ d.currentTarget = target;
95+ d.currentSignal = signal;
9796 }
9897 }
9998 }
@@ -101,7 +100,7 @@ MenuAction {
101100 function onViewValueChanged() {
102101 if (valid) {
103102 var propertyValue = target[property];
104− priv.actionObject.updateState(propertyValue);
103+ actionObject.updateState(propertyValue);
105104 }
106105 }
107106}