diff options
author | Stanislav Ionascu <stanislav.ionascu@nokia.com> | 2010-06-01 10:59:31 +0300 |
---|---|---|
committer | Sergiy Dubovik <sergiy.dubovik@nokia.com> | 2010-06-08 15:17:07 +0300 |
commit | 69f0fca1a5e44e60ac66f755692a353899cba545 (patch) | |
tree | 28842dfdc6c3bf2eff6f190a8abf06665be437cc /src/corelib/widgets/mdetailedlistitem.cpp | |
parent | 95c578656790089058b1fea98382acdbb1540e04 (diff) |
Changes: Fixed common layout styles for basic and detailed list items.
RevBy: Sergiy Dubovik
Diffstat (limited to 'src/corelib/widgets/mdetailedlistitem.cpp')
-rw-r--r-- | src/corelib/widgets/mdetailedlistitem.cpp | 140 |
1 files changed, 99 insertions, 41 deletions
diff --git a/src/corelib/widgets/mdetailedlistitem.cpp b/src/corelib/widgets/mdetailedlistitem.cpp index 2f025448..00b2f33a 100644 --- a/src/corelib/widgets/mdetailedlistitem.cpp +++ b/src/corelib/widgets/mdetailedlistitem.cpp @@ -19,8 +19,9 @@ #include "mdetailedlistitem.h" -#include <MLabel> #include <MImageWidget> +#include <MLabel> +#include <MStylableWidget> #include <QGraphicsGridLayout> @@ -45,92 +46,137 @@ void MDetailedListItem::initLayout() if (!layoutGrid) { layoutGrid = new QGraphicsGridLayout(this); + layoutGrid->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); layoutGrid->setContentsMargins(0, 0, 0, 0); layoutGrid->setSpacing(0); } switch (listItemStyle) { - case MDetailedListItem::ThumbnailTitleSubtitleAndTwoSideIcons : case MDetailedListItem::IconTitleSubtitleAndTwoSideIcons: { iconImage = new MImageWidget(this); - iconImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - if (listItemStyle == MDetailedListItem::IconTitleSubtitleAndTwoSideIcons) + if (listItemStyle == MDetailedListItem::IconTitleSubtitleAndTwoSideIcons) { + setObjectName("DetailedItemIconTitleSubtitleAndTwoSideIcons"); setIconStyle(Icon); - else + } else { + setObjectName("DetailedItemThumbnailTitleSubtitleAndTwoSideIcons"); setIconStyle(Thumbnail); + } titleLabel = new MLabel(this); - titleLabel->setObjectName("CommonTitle"); + titleLabel->setObjectName("CommonTitleWithLeftMargin"); subtitleLabel = new MLabel(this); - subtitleLabel->setObjectName("CommonSubTitle"); + subtitleLabel->setObjectName("CommonSubTitleWithLeftMargin"); sideTopImage = new MImageWidget(this); - sideTopImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - sideTopImage->setObjectName("CommonSubIcon"); + sideTopImage->setObjectName("CommonTopSideIcon"); sideBottomImage = new MImageWidget(this); - sideBottomImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - sideBottomImage->setObjectName("CommonSubIcon"); + sideBottomImage->setObjectName("CommonBottomSideIcon"); - layoutGrid->addItem(iconImage, 0, 0, 4, 1, Qt::AlignLeft | Qt::AlignVCenter); - layoutGrid->addItem(titleLabel, 1, 1, Qt::AlignLeft | Qt::AlignTop); - layoutGrid->addItem(subtitleLabel, 2, 1, Qt::AlignLeft | Qt::AlignBottom); - layoutGrid->addItem(sideTopImage, 1, 2, Qt::AlignRight | Qt::AlignTop); - layoutGrid->addItem(sideBottomImage, 2, 2, Qt::AlignRight | Qt::AlignBottom); - layoutGrid->addItem(new QGraphicsWidget, 3, 1, 1, 2); + layoutGrid->addItem(iconImage, 0, 0, 2, 1, Qt::AlignLeft | Qt::AlignVCenter); + layoutGrid->addItem(titleLabel, 0, 1, Qt::AlignLeft | Qt::AlignTop); + layoutGrid->addItem(subtitleLabel, 1, 1, Qt::AlignLeft | Qt::AlignBottom); + layoutGrid->addItem(sideTopImage, 0, 2, Qt::AlignRight | Qt::AlignTop); + layoutGrid->addItem(sideBottomImage, 1, 2, Qt::AlignRight | Qt::AlignBottom); break; } case MDetailedListItem::IconTitleSubtitleAndSideIconWithLabel: { + setObjectName("DetailedItemIconTitleSubtitleAndSideIconWithLabel"); + iconImage = new MImageWidget(this); - iconImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); iconImage->setObjectName("CommonMainIcon"); titleLabel = new MLabel(this); - titleLabel->setObjectName("CommonTitle"); + titleLabel->setObjectName("CommonTitleWithLeftMargin"); subtitleLabel = new MLabel(this); - subtitleLabel->setObjectName("CommonSubTitle"); + subtitleLabel->setObjectName("CommonSubTitleWithLeftMargin"); sideTopImage = new MImageWidget(this); - sideTopImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - sideTopImage->setObjectName("CommonSubIcon"); + sideTopImage->setObjectName("CommonTopSideIcon"); sideBottomLabel = new MLabel(this); - sideBottomLabel->setObjectName("CommonSubText"); + sideBottomLabel->setObjectName("CommonBottomSideSubTitle"); - layoutGrid->addItem(iconImage, 0, 0, 4, 1, Qt::AlignLeft | Qt::AlignVCenter); - layoutGrid->addItem(titleLabel, 1, 1, Qt::AlignLeft | Qt::AlignTop); - layoutGrid->addItem(subtitleLabel, 2, 1, Qt::AlignLeft | Qt::AlignBottom); - layoutGrid->addItem(sideTopImage, 1, 2, Qt::AlignRight | Qt::AlignTop); - layoutGrid->addItem(sideBottomLabel, 2, 2, Qt::AlignRight | Qt::AlignBottom); - layoutGrid->addItem(new QGraphicsWidget, 3, 1, 1, 2); + layoutGrid->addItem(iconImage, 0, 0, 2, 1, Qt::AlignLeft | Qt::AlignVCenter); + layoutGrid->addItem(titleLabel, 0, 1, Qt::AlignLeft | Qt::AlignTop); + layoutGrid->addItem(subtitleLabel, 1, 1, Qt::AlignLeft | Qt::AlignBottom); + layoutGrid->addItem(sideTopImage, 0, 2, Qt::AlignRight | Qt::AlignTop); + layoutGrid->addItem(sideBottomLabel, 1, 2, Qt::AlignRight | Qt::AlignBottom); break; } - case MDetailedListItem::ThumbnailSmallTitleAndTwoSideIcons: { + case MDetailedListItem::ThumbnailTitleAndTwoSideIcons: { + contentPanel = new MStylableWidget(this); + contentLayoutGrid = new QGraphicsGridLayout(contentPanel); + contentLayoutGrid->setContentsMargins(0, 0, 0, 0); + contentLayoutGrid->setSpacing(0); + contentLayoutGrid->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); + + contentPanel->setObjectName("DetailedItemThumbnailTitleAndTwoSideIcons"); + contentPanel->setContentsMargins(0, 8, 0, 8); + iconImage = new MImageWidget(this); - iconImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); setIconStyle(Thumbnail); titleLabel = new MLabel(this); - titleLabel->setObjectName("CommonSubText"); + titleLabel->setObjectName("CommonTitleWithLeftMargin"); sideTopImage = new MImageWidget(this); - sideTopImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - sideTopImage->setObjectName("CommonSubIcon"); + sideTopImage->setObjectName("CommonTopSideIcon"); sideBottomImage = new MImageWidget(this); - sideBottomImage->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - sideBottomImage->setObjectName("CommonSubIcon"); + sideBottomImage->setObjectName("CommonBottomSideIcon"); - layoutGrid->addItem(iconImage, 0, 0, 4, 1, Qt::AlignLeft | Qt::AlignVCenter); - layoutGrid->addItem(titleLabel, 1, 1, 2, 1, Qt::AlignLeft | Qt::AlignVCenter); - layoutGrid->addItem(sideTopImage, 1, 2, Qt::AlignRight | Qt::AlignTop); - layoutGrid->addItem(sideBottomImage, 2, 2, Qt::AlignRight | Qt::AlignBottom); - layoutGrid->addItem(new QGraphicsWidget, 3, 1, 1, 2); + layoutGrid->addItem(iconImage, 0, 0, Qt::AlignLeft | Qt::AlignVCenter); + + contentLayoutGrid->addItem(titleLabel, 0, 0, 3, 1, Qt::AlignLeft | Qt::AlignVCenter); + contentLayoutGrid->addItem(sideTopImage, 0, 1, Qt::AlignRight | Qt::AlignTop); + contentLayoutGrid->addItem(new QGraphicsWidget, 1, 1, Qt::AlignRight | Qt::AlignVCenter); + contentLayoutGrid->addItem(sideBottomImage, 2, 1, Qt::AlignRight | Qt::AlignBottom); + contentPanel->setLayout(contentLayoutGrid); + layoutGrid->addItem(contentPanel, 0, 1, Qt::AlignLeft | Qt::AlignVCenter); + + break; + } + case MDetailedListItem::ThumbnailTitleSubtitleAndTwoSideIcons: { + contentPanel = new MStylableWidget(this); + contentLayoutGrid = new QGraphicsGridLayout(contentPanel); + contentLayoutGrid->setContentsMargins(0, 0, 0, 0); + contentLayoutGrid->setSpacing(0); + contentLayoutGrid->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); + + contentPanel->setObjectName("DetailedItemThumbnailTitleSubtitleAndTwoSideIcons"); + contentPanel->setContentsMargins(0, 8, 0, 8); + + iconImage = new MImageWidget(this); + setIconStyle(Thumbnail); + + titleLabel = new MLabel(this); + titleLabel->setObjectName("CommonTitleWithLeftMargin"); + + subtitleLabel = new MLabel(this); + subtitleLabel->setObjectName("CommonSubTitleWithLeftMargin"); + + sideTopImage = new MImageWidget(this); + sideTopImage->setObjectName("CommonTopSideIcon"); + + sideBottomImage = new MImageWidget(this); + sideBottomImage->setObjectName("CommonBottomSideIcon"); + + layoutGrid->addItem(iconImage, 0, 0, Qt::AlignLeft | Qt::AlignVCenter); + + contentLayoutGrid->addItem(titleLabel, 0, 0, Qt::AlignLeft | Qt::AlignVCenter); + contentLayoutGrid->addItem(subtitleLabel, 1, 0, Qt::AlignLeft | Qt::AlignVCenter); + contentLayoutGrid->addItem(sideTopImage, 0, 1, Qt::AlignRight | Qt::AlignTop); + contentLayoutGrid->addItem(sideBottomImage, 1, 1, Qt::AlignRight | Qt::AlignBottom); + + contentPanel->setLayout(contentLayoutGrid); + layoutGrid->addItem(contentPanel, 0, 1, Qt::AlignLeft | Qt::AlignVCenter); + break; } default: @@ -152,6 +198,18 @@ void MDetailedListItem::clearLayout() sideTopImage = NULL; sideBottomImage = NULL; sideBottomLabel = NULL; + + if (contentLayoutGrid) { + for (int i = 0; i < contentLayoutGrid->count(); i++) { + QGraphicsLayoutItem *item = contentLayoutGrid->itemAt(0); + contentLayoutGrid->removeAt(0); + delete item; + } + delete contentLayoutGrid; + contentLayoutGrid = NULL; + delete contentPanel; + contentPanel = NULL; + } } } |