diff -r 6aeb7a756187 -r 3c88a81ff781 ginebra2/GridView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ginebra2/GridView.cpp Fri Oct 15 17:30:59 2010 -0400 @@ -0,0 +1,74 @@ +#include "GridView.h" + +#include +#include +#include + +namespace GVA { + +GridView::GridView(QGraphicsItem *parent) : + QGraphicsWidget(parent), + m_gridLayout(new QGraphicsGridLayout(this)), + m_columnCount(2), + m_rowCount(2) +{ + #ifdef Q_WS_MAEMO_5 + m_gridLayout->setSpacing(16); + m_gridLayout->setContentsMargins(0, 0, 0 ,0); + #endif + + setLayout(m_gridLayout); + palette().setColor(QPalette::Normal, QPalette::Window, QColor(0, 44, 0)); +} + +GridView::~GridView() { + clear(); +} + +void GridView::setColumnRowCounts(int columns, int rows) { + m_columnCount = columns; + m_rowCount = rows; + + #ifndef Q_WS_MAEMO_5 + if (m_columnCount == 2) // potrait mode + { + m_gridLayout->setVerticalSpacing(49); + m_gridLayout->setHorizontalSpacing(14); + } + else + { + m_gridLayout->setVerticalSpacing(13); + m_gridLayout->setHorizontalSpacing(42); + } + m_gridLayout->setContentsMargins(0, 0, 0 ,0); + #endif + +} + +void GridView::rebuildLayout() { + int column = 0; + int row = 0; + foreach(QGraphicsLayoutItem *item, m_items) { + if(column == m_columnCount) { + row++; + column = 0; + } + //qDebug() << __PRETTY_FUNCTION__ << column << row; + m_gridLayout->addItem(item, row, column); + column++; + } + m_gridLayout->activate(); +} + +void GridView::addItem(QGraphicsLayoutItem *item) { + m_items.append(item); +} + +void GridView::clear() { + while (!m_items.isEmpty()) + delete m_items.takeFirst(); +} + + +} // namespace +