phonebookui/pbkcommonui/src/cnthistoryviewitem.cpp
changeset 71 7cc7d74059f9
parent 59 a642906a277a
equal deleted inserted replaced
65:ae724a111993 71:7cc7d74059f9
    14  * Description:
    14  * Description:
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 #include "cnthistoryviewitem.h"
    18 #include "cnthistoryviewitem.h"
       
    19 #include "cntdebug.h"
    19 
    20 
    20 #include <cnthistorymodel.h>
    21 #include <cnthistorymodel.h>
    21 #include <hbframedrawer.h>
    22 #include <hbframedrawer.h>
    22 #include <hbframeitem.h>
    23 #include <hbframeitem.h>
    23 #include <QGraphicsWidget>
    24 #include <QGraphicsWidget>
    35   mIncoming(false),
    36   mIncoming(false),
    36   mNewMessage(false),
    37   mNewMessage(false),
    37   mNewItem(NULL),
    38   mNewItem(NULL),
    38   mFocusItem(NULL)
    39   mFocusItem(NULL)
    39 {
    40 {
       
    41     CNT_ENTRY
       
    42     
       
    43     CNT_EXIT
    40 }
    44 }
    41 
    45 
    42 //---------------------------------------------------------------
    46 //---------------------------------------------------------------
    43 // HbListViewItem::createItem
    47 // HbListViewItem::createItem
    44 // Create a new decorator item.
    48 // Create a new decorator item.
    52 // HbListViewItem::updateChildItems
    56 // HbListViewItem::updateChildItems
    53 //
    57 //
    54 //---------------------------------------------------------------
    58 //---------------------------------------------------------------
    55 void CntHistoryViewItem::updateChildItems()
    59 void CntHistoryViewItem::updateChildItems()
    56 {
    60 {
       
    61     CNT_ENTRY
       
    62     
    57     int flags = modelIndex().data(CntFlagsRole).toInt();
    63     int flags = modelIndex().data(CntFlagsRole).toInt();
    58     mIncoming = flags & CntIncoming ? true : false;
    64     mIncoming = flags & CntIncoming ? true : false;
    59     mNewMessage = flags & CntUnseen ? true : false;
    65     mNewMessage = flags & CntUnseen ? true : false;
       
    66     
       
    67     CNT_LOG_ARGS(mIncoming << mNewMessage)
    60 
    68 
    61     if (mNewMessage)
    69     if (mNewMessage)
    62     {
    70     {
    63         if (!mNewItem)
    71         if (!mNewItem)
    64         {
    72         {
    74             mNewItem = NULL;
    82             mNewItem = NULL;
    75         }
    83         }
    76     }
    84     }
    77     
    85     
    78     HbListViewItem::updateChildItems();
    86     HbListViewItem::updateChildItems();
       
    87     
       
    88     repolish();
       
    89     
       
    90     CNT_EXIT
    79 }
    91 }
    80 
    92 
    81 //---------------------------------------------------------------
    93 //---------------------------------------------------------------
    82 // HbAbstractViewItem::pressStateChanged
    94 // HbAbstractViewItem::pressStateChanged
    83 // This function is called whenever item press state changes.
    95 // This function is called whenever item press state changes.
    84 //---------------------------------------------------------------
    96 //---------------------------------------------------------------
    85 void CntHistoryViewItem::pressStateChanged(bool pressed, bool animate)
    97 void CntHistoryViewItem::pressStateChanged(bool pressed, bool animate)
    86 {
    98 {
       
    99     CNT_ENTRY
       
   100     
    87     Q_UNUSED(animate);
   101     Q_UNUSED(animate);
    88     if (pressed)
   102     if (pressed)
    89     {
   103     {
    90         if (!mFocusItem)
   104         if (!mFocusItem)
    91         {
   105         {
   115         {
   129         {
   116             delete mFocusItem;
   130             delete mFocusItem;
   117             mFocusItem = NULL;
   131             mFocusItem = NULL;
   118         }
   132         }
   119     }
   133     }
   120 }
   134     
   121 
   135     CNT_EXIT
   122 bool CntHistoryViewItem::event(QEvent* e)
       
   123 {
       
   124     bool result;
       
   125     if (e->type() == QEvent::GraphicsSceneResize)
       
   126     {
       
   127         // HbAbstractItemView has a performance improvement when drawing backrounds but seems
       
   128         // to screw the layout of history view items. This workaround fixes the issue. There should
       
   129         // be minimal performance drawbacks since GraphicsSceneResize events are quite few.
       
   130         // TODO: Remove this once Orbit changes their implementation. Not known when
       
   131         QGraphicsWidget *frame = static_cast<QGraphicsWidget*>(primitive("frame"));
       
   132         QRectF frameGeometry = frame->geometry();
       
   133         result = HbListViewItem::event(e);
       
   134         frame->setGeometry(frameGeometry);
       
   135     } 
       
   136     else
       
   137     {
       
   138         result = HbListViewItem::event(e);
       
   139     }
       
   140     return result;
       
   141 }
   136 }
   142 
   137 
   143 // EOF
   138 // EOF