diff -r f0c61338a2e8 -r 40da62e57d85 DisplayTab.qml --- a/DisplayTab.qml Wed May 28 19:31:55 2014 +0200 +++ b/DisplayTab.qml Wed May 28 20:14:23 2014 +0200 @@ -15,14 +15,13 @@ Component.onCompleted: { display.closing.connect(onDisplayClosing); display.opened.connect(onDisplayOpened); + appWindow.closing.connect(onWindowClosing); if(checkBoxConnectOnStartUp.checked) display.open() } //We need to disconnect our signals to avoid receiving stray events Component.onDestruction: { - display.closed.disconnect(onDisplayClosing); - display.opened.disconnect(onDisplayOpened); - onDisplayClosing(); + disconnectDisplaySignals() } // Settings { @@ -32,31 +31,44 @@ property alias brightness: sliderBrightness.value; } + function disconnectDisplaySignals() + { + display.closed.disconnect(onDisplayClosing); + display.opened.disconnect(onDisplayOpened); + } + + //Clear both front and back buffers + function clearBuffers() + { + display.clear(); + display.swapBuffers(); + display.clear(); + display.swapBuffers(); + } + + function onWindowClosing() + { + //Clear both our frames + onDisplayClosing(); + disconnectDisplaySignals(); + } + function onDisplayClosing() { - //Clear both our frames - if (checkBoxClearWhenDisconnecting.checked) + if (checkBoxClearWhenDisconnecting != null && checkBoxClearWhenDisconnecting.checked) { - display.clear(); - display.swapBuffers(); - display.clear(); - display.swapBuffers(); + clearBuffers(); } } function onDisplayOpened() { - //Clear both our frames if (checkBoxClearWhenConnecting.checked) { - display.clear(); - display.swapBuffers(); - display.clear(); - display.swapBuffers(); + clearBuffers(); } } - // Column {