messagingapp/msgui/unifiedviewer/src/univiewslidewidget.cpp
changeset 31 ebfee66fde93
child 34 84197e66a4bd
equal deleted inserted replaced
30:6a20128ce557 31:ebfee66fde93
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description: This widget holds the message details and silde contents.
       
    15  *
       
    16  */
       
    17 
       
    18 #include "univiewslidewidget.h"
       
    19 
       
    20 // SYSTEM INCLUDES
       
    21 #include <QGraphicsLinearLayout>
       
    22 
       
    23 // USER INCLUDES
       
    24 #include "univiewerbodywidget.h"
       
    25 #include "univiewerfeeder.h"
       
    26 #include "univiewerheadercontainer.h"
       
    27 #include "nativemessageconsts.h"
       
    28 
       
    29 #define LOC_SLIDE_COUNTER hbTrId("txt_messaging_formlabel_slide_l1l2")
       
    30 
       
    31 //---------------------------------------------------------------
       
    32 // UniViewSlideWidget :: UniViewSlideWidget
       
    33 // @see header file
       
    34 //---------------------------------------------------------------
       
    35 UniViewSlideWidget::UniViewSlideWidget(UniViewerFeeder* feeder, int slideNumber,
       
    36     QGraphicsItem * parent) :
       
    37     HbWidget(parent), mInsideLayout(false), mSlideNumber(slideNumber), mViewFeeder(feeder),
       
    38         mHeaderContainer(0)
       
    39 
       
    40 {
       
    41     mMainLayout = new QGraphicsLinearLayout(Qt::Vertical, this);
       
    42     mMainLayout->setSpacing(0);
       
    43     mMainLayout->setContentsMargins(0, 0, 0, 0);
       
    44 
       
    45     mBody = new UniViewerBodyWidget(this);
       
    46 
       
    47     connect(mBody, SIGNAL(sendMessage(const QString&)), this, SIGNAL(sendMessage(const QString&)));
       
    48 
       
    49     /**
       
    50      * If its a first slide create the headers and attach to the main layout
       
    51      */
       
    52     if (mSlideNumber == 0) {
       
    53         mHeaderContainer = new UniViewerHeaderContainer(mViewFeeder, this);
       
    54 
       
    55         // Always connect to populate sms content
       
    56         connect(mViewFeeder, SIGNAL(msgBody(QString)), mBody, SLOT(setTextContent(QString)));
       
    57         
       
    58         connect(mHeaderContainer,SIGNAL(sendMessage(const QString&,const QString&)),
       
    59                 this, SIGNAL(sendMessage(const QString&,const QString&)));
       
    60         
       
    61         
       
    62 
       
    63         mMainLayout->addItem(mHeaderContainer);
       
    64     }
       
    65 
       
    66     mMainLayout->addItem(mBody);
       
    67 
       
    68     setLayout(mMainLayout);
       
    69 }
       
    70 
       
    71 //---------------------------------------------------------------
       
    72 // UniViewSlideWidget::~UniViewSlideWidget
       
    73 // @see header file
       
    74 //---------------------------------------------------------------
       
    75 UniViewSlideWidget::~UniViewSlideWidget()
       
    76 {
       
    77 
       
    78 }
       
    79 
       
    80 //---------------------------------------------------------------
       
    81 //UniViewSlideWidget::clearContent
       
    82 // @see header file
       
    83 //---------------------------------------------------------------
       
    84 void UniViewSlideWidget::clearContent()
       
    85 {
       
    86     if (mHeaderContainer) {
       
    87         mHeaderContainer->clearContent();
       
    88     }
       
    89     if (mBody) {
       
    90         mBody->clearContent();
       
    91     }
       
    92 }
       
    93 
       
    94 //---------------------------------------------------------------
       
    95 // UniViewSlideWidget::populateContent
       
    96 // @see header file
       
    97 //---------------------------------------------------------------
       
    98 void UniViewSlideWidget::populateContent()
       
    99 {
       
   100     if (mSlideNumber == 0) {
       
   101         mViewFeeder->fetchDetails();
       
   102         populateFirstSlide();
       
   103     }
       
   104 
       
   105     if (mViewFeeder->msgType() == KSenduiMtmMmsUidValue) {
       
   106         QString slideString;
       
   107         if (mViewFeeder->slideCount() > 1) {
       
   108             slideString = QString(LOC_SLIDE_COUNTER).arg(mSlideNumber + 1).arg(
       
   109                 mViewFeeder->slideCount());
       
   110         }
       
   111         mBody->setSlideContents(mViewFeeder->slideContent(mSlideNumber), slideString);
       
   112     }
       
   113 }
       
   114 
       
   115 //---------------------------------------------------------------
       
   116 // UniViewSlideWidget::populateFirstSlide
       
   117 // @see header file
       
   118 //---------------------------------------------------------------
       
   119 void UniViewSlideWidget::populateFirstSlide()
       
   120 {
       
   121     mHeaderContainer->populateContent();
       
   122 }
       
   123 
       
   124 //---------------------------------------------------------------
       
   125 // UniViewSlideWidget::insideLayout
       
   126 // @see header file
       
   127 //---------------------------------------------------------------
       
   128 bool UniViewSlideWidget::insideLayout()
       
   129 {
       
   130     return mInsideLayout;
       
   131 }
       
   132 
       
   133 //---------------------------------------------------------------
       
   134 // UniViewSlideWidget::setInsideLayout
       
   135 // @see header file
       
   136 //---------------------------------------------------------------
       
   137 void UniViewSlideWidget::setInsideLayout(bool inside)
       
   138 {
       
   139     mInsideLayout = inside;
       
   140 }
       
   141 
       
   142 // EOF