diff options
Diffstat (limited to 'demos/widgetsgallery/mgridpage.cpp')
-rw-r--r-- | demos/widgetsgallery/mgridpage.cpp | 21 |
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()); +} |