aboutsummaryrefslogtreecommitdiff
path: root/demos/widgetsgallery/mgridpage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'demos/widgetsgallery/mgridpage.cpp')
-rw-r--r--demos/widgetsgallery/mgridpage.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/demos/widgetsgallery/mgridpage.cpp b/demos/widgetsgallery/mgridpage.cpp
index 27c82bc3..5cd9c007 100644
--- a/demos/widgetsgallery/mgridpage.cpp
+++ b/demos/widgetsgallery/mgridpage.cpp
@@ -103,6 +103,7 @@ QSizeF ContentItemCreator::cellSize() const
MGridPage::MGridPage()
: TemplatePage(TemplatePage::ListsGridsAndPopups),
list(0),
+ model(0),
actionConfiguration(0),
m_itemSize(10,10),
m_columnsPortrait(4),
@@ -158,7 +159,8 @@ void MGridPage::createContent()
QStringList mediaDirs;
mediaDirs << Utils::picturesDir();
mediaDirs << Utils::mediaArtDir();
- GridModel *model = new GridModel(m_itemSize.toSize(), mediaDirs);
+
+ model = new GridModel(m_itemSize.toSize(), mediaDirs);
list->setItemModel(model);
connect(list, SIGNAL(itemClicked(QModelIndex)), this, SLOT(itemClicked(QModelIndex)));
@@ -169,6 +171,12 @@ void MGridPage::createContent()
connect(actionConfiguration, SIGNAL(triggered()), this, SLOT(showGridConfigurationDialog()));
addAction(actionConfiguration);
+ connect(this, SIGNAL(disappearing()), this, SLOT(pauseLoaders()));
+ connect(this, SIGNAL(appeared()), this, SLOT(resumeLoaders()));
+
+ connect(list, SIGNAL(panningStarted()), this, SLOT(pauseLoaders()));
+ connect(list, SIGNAL(panningStopped()), this, SLOT(resumeLoaders()));
+
retranslateUi();
}
@@ -304,3 +312,14 @@ void MGridPage::modifyRowsSliderHandle(int newValue)
m_columnsPortraitSlider->setHandleLabel(QString::number(newValue));
m_columnsPortraitLabel->setText(QString::number(newValue));
}
+
+void MGridPage::pauseLoaders()
+{
+ model->pauseLoaders();
+}
+
+void MGridPage::resumeLoaders()
+{
+ if (MApplication::instance()->activeApplicationWindow()->currentPage() == this)
+ model->resumeLoaders(list->firstVisibleItem().row());
+}