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.cpp57
1 files changed, 35 insertions, 22 deletions
diff --git a/demos/widgetsgallery/mgridpage.cpp b/demos/widgetsgallery/mgridpage.cpp
index bee02d64..9da214b9 100644
--- a/demos/widgetsgallery/mgridpage.cpp
+++ b/demos/widgetsgallery/mgridpage.cpp
@@ -23,6 +23,8 @@
#include <QGraphicsSceneContextMenuEvent>
#include <QPointer>
+#include <MApplication>
+#include <MApplicationWindow>
#include <MContentItem>
#include <MAbstractCellCreator>
#include <MLabel>
@@ -142,12 +144,12 @@ QSizeF ContentItemCreator::cellSize() const
}
MGridPage::MGridPage()
- : pageShown(false),
- m_itemSize(10,10),
- m_columnsPortrait(2),
- m_columnsLandscape(4)
+ : TemplatePage(TemplatePage::ListsGridsAndPopups),
+ pageShown(false),
+ m_itemSize(10,10),
+ m_columnsPortrait(2),
+ m_columnsLandscape(4)
{
- gid = TemplatePage::ListsGridsAndMenus;
setObjectName("gridPage");
}
@@ -160,9 +162,9 @@ void MGridPage::createContent()
MApplicationPage::createContent();
MTheme::addPixmapDirectory(QDir(CONTACTS_DIR).canonicalPath());
- QGraphicsWidget * panel = centralWidget();
+ QGraphicsWidget *panel = centralWidget();
- MLayout* layout = new MLayout(panel);
+ MLayout *layout = new MLayout(panel);
layout->setContentsMargins(0,0,0,0);
panel->setLayout(layout);
@@ -173,24 +175,30 @@ void MGridPage::createContent()
layout->setPortraitPolicy(portraitPolicy);
list = new MList(panel);
- list->setObjectName( "wgList" );
+ list->setObjectName("wgList");
landscapePolicy->addItem(list);
portraitPolicy->addItem(list);
- connect( this, SIGNAL(appeared()), this, SLOT(configureGrid()) );
+ if (MApplication::activeApplicationWindow()->orientation() == M::Landscape) {
+ list->setColumns(m_columnsLandscape);
+ m_itemSize.setWidth(exposedContentRect().width() / m_columnsLandscape);
+ } else {
+ list->setColumns(m_columnsPortrait);
+ m_itemSize.setWidth(exposedContentRect().width() / m_columnsPortrait);
+ }
+ m_itemSize.setHeight(m_itemSize.width());
- ContentItemCreator * cellCreator = new ContentItemCreator(this);
- list->setCellCreator(cellCreator);
+ connect(this, SIGNAL(appeared()), this, SLOT(configureGrid()));
- m_itemSize.setWidth( geometry().width() / m_columnsLandscape );
- m_itemSize.setHeight( m_itemSize.width() );
+ ContentItemCreator *cellCreator = new ContentItemCreator(this);
+ list->setCellCreator(cellCreator);
- GridModel * model = new GridModel(m_itemSize.toSize(), Utils::mediaArtDir());
+ GridModel *model = new GridModel(m_itemSize.toSize(), Utils::mediaArtDir());
list->setItemModel(model);
- connect( this, SIGNAL(rate(MediaType::Rating,QString)), model, SLOT(rateImage(MediaType::Rating,QString)) );
+ connect(this, SIGNAL(rate(MediaType::Rating,QString)), model, SLOT(rateImage(MediaType::Rating,QString)));
//% "Configuration"
- MAction* configurationAction = new MAction(qtTrId("xx_gridpage_configuration"), this);
+ MAction *configurationAction = new MAction(qtTrId("xx_gridpage_configuration"), this);
configurationAction->setLocation(MAction::ApplicationMenuLocation);
connect(configurationAction, SIGNAL(triggered()), this, SLOT(showGridConfigurationDialog()));
addAction(configurationAction);
@@ -267,18 +275,24 @@ void MGridPage::orientationChangeEvent(MOrientationChangeEvent *event)
{
MApplicationPage::orientationChangeEvent(event);
- connect( sceneManager(), SIGNAL(orientationChangeFinished(M::Orientation)), this, SLOT(orientationChanged(M::Orientation)));
+ orientationChanged(event->orientation());
}
void MGridPage::configureGrid()
{
- if( sceneManager()->orientation() == M::Portrait ) {
- m_itemSize.setHeight( list->geometry().width() / m_columnsPortrait );
+ configureGrid(sceneManager()->orientation());
+}
+
+void MGridPage::configureGrid(M::Orientation orientation)
+{
+ if (orientation == M::Portrait) {
+ m_itemSize.setHeight(list->geometry().width() / m_columnsPortrait);
list->setColumns(m_columnsPortrait);
} else {
- m_itemSize.setHeight( list->geometry().width() / m_columnsLandscape );
+ m_itemSize.setHeight(list->geometry().width() / m_columnsLandscape);
list->setColumns(m_columnsLandscape);
}
+ m_itemSize.setWidth(m_itemSize.height());
updateGeometry();
update();
@@ -344,6 +358,5 @@ void MGridPage::modifyRowsSliderHandle(int newValue)
void MGridPage::orientationChanged(M::Orientation orientation)
{
- Q_UNUSED(orientation)
- configureGrid();
+ configureGrid(orientation);
}