@@ -290,12 +290,24 @@ Item {
290290 checked: serverChecked
291291 highlightWhenPressed: false
292292
293− onServerCheckedChanged: {
294− // value can be changed by menu, so a binding won't work.
295− checked = serverChecked;
296− }
293+ onServerCheckedChanged: updateFromServer()
297294 onTriggered: {
298295 menuModel.activate(menuIndex);
296+ resyncTimer.restart();
297+ }
298+
299+ // value can be changed by menu, so a binding won't work.
300+ function updateFromServer() {
301+ resyncTimer.stop();
302+ if (checked != serverChecked) {
303+ checked = serverChecked;
304+ }
305+ }
306+
307+ Timer {
308+ id: resyncTimer
309+ interval: 1500
310+ onTriggered: updateFromServer()
299311 }
300312 }
301313 }
@@ -315,12 +327,24 @@ Item {
315327 checked: serverChecked
316328 highlightWhenPressed: false
317329
318− onServerCheckedChanged: {
319− // value can be changed by menu, so a binding won't work.
320− checked = serverChecked;
321− }
330+ onServerCheckedChanged: updateFromServer()
322331 onTriggered: {
323332 menuModel.activate(menuIndex);
333+ resyncTimer.restart();
334+ }
335+
336+ // value can be changed by menu, so a binding won't work.
337+ function updateFromServer() {
338+ resyncTimer.stop();
339+ if (checked != serverChecked) {
340+ checked = serverChecked;
341+ }
342+ }
343+
344+ Timer {
345+ id: resyncTimer
346+ interval: 1500
347+ onTriggered: updateFromServer()
324348 }
325349 }
326350 }