summaryrefslogtreecommitdiffstats
path: root/hyperui/pageview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hyperui/pageview.cpp')
-rw-r--r--hyperui/pageview.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/hyperui/pageview.cpp b/hyperui/pageview.cpp
index 1d2c25f..3f3812d 100644
--- a/hyperui/pageview.cpp
+++ b/hyperui/pageview.cpp
@@ -138,12 +138,13 @@ PageView::PageView(QGraphicsItem *parent)
m_newSlot->setPos(0, m_topOffset);
}
-bool PageView::add(View *view)
+bool PageView::add(View *view, bool keepAlive)
{
if (!view || isAnimating())
return false;
view->setPageView(this);
+ m_keepAlive[view] = keepAlive;
if (m_views.isEmpty()) {
m_views.push(view);
@@ -200,7 +201,10 @@ void PageView::transitionFinished()
if (m_isBack) {
m_oldSlot->setContents(0);
- delete oldView;
+ bool keepAlive = m_keepAlive[oldView];
+ m_keepAlive.remove(oldView);
+ if (!keepAlive)
+ delete oldView;
} else {
oldView->hide();
m_views.push(newView);