From 104e51bf54820210b8a343ef79fc117044638f67 Mon Sep 17 00:00:00 2001 From: John Tapsell Date: Wed, 7 Apr 2010 17:27:10 +0900 Subject: Changes: WidgetsGallery Spinnerpage - use a flow layout instead of a grid layout policy RevBy: Mike, Tomas Details: This stops the layout overflowing its container --- demos/widgetsgallery/spinnerpage.cpp | 32 +++++++++----------------------- demos/widgetsgallery/spinnerpage.h | 2 ++ 2 files changed, 11 insertions(+), 23 deletions(-) (limited to 'demos') diff --git a/demos/widgetsgallery/spinnerpage.cpp b/demos/widgetsgallery/spinnerpage.cpp index 97f45b62..8fddf6d7 100644 --- a/demos/widgetsgallery/spinnerpage.cpp +++ b/demos/widgetsgallery/spinnerpage.cpp @@ -27,13 +27,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include #include @@ -142,18 +142,8 @@ void SpinnerPage::inContainerHeader() container->setTitle(qtTrId("xx_spinner_page_container_title")); containerPolicy->addItem(container); - QGraphicsGridLayout *grid = new QGraphicsGridLayout(container->centralWidget()); - container->centralWidget()->setLayout(grid); - - for (int i = 0; i < 6; ++i) { - grid->setColumnMaximumWidth(i, ImageSize); - grid->setColumnMinimumWidth(i, ImageSize); - } - - grid->setRowMinimumHeight(0, ImageSize); - grid->setRowMinimumHeight(1, ImageSize); - grid->setRowMaximumHeight(0, ImageSize); - grid->setRowMaximumHeight(1, ImageSize); + DuiLayout *layout = new DuiLayout(container->centralWidget()); + imageContainerPolicy = new DuiFlowLayoutPolicy(layout); description = new DuiLabel(centralWidget()); //% "Spinner can be used in container header to indicate that the items inside the container " @@ -169,14 +159,9 @@ void SpinnerPage::inContainerHeader() void SpinnerPage::timeout() { - QGraphicsGridLayout *grid = dynamic_cast(container->centralWidget()->layout()); - - Q_ASSERT(grid != NULL); - - if (grid) { - int row = grid->count() / 6; - int column = grid->count() % 6; + Q_ASSERT(imageContainerPolicy != NULL); + if (imageContainerPolicy) { QString contactsDir = Utils::contactsDir(); QDir imagesDir(contactsDir); imagesDir.setNameFilters(QStringList() << "*.png"); @@ -184,12 +169,12 @@ void SpinnerPage::timeout() QStringList imageContacts = imagesDir.entryList(QDir::Files); DuiImageWidget *image = new DuiImageWidget(container->centralWidget()); - image->setPixmap(QPixmap(contactsDir + QDir::separator() + imageContacts[grid->count() % imageContacts.size()])); + image->setPixmap(QPixmap(contactsDir + QDir::separator() + imageContacts[imageContainerPolicy->count() % imageContacts.size()])); image->setMinimumSize(ImageSize, ImageSize); image->setMaximumSize(ImageSize, ImageSize); - grid->addItem(image, row, column); + imageContainerPolicy->addItem(image); - if (grid->count() < 12) { + if (imageContainerPolicy->count() < 12) { timer.setSingleShot(true); timer.start(2000); } @@ -287,6 +272,7 @@ void SpinnerPage::reset() } break; } + imageContainerPolicy = NULL; view = Unknown; } diff --git a/demos/widgetsgallery/spinnerpage.h b/demos/widgetsgallery/spinnerpage.h index 6b039be1..a6647bee 100644 --- a/demos/widgetsgallery/spinnerpage.h +++ b/demos/widgetsgallery/spinnerpage.h @@ -26,6 +26,7 @@ class DuiLabel; class DuiContainer; class DuiButton; +class DuiFlowLayoutPolicy; class SpinnerPage : public TemplatePage { @@ -63,6 +64,7 @@ private: DuiLabel *description; View view; QTimer timer; + DuiFlowLayoutPolicy *imageContainerPolicy; }; #endif // SPINNERPAGE_H -- cgit v1.2.3