diff --git a/src/imports/mvvmquick/DialogPresenter.qml b/src/imports/mvvmquick/DialogPresenter.qml index 7bf4fbc..bd1db1f 100644 --- a/src/imports/mvvmquick/DialogPresenter.qml +++ b/src/imports/mvvmquick/DialogPresenter.qml @@ -56,6 +56,9 @@ QtObject { */ property Item rootItem: null + //TODO document + readonly property bool empty: _popups.length == 0 + /*! @brief The primary presenting method to present a dialog * * @param type:MessageConfig config The message configuration to create a dialog of diff --git a/src/imports/mvvmquick/PopupPresenter.qml b/src/imports/mvvmquick/PopupPresenter.qml index 0f3715c..f631f81 100644 --- a/src/imports/mvvmquick/PopupPresenter.qml +++ b/src/imports/mvvmquick/PopupPresenter.qml @@ -55,6 +55,9 @@ QtObject { */ property Item rootItem: null + //TODO document + readonly property bool empty: _popups.length == 0 + //! Internal property property var _popups: [] diff --git a/src/imports/mvvmquick/PresentingStackView.qml b/src/imports/mvvmquick/PresentingStackView.qml index 94ac8f1..aa2a033 100644 --- a/src/imports/mvvmquick/PresentingStackView.qml +++ b/src/imports/mvvmquick/PresentingStackView.qml @@ -113,14 +113,10 @@ StackView { return true; } - if(_presenterStack.depth <= 1) + if(_presenterStack.safePop()) + return true; + else return false; - else { - if(_presenterStack.safePop()) - return true; - else - return false; - } } /*! @brief Pop and delete a view diff --git a/src/imports/mvvmquick/QtMvvmApp.qml b/src/imports/mvvmquick/QtMvvmApp.qml index 9e6e17e..0abe16b 100644 --- a/src/imports/mvvmquick/QtMvvmApp.qml +++ b/src/imports/mvvmquick/QtMvvmApp.qml @@ -172,6 +172,9 @@ ApplicationWindow { closed = _drawerLoader.item.closeAction(); if(!closed) closed = _rootStack.closeAction(); + //if everything was closed -> still accept it + if(closed && _rootDialogs.emtpy && _rootPopup.empty && _rootStack.empty) + closed = false; return closed; }