@@ -290,12 +290,26 @@ Item {
290 checked: serverChecked
290 checked: serverChecked
291 highlightWhenPressed: false
291 highlightWhenPressed: false
293− onServerCheckedChanged: {
293+ onServerCheckedChanged: updateFromServer()
294− // value can be changed by menu, so a binding won't work.
295− checked = serverChecked;
297 onTriggered: {
294 onTriggered: {
298 menuModel.activate(menuIndex);
295 menuModel.activate(menuIndex);
296+ resyncTimer.restart();
299+ // value can be changed by menu, so a binding won't work.
300+ function updateFromServer() {
302+ if (checked != serverChecked) {
303+ checked = serverChecked;
307+ // Server value is not guaranteed to change to what we expect from an activation.
308+ // In this case, we need to re-assert that we are presenting the UI with the set backend value.
312+ onTriggered: updateFromServer()
@@ -315,12 +329,26 @@ Item {
315 checked: serverChecked
329 checked: serverChecked
316 highlightWhenPressed: false
330 highlightWhenPressed: false
318− onServerCheckedChanged: {
332+ onServerCheckedChanged: updateFromServer()
319− // value can be changed by menu, so a binding won't work.
320− checked = serverChecked;
322 onTriggered: {
333 onTriggered: {
323 menuModel.activate(menuIndex);
334 menuModel.activate(menuIndex);
335+ resyncTimer.restart();
338+ // value can be changed by menu, so a binding won't work.
339+ function updateFromServer() {
341+ if (checked != serverChecked) {
342+ checked = serverChecked;
346+ // Server value is not guaranteed to change to what we expect from an activation.
347+ // In this case, we need to re-assert that we are presenting the UI with the set backend value.
351+ onTriggered: updateFromServer()