Skip to content

Commit 366ece7

Browse files
committed
Simplify BackendProxy.qml
1 parent ce0e921 commit 366ece7

File tree

5 files changed

+85
-322
lines changed

5 files changed

+85
-322
lines changed

examples/BasicMinimalC++/src/BasicMinimalC++/Gui/Globals/BackendProxy.qml

+15-68
Original file line numberDiff line numberDiff line change
@@ -9,101 +9,48 @@ import QtQuick
99
import Logic.Mock as MockLogic
1010

1111

12-
// If the backend_proxy_py object is created in main.py and exposed to qml, it is used as
13-
// realBackendProxyPy to access the necessary backend properties and methods. Otherwise, the mock
14-
// proxy defined in MockLogic/BackendProxy.qml with hardcoded data is used.
15-
1612
QtObject {
1713

1814
///////////////
1915
// Backend proxy
2016
///////////////
2117

22-
readonly property var mockBackendProxyQml: MockLogic.BackendProxy
23-
24-
readonly property var realBackendProxyPy: typeof backend_proxy_py !== 'undefined' &&
25-
backend_proxy_py !== null ?
26-
backend_proxy_py :
27-
null
28-
29-
readonly property bool isRealBackendProxyPyDefined: realBackendProxyPy !== null
18+
// This property is used to access the backend proxy object from GUI components.
19+
readonly property var backendProxy: MockLogic.BackendProxy
3020

3121
/////////////
3222
// Status bar
3323
/////////////
3424

3525
readonly property var status: QtObject {
36-
readonly property string project: isRealBackendProxyPyDefined ?
37-
realBackendProxyPy.status.project :
38-
mockBackendProxyQml.status.project
39-
40-
readonly property string phaseCount: isRealBackendProxyPyDefined ?
41-
realBackendProxyPy.status.phaseCount :
42-
mockBackendProxyQml.status.phaseCount
43-
44-
readonly property string experimentsCount: isRealBackendProxyPyDefined ?
45-
realBackendProxyPy.status.experimentsCount :
46-
mockBackendProxyQml.status.experimentsCount
47-
48-
readonly property string calculator: isRealBackendProxyPyDefined ?
49-
realBackendProxyPy.status.calculator :
50-
mockBackendProxyQml.status.calculator
51-
52-
readonly property string minimizer: isRealBackendProxyPyDefined ?
53-
realBackendProxyPy.status.minimizer :
54-
mockBackendProxyQml.status.minimizer
55-
56-
readonly property string variables: isRealBackendProxyPyDefined ?
57-
realBackendProxyPy.status.variables :
58-
mockBackendProxyQml.status.variables
26+
readonly property string project: backendProxy.status.project
27+
readonly property string phaseCount: backendProxy.status.phaseCount
28+
readonly property string experimentsCount: backendProxy.status.experimentsCount
29+
readonly property string calculator: backendProxy.status.calculator
30+
readonly property string minimizer: backendProxy.status.minimizer
31+
readonly property string variables: backendProxy.status.variables
5932
}
6033

6134
///////////////
6235
// Project page
6336
///////////////
6437

6538
readonly property var project: QtObject {
66-
readonly property bool created: isRealBackendProxyPyDefined ?
67-
realBackendProxyPy.project.created :
68-
mockBackendProxyQml.project.created
69-
70-
readonly property var info: isRealBackendProxyPyDefined ?
71-
realBackendProxyPy.project.info :
72-
mockBackendProxyQml.project.info
73-
74-
readonly property var examples: isRealBackendProxyPyDefined ?
75-
realBackendProxyPy.project.examples :
76-
mockBackendProxyQml.project.examples
77-
78-
function create() {
79-
if (isRealBackendProxyPyDefined)
80-
realBackendProxyPy.project.create()
81-
else
82-
mockBackendProxyQml.project.create()
83-
}
39+
readonly property bool created: backendProxy.project.created
40+
readonly property var info: backendProxy.project.info
41+
readonly property var examples: backendProxy.project.examples
8442

85-
function save() {
86-
if (isRealBackendProxyPyDefined)
87-
realBackendProxyPy.project.save()
88-
else
89-
mockBackendProxyQml.project.save()
90-
91-
}
43+
function create() { backendProxy.project.create() }
44+
function save() { backendProxy.project.save() }
9245
}
9346

9447
///////////////
9548
// Summary page
9649
///////////////
9750

9851
readonly property var summary: QtObject {
99-
readonly property bool created: isRealBackendProxyPyDefined ?
100-
realBackendProxyPy.report.created :
101-
mockBackendProxyQml.report.created
102-
103-
readonly property string asHtml: isRealBackendProxyPyDefined ?
104-
realBackendProxyPy.report.asHtml :
105-
mockBackendProxyQml.report.asHtml
106-
52+
readonly property bool created: backendProxy.report.created
53+
readonly property string asHtml: backendProxy.report.asHtml
10754
}
10855

10956
}

examples/BasicMinimalPy/src/BasicMinimalPy/Gui/Globals/BackendProxy.qml

+15-68
Original file line numberDiff line numberDiff line change
@@ -9,101 +9,48 @@ import QtQuick
99
import Logic.Mock as MockLogic
1010

1111

12-
// If the backend_proxy_py object is created in main.py and exposed to qml, it is used as
13-
// realBackendProxyPy to access the necessary backend properties and methods. Otherwise, the mock
14-
// proxy defined in MockLogic/BackendProxy.qml with hardcoded data is used.
15-
1612
QtObject {
1713

1814
///////////////
1915
// Backend proxy
2016
///////////////
2117

22-
readonly property var mockBackendProxyQml: MockLogic.BackendProxy
23-
24-
readonly property var realBackendProxyPy: typeof backend_proxy_py !== 'undefined' &&
25-
backend_proxy_py !== null ?
26-
backend_proxy_py :
27-
null
28-
29-
readonly property bool isRealBackendProxyPyDefined: realBackendProxyPy !== null
18+
// This property is used to access the backend proxy object from GUI components.
19+
readonly property var backendProxy: MockLogic.BackendProxy
3020

3121
/////////////
3222
// Status bar
3323
/////////////
3424

3525
readonly property var status: QtObject {
36-
readonly property string project: isRealBackendProxyPyDefined ?
37-
realBackendProxyPy.status.project :
38-
mockBackendProxyQml.status.project
39-
40-
readonly property string phaseCount: isRealBackendProxyPyDefined ?
41-
realBackendProxyPy.status.phaseCount :
42-
mockBackendProxyQml.status.phaseCount
43-
44-
readonly property string experimentsCount: isRealBackendProxyPyDefined ?
45-
realBackendProxyPy.status.experimentsCount :
46-
mockBackendProxyQml.status.experimentsCount
47-
48-
readonly property string calculator: isRealBackendProxyPyDefined ?
49-
realBackendProxyPy.status.calculator :
50-
mockBackendProxyQml.status.calculator
51-
52-
readonly property string minimizer: isRealBackendProxyPyDefined ?
53-
realBackendProxyPy.status.minimizer :
54-
mockBackendProxyQml.status.minimizer
55-
56-
readonly property string variables: isRealBackendProxyPyDefined ?
57-
realBackendProxyPy.status.variables :
58-
mockBackendProxyQml.status.variables
26+
readonly property string project: backendProxy.status.project
27+
readonly property string phaseCount: backendProxy.status.phaseCount
28+
readonly property string experimentsCount: backendProxy.status.experimentsCount
29+
readonly property string calculator: backendProxy.status.calculator
30+
readonly property string minimizer: backendProxy.status.minimizer
31+
readonly property string variables: backendProxy.status.variables
5932
}
6033

6134
///////////////
6235
// Project page
6336
///////////////
6437

6538
readonly property var project: QtObject {
66-
readonly property bool created: isRealBackendProxyPyDefined ?
67-
realBackendProxyPy.project.created :
68-
mockBackendProxyQml.project.created
69-
70-
readonly property var info: isRealBackendProxyPyDefined ?
71-
realBackendProxyPy.project.info :
72-
mockBackendProxyQml.project.info
73-
74-
readonly property var examples: isRealBackendProxyPyDefined ?
75-
realBackendProxyPy.project.examples :
76-
mockBackendProxyQml.project.examples
77-
78-
function create() {
79-
if (isRealBackendProxyPyDefined)
80-
realBackendProxyPy.project.create()
81-
else
82-
mockBackendProxyQml.project.create()
83-
}
39+
readonly property bool created: backendProxy.project.created
40+
readonly property var info: backendProxy.project.info
41+
readonly property var examples: backendProxy.project.examples
8442

85-
function save() {
86-
if (isRealBackendProxyPyDefined)
87-
realBackendProxyPy.project.save()
88-
else
89-
mockBackendProxyQml.project.save()
90-
91-
}
43+
function create() { backendProxy.project.create() }
44+
function save() { backendProxy.project.save() }
9245
}
9346

9447
///////////////
9548
// Summary page
9649
///////////////
9750

9851
readonly property var summary: QtObject {
99-
readonly property bool created: isRealBackendProxyPyDefined ?
100-
realBackendProxyPy.report.created :
101-
mockBackendProxyQml.report.created
102-
103-
readonly property string asHtml: isRealBackendProxyPyDefined ?
104-
realBackendProxyPy.report.asHtml :
105-
mockBackendProxyQml.report.asHtml
106-
52+
readonly property bool created: backendProxy.report.created
53+
readonly property string asHtml: backendProxy.report.asHtml
10754
}
10855

10956
}

examples/BasicPy/src/BasicPy/Gui/Globals/BackendProxy.qml

+20-59
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import Logic.Mock as MockLogic
1212
// If the backend_proxy_py object is created in main.py and exposed to qml, it is used as
1313
// realBackendProxyPy to access the necessary backend properties and methods. Otherwise, the mock
1414
// proxy defined in MockLogic/BackendProxy.qml with hardcoded data is used.
15+
// The assumption here is that the real backend proxy and the mock proxy have the same API.
1516

1617
QtObject {
1718

@@ -24,86 +25,46 @@ QtObject {
2425
readonly property var realBackendProxyPy: typeof backend_proxy_py !== 'undefined' &&
2526
backend_proxy_py !== null ?
2627
backend_proxy_py :
27-
null
28+
undefined
2829

29-
readonly property bool isRealBackendProxyPyDefined: realBackendProxyPy !== null
30+
// This property is used to access the backend proxy object from GUI components.
31+
// Sets backendProxy to realBackendProxyPy if this property is defined, otherwise sets it to
32+
// mockBackendProxyQml
33+
readonly property var backendProxy: realBackendProxyPy ?? mockBackendProxyQml
3034

3135
/////////////
3236
// Status bar
3337
/////////////
3438

3539
readonly property var status: QtObject {
36-
readonly property string project: isRealBackendProxyPyDefined ?
37-
realBackendProxyPy.status.project :
38-
mockBackendProxyQml.status.project
39-
40-
readonly property string phaseCount: isRealBackendProxyPyDefined ?
41-
realBackendProxyPy.status.phaseCount :
42-
mockBackendProxyQml.status.phaseCount
43-
44-
readonly property string experimentsCount: isRealBackendProxyPyDefined ?
45-
realBackendProxyPy.status.experimentsCount :
46-
mockBackendProxyQml.status.experimentsCount
47-
48-
readonly property string calculator: isRealBackendProxyPyDefined ?
49-
realBackendProxyPy.status.calculator :
50-
mockBackendProxyQml.status.calculator
51-
52-
readonly property string minimizer: isRealBackendProxyPyDefined ?
53-
realBackendProxyPy.status.minimizer :
54-
mockBackendProxyQml.status.minimizer
55-
56-
readonly property string variables: isRealBackendProxyPyDefined ?
57-
realBackendProxyPy.status.variables :
58-
mockBackendProxyQml.status.variables
40+
readonly property string project: backendProxy.status.project
41+
readonly property string phaseCount: backendProxy.status.phaseCount
42+
readonly property string experimentsCount: backendProxy.status.experimentsCount
43+
readonly property string calculator: backendProxy.status.calculator
44+
readonly property string minimizer: backendProxy.status.minimizer
45+
readonly property string variables: backendProxy.status.variables
5946
}
6047

6148
///////////////
6249
// Project page
6350
///////////////
6451

6552
readonly property var project: QtObject {
66-
readonly property bool created: isRealBackendProxyPyDefined ?
67-
realBackendProxyPy.project.created :
68-
mockBackendProxyQml.project.created
69-
70-
readonly property var info: isRealBackendProxyPyDefined ?
71-
realBackendProxyPy.project.info :
72-
mockBackendProxyQml.project.info
73-
74-
readonly property var examples: isRealBackendProxyPyDefined ?
75-
realBackendProxyPy.project.examples :
76-
mockBackendProxyQml.project.examples
77-
78-
function create() {
79-
if (isRealBackendProxyPyDefined)
80-
realBackendProxyPy.project.create()
81-
else
82-
mockBackendProxyQml.project.create()
83-
}
84-
85-
function save() {
86-
if (isRealBackendProxyPyDefined)
87-
realBackendProxyPy.project.save()
88-
else
89-
mockBackendProxyQml.project.save()
90-
91-
}
53+
readonly property bool created: backendProxy.project.created
54+
readonly property var info: backendProxy.project.info
55+
readonly property var examples: backendProxy.project.examples
56+
57+
function create() { backendProxy.project.create() }
58+
function save() { backendProxy.project.save() }
9259
}
9360

9461
///////////////
9562
// Summary page
9663
///////////////
9764

9865
readonly property var summary: QtObject {
99-
readonly property bool created: isRealBackendProxyPyDefined ?
100-
realBackendProxyPy.report.created :
101-
mockBackendProxyQml.report.created
102-
103-
readonly property string asHtml: isRealBackendProxyPyDefined ?
104-
realBackendProxyPy.report.asHtml :
105-
mockBackendProxyQml.report.asHtml
106-
66+
readonly property bool created: backendProxy.report.created
67+
readonly property string asHtml: backendProxy.report.asHtml
10768
}
10869

10970
}

0 commit comments

Comments
 (0)