import QtQuick import QtQuick.Controls.Material import QtQuick.Layouts import QtQml.Models Window { id: window property bool discardChangesOnExit: false property bool isDataModified: !appUndoStack.isClean property string titleClean: `${Application.name}` property string titleDirty: `${Application.name}` + " *" width: 480 height: 800 visible: true title: appUndoStack.clean ? titleClean : titleDirty property int fontSize: 16 property color textColor: "black" property color wccDarkDark: "#010101" property color wccDarkDefault: "#3C3B3B" property color wccDarkLight: "#828282" property color wccPurpleDark: "#631A61" property color wccPurpleDefault: "#A834A5" property color wccPurpleLight: "#E88FE5" property color wccLavenderDark: "#8C52FF" property color wccLavenderDefault: "#9D74EE" property color wccLavenderLight: "#BC9AFF" ListPage { id: listPage anchors.fill: parent } // Component.onCompleted: { // // core.displayStatusMessage.connect(displayStatusMessage) // appUndoStack.cleanChanged.connect(cleanChanged) // // core.userConfigChanged.connect(onUserConfigChanged) // } // function cleanChanged() { // let clean = appUndoStack.clean // console.debug("Clean state changed to: " + clean) // // if (!clean) { // // footerText.text = "" // // } // } onClosing: event => { if (appUndoStack.clean) { console.debug("Closing on a clean undo stack."); } else { console.debug("Closing on an unclean undo stack!"); if (!window.discardChangesOnExit) { event.accepted = false; exitOnUnsavedChangesDialog.open(); } } } Dialog { id: exitOnUnsavedChangesDialog title: "Unsaved Changes" modal: false anchors.centerIn: parent width: 300 standardButtons: Dialog.Yes | Dialog.Cancel | Dialog.Discard contentItem: Label { text: "Do you want save your changes?\n" + "Or discard them?" } onAccepted: { core.saveItems(); window.close(); } onDiscarded: { window.discardChangesOnExit = true; window.close(); } onRejected: { console.debug("Canceling exit..."); } } }