ganeswidgets/src/hgmediawall_p.cpp
branchGCC_SURGE
changeset 10 c348b9772569
parent 8 15f034b8a3b5
child 11 42505cd701c6
child 13 8bf920201dea
equal deleted inserted replaced
4:463f1934e292 10:c348b9772569
    13 *
    13 *
    14 * Description:
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 
    17 
       
    18 #include <HbTextItem>
    18 #include "hgmediawall_p.h"
    19 #include "hgmediawall_p.h"
       
    20 #include "hgwidgetitem.h"
    19 #include "hgcoverflowcontainer.h"
    21 #include "hgcoverflowcontainer.h"
       
    22 #include "hgcenteritemarea.h"
    20 #include "trace.h"
    23 #include "trace.h"
    21 
    24 
    22 HgMediawallPrivate::HgMediawallPrivate() : HgWidgetPrivate()
    25 HgMediawallPrivate::HgMediawallPrivate() : HgWidgetPrivate()
    23 {
    26 {
    24     FUNC_LOG;
    27     FUNC_LOG;
    33 void HgMediawallPrivate::init(Qt::Orientation orientation)
    36 void HgMediawallPrivate::init(Qt::Orientation orientation)
    34 {
    37 {
    35     FUNC_LOG;
    38     FUNC_LOG;
    36 
    39 
    37     Q_Q(HgMediawall);
    40     Q_Q(HgMediawall);
       
    41 
       
    42     mTitleItem = new HbTextItem("", q);
       
    43     q->style()->setItemName(mTitleItem, "title");
       
    44 
       
    45     mDescriptionItem = new HbTextItem("", q);
       
    46     q->style()->setItemName(mDescriptionItem, "description");
       
    47 
       
    48     mCenterItemArea = new HgCenterItemArea(q);
       
    49     q->style()->setItemName(mCenterItemArea, "centeritem");
       
    50 
    38     HgCoverflowContainer* container = new HgCoverflowContainer(q);
    51     HgCoverflowContainer* container = new HgCoverflowContainer(q);
       
    52     q->style()->setItemName(container, "content");
       
    53     container->setCenterItemArea(mCenterItemArea);
    39     // Mediawall supports only horizontal scrolling.
    54     // Mediawall supports only horizontal scrolling.
    40     container->init(orientation);
    55     container->init(orientation);
       
    56 
    41     HgWidgetPrivate::init(container);
    57     HgWidgetPrivate::init(container);
    42     
    58 
    43     q->connect( container, SIGNAL(animationAboutToEnd(QModelIndex)),
    59     q->connect( container, SIGNAL(animationAboutToEnd(QModelIndex)),
    44                 q, SIGNAL(animationAboutToEnd(QModelIndex)) );
    60                 q, SIGNAL(animationAboutToEnd(QModelIndex)) );
    45 }
       
    46 
       
    47 void HgMediawallPrivate::setTitlePosition(HgMediawall::LabelPosition position)
       
    48 {
       
    49     FUNC_LOG;
       
    50 
       
    51     container()->setTitlePosition(position);
       
    52 }
       
    53 
       
    54 HgMediawall::LabelPosition HgMediawallPrivate::titlePosition() const
       
    55 {
       
    56     FUNC_LOG;
       
    57 
       
    58     return container()->titlePosition();
       
    59 }
       
    60 
       
    61 void HgMediawallPrivate::setDescriptionPosition(HgMediawall::LabelPosition position)
       
    62 {
       
    63     FUNC_LOG;
       
    64 
       
    65     container()->setDescriptionPosition(position);
       
    66 }
       
    67 
       
    68 HgMediawall::LabelPosition HgMediawallPrivate::descriptionPosition() const
       
    69 {
       
    70     FUNC_LOG;
       
    71 
       
    72     return container()->descriptionPosition();
       
    73 }
    61 }
    74 
    62 
    75 void HgMediawallPrivate::setTitleFontSpec(const HbFontSpec &fontSpec)
    63 void HgMediawallPrivate::setTitleFontSpec(const HbFontSpec &fontSpec)
    76 {
    64 {
    77     FUNC_LOG;
    65     FUNC_LOG;
    78 
    66 
    79     container()->setTitleFontSpec(fontSpec);
    67     Q_Q(HgMediawall);
       
    68     if (mTitleItem) {
       
    69         mTitleItem->setFontSpec(fontSpec);
       
    70     }
    80 }
    71 }
    81 
    72 
    82 HbFontSpec HgMediawallPrivate::titleFontSpec() const
    73 HbFontSpec HgMediawallPrivate::titleFontSpec() const
    83 {
    74 {
    84     FUNC_LOG;
    75     FUNC_LOG;
    85 
    76 
    86     return container()->titleFontSpec();
    77     if (mTitleItem) {
       
    78         return mTitleItem->fontSpec();
       
    79     }
       
    80     return HbFontSpec();
    87 }
    81 }
    88 
    82 
    89 void HgMediawallPrivate::setDescriptionFontSpec(const HbFontSpec &fontSpec)
    83 void HgMediawallPrivate::setDescriptionFontSpec(const HbFontSpec &fontSpec)
    90 {
    84 {
    91     FUNC_LOG;
    85     FUNC_LOG;
    92 
    86 
    93     container()->setDescriptionFontSpec(fontSpec);
    87     Q_Q(HgMediawall);
       
    88     if (mDescriptionItem) {
       
    89         mDescriptionItem->setFontSpec(fontSpec);
       
    90     }
    94 }
    91 }
    95 
    92 
    96 HbFontSpec HgMediawallPrivate::descriptionFontSpec() const
    93 HbFontSpec HgMediawallPrivate::descriptionFontSpec() const
    97 {
    94 {
    98     FUNC_LOG;
    95     FUNC_LOG;
    99 
    96 
   100     return container()->descriptionFontSpec();
    97     if (mDescriptionItem) {
       
    98         return mDescriptionItem->fontSpec();
       
    99     }
       
   100     return HbFontSpec();
   101 }
   101 }
   102 
   102 
   103 HgCoverflowContainer *HgMediawallPrivate::container()
   103 HgCoverflowContainer *HgMediawallPrivate::container()
   104 {
   104 {
   105     HANDLE_ERROR_NULL(mContainer);
   105     HANDLE_ERROR_NULL(mContainer);
   110 {
   110 {
   111     HANDLE_ERROR_NULL(mContainer);
   111     HANDLE_ERROR_NULL(mContainer);
   112     return qobject_cast<const HgCoverflowContainer *>(mContainer);
   112     return qobject_cast<const HgCoverflowContainer *>(mContainer);
   113 }
   113 }
   114 
   114 
       
   115 void HgMediawallPrivate::updateCurrentItem(const QModelIndex &currentItem)
       
   116 {
       
   117     FUNC_LOG;
       
   118 
       
   119     if (!mContainer || !currentItem.isValid()) return;
       
   120 
       
   121     HgWidgetItem* item = mContainer->itemByIndex(currentItem);
       
   122     INFO("Updating texts for index" << currentItem << ", " << item);
       
   123 
       
   124     if (item) {
       
   125         mTitleItem->setText(item->title());
       
   126         mDescriptionItem->setText(item->description());
       
   127     }
       
   128 }
       
   129 
   115 // EOF
   130 // EOF