--- a/phonebookui/pbkcommonui/src/cnthistoryviewitem.cpp Mon May 03 12:24:20 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cnthistoryviewitem.cpp Fri May 14 15:42:23 2010 +0300
@@ -18,14 +18,20 @@
#include "cnthistoryviewitem.h"
#include <cnthistorymodel.h>
+#include <hbframedrawer.h>
+#include <hbframeitem.h>
+
+#define NEW_EVENT_FRAME "qtg_fr_list_new_item"
//---------------------------------------------------------------
// HbListViewItem::HbListViewItem
// Constructor
//---------------------------------------------------------------
CntHistoryViewItem::CntHistoryViewItem(QGraphicsItem* parent)
-: HbAbstractViewItem(parent),
-itemWidget(NULL)
+: HbListViewItem(parent),
+ mIncoming(false),
+ mNewMessage(false),
+ mNewItem(NULL)
{
}
@@ -35,15 +41,7 @@
//---------------------------------------------------------------
HbAbstractViewItem* CntHistoryViewItem::createItem()
{
- return new CntHistoryViewItem(*this);
-}
-
-//---------------------------------------------------------------
-// HbListViewItem::polish
-//
-//---------------------------------------------------------------
-void CntHistoryViewItem::polish(HbStyleParameters& /*params*/)
-{
+ return new CntHistoryViewItem(*this);
}
//---------------------------------------------------------------
@@ -52,55 +50,27 @@
//---------------------------------------------------------------
void CntHistoryViewItem::updateChildItems()
{
- QStringList data = modelIndex().data(Qt::DisplayRole).toStringList();
- QString iconName = modelIndex().data(Qt::DecorationRole).toString();
- bool incoming = false;
- bool newMessage = false;
- bool status = false;
- if (modelIndex().data(CntHistoryModel::DirectionRole).toInt(&status) == CntHistoryModel::Incoming) {
- incoming = true;
- }
- // This indication applies to smses only
- if (modelIndex().data(CntHistoryModel::ItemTypeRole).toInt(&status) == CntHistoryModel::Message &&
- modelIndex().data(CntHistoryModel::SeenStatusRole).toInt(&status) == CntHistoryModel::Unseen) {
- newMessage = true;
- }
-
- QGraphicsLinearLayout* currentLayout = static_cast<QGraphicsLinearLayout*>(layout());
-
- if (currentLayout == NULL) {
+ int flags = modelIndex().data(CntHistoryModel::FlagsRole).toInt();
+ mIncoming = flags & CntHistoryModel::Incoming ? true : false;
+ mNewMessage = flags & CntHistoryModel::Unseen ? true : false;
- currentLayout = new QGraphicsLinearLayout(this);
- currentLayout->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
- currentLayout->setOrientation(Qt::Horizontal);
- currentLayout->setContentsMargins(0,0,0,0);
-
- //Create item widget
- itemWidget = new CntHistoryViewItemWidget(this);
- currentLayout->addItem(itemWidget);
-
- //Update item widget contents
- itemWidget->setDetails(data.at(0), data.at(1), data.at(2), iconName, incoming, newMessage);
-
- setLayout(currentLayout);
-
- } else {
- // Find the itemWidget item from the layout and remove it
- int i = 0;
- while( itemWidget != static_cast<CntHistoryViewItemWidget*>(currentLayout->itemAt(i)) ) {
- i++;
+ if (mNewMessage)
+ {
+ if (!mNewItem)
+ {
+ mNewItem = new HbFrameItem(NEW_EVENT_FRAME, HbFrameDrawer::ThreePiecesVertical, this);
+ style()->setItemName(mNewItem, "newitem");
}
- currentLayout->removeAt(i);
- delete itemWidget;
-
- //Create new item widget
- itemWidget = new CntHistoryViewItemWidget(this);
- currentLayout->addItem(itemWidget);
-
- //Update item widget contents
- itemWidget->setDetails(data.at(0), data.at(1), data.at(2), iconName, incoming, newMessage);
-
- updateGeometry();
}
+ else
+ {
+ if (mNewItem)
+ {
+ delete mNewItem;
+ mNewItem = NULL;
+ }
+ }
+
+ HbListViewItem::updateChildItems();
}
// EOF