messagingapp/msgui/unifiedviewer/src/univiewerbodywidget.cpp
changeset 51 3507212d340e
parent 46 b1f0785c289d
equal deleted inserted replaced
49:2a272ef608c4 51:3507212d340e
    32 const QString IMAGE_MIMETYPE("image");
    32 const QString IMAGE_MIMETYPE("image");
    33 const QString AUDIO_MIMETYPE("audio");
    33 const QString AUDIO_MIMETYPE("audio");
    34 const QString VIDEO_MIMETYPE("video");
    34 const QString VIDEO_MIMETYPE("video");
    35 const QString TEXT_MIMETYPE("text");
    35 const QString TEXT_MIMETYPE("text");
    36 
    36 
       
    37 static const char VIDEO_ICON[] = "qtg_large_video_player";
       
    38 
    37 //---------------------------------------------------------------
    39 //---------------------------------------------------------------
    38 //UniViewerBodyWidget::UniViewerBodyWidget
    40 //UniViewerBodyWidget::UniViewerBodyWidget
    39 // @see header file
    41 // @see header file
    40 //---------------------------------------------------------------
    42 //---------------------------------------------------------------
    41 UniViewerBodyWidget::UniViewerBodyWidget(QGraphicsItem *parent) :
    43 UniViewerBodyWidget::UniViewerBodyWidget(QGraphicsItem *parent) :
    49 //UniViewerBodyWidget::~UniViewerBodyWidget
    51 //UniViewerBodyWidget::~UniViewerBodyWidget
    50 // @see header file
    52 // @see header file
    51 //---------------------------------------------------------------
    53 //---------------------------------------------------------------
    52 UniViewerBodyWidget::~UniViewerBodyWidget()
    54 UniViewerBodyWidget::~UniViewerBodyWidget()
    53 {
    55 {
    54 }
       
    55 
       
    56 //---------------------------------------------------------------
       
    57 //UniViewerBodyWidget::setImage
       
    58 // @see header file
       
    59 //---------------------------------------------------------------
       
    60 void UniViewerBodyWidget::setPixmap(UniMessageInfo *info)
       
    61 {
       
    62     setHasPixmap(true);
       
    63     //create image item instance
       
    64     if (!mPixmapItem) {
       
    65         mPixmapItem = new UniViewerPixmapWidget(this);
       
    66         HbStyle::setItemName(mPixmapItem, "pixmap");
       
    67     }
       
    68     mPixmapItem->hide();
       
    69     mPixmapItem->populate(info);
       
    70 
       
    71     this->repolish();
       
    72 }
       
    73 
       
    74 //---------------------------------------------------------------
       
    75 //UniViewerBodyWidget::setAudio
       
    76 // @see header file
       
    77 //---------------------------------------------------------------
       
    78 void UniViewerBodyWidget::setAudio(UniMessageInfo *info)
       
    79 {
       
    80     if (!mAudioItem) {
       
    81         mAudioItem = new UniViewerAudioWidget(this);
       
    82         HbStyle::setItemName(mAudioItem, "audioItem");
       
    83     }
       
    84     mAudioItem->hide();
       
    85     mAudioItem->populate(info);
       
    86 
       
    87     this->repolish();
       
    88 }
       
    89 
       
    90 //---------------------------------------------------------------
       
    91 //UniViewerBodyWidget::setVideo
       
    92 // @see header file
       
    93 //---------------------------------------------------------------
       
    94 void UniViewerBodyWidget::setVideo(UniMessageInfo *info)
       
    95 {
       
    96     setHasPixmap(true);
       
    97     //create image item instance
       
    98     if (!mPixmapItem) {
       
    99        mPixmapItem = new UniViewerPixmapWidget(this);
       
   100        HbStyle::setItemName(mPixmapItem, "pixmap");
       
   101        connect(mPixmapItem, SIGNAL(setOverlayIcon(QString)), this, SLOT(setOverlayIcon(QString)));
       
   102     }
       
   103     mPixmapItem->hide();
       
   104     mPixmapItem->populate(info);
       
   105     
       
   106     this->repolish();
       
   107 }
       
   108 
       
   109 //---------------------------------------------------------------
       
   110 //UniViewerBodyWidget::setText
       
   111 // @see header file
       
   112 //---------------------------------------------------------------
       
   113 void UniViewerBodyWidget::setText(QString text)
       
   114 {
       
   115     setHasText(true);
       
   116 
       
   117     if (!mTextItem) {
       
   118         mTextItem = new UniViewerTextItem(this);
       
   119         HbStyle::setItemName(mTextItem, "textItem");
       
   120         connect(mTextItem, SIGNAL(sendMessage(const QString&)), this,
       
   121             SIGNAL(sendMessage(const QString&)));
       
   122     }
       
   123     mTextItem->hide();
       
   124     text.replace(QChar::ParagraphSeparator, QChar::LineSeparator);
       
   125     text.replace('\r', QChar::LineSeparator);
       
   126     mTextItem->setText(text);
       
   127 
       
   128     this->repolish();
       
   129 }
       
   130 
       
   131 //---------------------------------------------------------------
       
   132 // UniViewerBodyWidget::setSlideCounter
       
   133 // @see header file
       
   134 //---------------------------------------------------------------
       
   135 void UniViewerBodyWidget::setSlideCounter(QString &slideCounter)
       
   136 {
       
   137     if (!mSlideCounter) {
       
   138         mSlideCounter = new HbTextItem(this);
       
   139         HbStyle::setItemName(mSlideCounter, "slideCounter");
       
   140     }
       
   141 
       
   142     mSlideCounter->hide();
       
   143     mSlideCounter->setText(slideCounter);
       
   144 
       
   145     this->repolish();
       
   146 }
    56 }
   147 
    57 
   148 //---------------------------------------------------------------
    58 //---------------------------------------------------------------
   149 // UniViewerBodyWidget::setHasText
    59 // UniViewerBodyWidget::setHasText
   150 // @see header file
    60 // @see header file
   261     setHasPixmap(false);
   171     setHasPixmap(false);
   262     repolish();
   172     repolish();
   263 }
   173 }
   264 
   174 
   265 //---------------------------------------------------------------
   175 //---------------------------------------------------------------
   266 // UniViewerBodyWidget::setOverlayIcon
   176 // UniViewerBodyWidget::setText
   267 // @see header file
   177 // @see header file
   268 //---------------------------------------------------------------
   178 //---------------------------------------------------------------
   269 void UniViewerBodyWidget::setOverlayIcon(const QString &iconName)
   179 void UniViewerBodyWidget::setText(QString text)
   270 {
   180 {
   271     if (!mOverlayItem) {
   181     setHasText(true);
   272         mOverlayItem = new HbIconItem(this);
   182 
   273         HbStyle::setItemName(mOverlayItem, "overlayItem");
   183     if (!mTextItem) {
   274     }
   184         mTextItem = new UniViewerTextItem(this);
   275 
   185         mTextItem->setObjectName("textItem");
   276     mOverlayItem->hide();
   186         HbStyle::setItemName(mTextItem, "textItem");
   277     mOverlayItem->setIconName(iconName);
   187         connect(mTextItem, SIGNAL(sendMessage(const QString&)), this,
       
   188             SIGNAL(sendMessage(const QString&)));
       
   189     }
       
   190     mTextItem->hide();
       
   191     text.replace(QChar::ParagraphSeparator, QChar::LineSeparator);
       
   192     text.replace('\r', QChar::LineSeparator);
       
   193     mTextItem->setText(text);
   278 
   194 
   279     this->repolish();
   195     this->repolish();
   280 }
   196 }
   281 
   197 
   282 //---------------------------------------------------------------
   198 //---------------------------------------------------------------
   427     szHint.rheight() = qMax(maxHeight, szHint.height());
   343     szHint.rheight() = qMax(maxHeight, szHint.height());
   428 
   344 
   429     return szHint;
   345     return szHint;
   430 }
   346 }
   431 
   347 
       
   348 //---------------------------------------------------------------
       
   349 //UniViewerBodyWidget::setPixmap
       
   350 // @see header file
       
   351 //---------------------------------------------------------------
       
   352 void UniViewerBodyWidget::setPixmap(UniMessageInfo *info)
       
   353 {
       
   354     setHasPixmap(true);
       
   355     //create image item instance
       
   356     if (!mPixmapItem) {
       
   357         mPixmapItem = new UniViewerPixmapWidget(this);
       
   358         HbStyle::setItemName(mPixmapItem, "pixmap");
       
   359     }
       
   360     mPixmapItem->hide();
       
   361     mPixmapItem->populate(info);
       
   362 
       
   363     this->repolish();
       
   364 }
       
   365 
       
   366 //---------------------------------------------------------------
       
   367 //UniViewerBodyWidget::setAudio
       
   368 // @see header file
       
   369 //---------------------------------------------------------------
       
   370 void UniViewerBodyWidget::setAudio(UniMessageInfo *info)
       
   371 {
       
   372     if (!mAudioItem) {
       
   373         mAudioItem = new UniViewerAudioWidget(this);
       
   374         HbStyle::setItemName(mAudioItem, "audioItem");
       
   375     }
       
   376     mAudioItem->hide();
       
   377     mAudioItem->populate(info);
       
   378 
       
   379     this->repolish();
       
   380 }
       
   381 
       
   382 //---------------------------------------------------------------
       
   383 //UniViewerBodyWidget::setVideo
       
   384 // @see header file
       
   385 //---------------------------------------------------------------
       
   386 void UniViewerBodyWidget::setVideo(UniMessageInfo *info)
       
   387 {
       
   388     setHasPixmap(true);
       
   389     //create image item instance
       
   390     if (!mPixmapItem) {
       
   391         mPixmapItem = new UniViewerPixmapWidget(this);
       
   392         HbStyle::setItemName(mPixmapItem, "pixmap");
       
   393         connect(mPixmapItem, SIGNAL(thumbnailFound(bool, UniMessageInfo*)), this,
       
   394             SLOT(onThumbnailFound(bool, UniMessageInfo*)));
       
   395     }
       
   396     mPixmapItem->hide();
       
   397     mPixmapItem->populate(info);
       
   398 
       
   399     this->repolish();
       
   400 }
       
   401 
       
   402 //---------------------------------------------------------------
       
   403 // UniViewerBodyWidget::setSlideCounter
       
   404 // @see header file
       
   405 //---------------------------------------------------------------
       
   406 void UniViewerBodyWidget::setSlideCounter(QString &slideCounter)
       
   407 {
       
   408     if (!mSlideCounter) {
       
   409         mSlideCounter = new HbTextItem(this);
       
   410         HbStyle::setItemName(mSlideCounter, "slideCounter");
       
   411     }
       
   412 
       
   413     mSlideCounter->hide();
       
   414     mSlideCounter->setText(slideCounter);
       
   415 
       
   416     this->repolish();
       
   417 }
       
   418 
       
   419 //---------------------------------------------------------------
       
   420 // UniViewerBodyWidget::setOverlayIcon
       
   421 // @see header file
       
   422 //---------------------------------------------------------------
       
   423 void UniViewerBodyWidget::setOverlayIcon(const QString &iconName)
       
   424 {
       
   425     if (!mOverlayItem) {
       
   426         mOverlayItem = new HbIconItem(this);
       
   427         HbStyle::setItemName(mOverlayItem, "overlayItem");
       
   428     }
       
   429 
       
   430     mOverlayItem->hide();
       
   431     mOverlayItem->setIconName(iconName);
       
   432 
       
   433     this->repolish();
       
   434 }
       
   435 
       
   436 //---------------------------------------------------------------
       
   437 // UniViewerBodyWidget::onThumbnailFound
       
   438 // @see header file
       
   439 //---------------------------------------------------------------
       
   440 void UniViewerBodyWidget::onThumbnailFound(bool result, UniMessageInfo *info)
       
   441 {
       
   442     if (result) {
       
   443         // Thumbnail generation success
       
   444         setOverlayIcon(VIDEO_ICON);
       
   445     }
       
   446     else {
       
   447         // Show video content in audio widget.
       
   448         setAudio(info);
       
   449 
       
   450         // Remove the pixmap widget.
       
   451         setHasPixmap(false);
       
   452         if (mPixmapItem) {
       
   453             HbStyle::setItemName(mPixmapItem, "");
       
   454             mPixmapItem->hide();
       
   455         }
       
   456     }
       
   457 }
       
   458 
   432 // EOF
   459 // EOF