Dialog: Notify page stack change after closing

See also: https://github.com/gpodder/gpodder-bb10/issues/7
This commit is contained in:
Thomas Perl 2015-03-07 14:29:41 +01:00
parent f7d6d6db15
commit bc8241e99a
2 changed files with 17 additions and 1 deletions

View file

@ -36,7 +36,10 @@ Rectangle {
pgst.topOfStackChanged();
}
Component.onDestruction: pgst.dialogsVisible = pgst.dialogsVisible - 1;
Component.onDestruction: {
pgst.dialogsVisible = pgst.dialogsVisible - 1;
pgst.onDialogDismissed(page);
}
default property alias children: contents.children
property bool isDialog: true

View file

@ -102,6 +102,19 @@ Item {
property string menuButtonIcon: ''
property string windowTitle: 'gPodder'
function onDialogDismissed(dialog) {
for (var i=0; i<children.length; i++) {
// If the dismissed dialog is not on top of the stack, it was
// dismissed while another page was pushed, so we need to do
// another topOfStackChanged() to get the right top item
// (see https://github.com/gpodder/gpodder-bb10/issues/7)
if (children[i] === dialog && i < children.length - 1) {
topOfStackChanged();
break;
}
}
}
function topOfStackChanged(offset) {
if (offset === undefined) {
offset = 0;