qtinternetradio/ui/src/irstationdetailscontainer.cpp
changeset 3 ee64f059b8e1
parent 2 2e1adbfc62af
child 4 3f2d53f144fe
child 5 0930554dc389
--- a/qtinternetradio/ui/src/irstationdetailscontainer.cpp	Mon May 03 12:25:23 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-#include <HbTextItem>
-#include <HbLabel>
-#include <hbinstance.h>
-#include <hblistwidget.h>
-#include <hblistwidgetitem.h>
-#include <qtextlayout.h>
-#include <QGraphicsLinearLayout>
-
-#include "irqisdsdatastructure.h"
-#include "irstationdetailscontainer.h"
-#include "iruidefines.h"
-#include "irqenums.h"
-
-// Const qreal
-const qreal KOneListHeight = 30;
-const qreal KBlankHeight = 100;
-
-/*
- * Description : constructor
- */
-IRStationDetailsContainer::IRStationDetailsContainer(QObject *aLoaderParent, QGraphicsItem *aParent) :
-    HbScrollArea(aParent), iLoader(aLoaderParent)
-{
-    // Get the display direction
-    HbMainWindow *mainWindow = hbInstance->allMainWindows().at(0);
-    iPortrait = Qt::Vertical == mainWindow->orientation();
-
-    createDetails();
-}
-
-IRStationDetailsContainer::~IRStationDetailsContainer()
-{
-}
-
-/*
- * Description : update the station information.
- */
-void IRStationDetailsContainer::setDetails(IRQPreset* aNowPlayingPreset, const HbIcon& aIcon)
-{
-    iLogo->setIcon(aIcon);
-    iStationName->setText(tr("Name: ") + aNowPlayingPreset->name);
-    iDescription->setText(tr("Description: ") + aNowPlayingPreset->description);
-    iGenres->setText(tr("Genres: ") + aNowPlayingPreset->genreName);
-    iLanguage->setText(tr("Language: ") + aNowPlayingPreset->languageName);
-    iCountry->setText(tr("Country/Region: ") + aNowPlayingPreset->countryName);
-    if (aNowPlayingPreset->type)
-    {
-        iType->setText(tr("Type: Station directory"));
-    }
-    else
-    {
-        iType->setText(tr("Type: User defined"));
-    }
-
-    if (aNowPlayingPreset->getChannelURLCount() > 1)
-    {
-        aNowPlayingPreset->sortURLArray();
-    }
-
-    int bitrate;
-    QString bitr;
-    QString url;
-    QString streamItem;
-    int maxIndex = aNowPlayingPreset->getChannelURLCount();
-
-    iStreamsList->clear();
-
-    // add all the urls to the list.
-    for (int i = 0; i < maxIndex; i++)
-    {
-        int error = aNowPlayingPreset->getChannelBitrate(i, bitrate);
-        if (EIRQErrorNone == error)
-        {
-            bitr.setNum(bitrate);
-            aNowPlayingPreset->getChannelUrlAt(i, url);
-            streamItem = bitr + "kbps: " + url;
-            HbListWidgetItem *item = new HbListWidgetItem();
-            item->setData(QVariant(streamItem), Qt::DisplayRole);
-            iStreamsList->addItem(item);
-        }
-    }
-    resizeContainer();
-}
-
-/*
- * Description : create the details of this widget.
- */
-void IRStationDetailsContainer::createDetails()
-{
-    // Load the XML file
-    iLoader.load(STATION_DETAILS_CONTAINER_LAYOUT_FILENAME);
-    
-    // Find the station information objects
-    iContainer = qobject_cast<HbWidget *> (iLoader.findObject("container"));
-    iLogo = qobject_cast<HbLabel *> (iLoader.findObject("logo"));
-    iStationName = qobject_cast<HbTextItem *> (iLoader.findObject("stationName"));
-    iDescription = qobject_cast<HbTextItem *> (iLoader.findObject("description"));
-    iGenres = qobject_cast<HbTextItem *> (iLoader.findObject("genre"));
-    iLanguage = qobject_cast<HbTextItem *> (iLoader.findObject("language"));
-    iCountry = qobject_cast<HbTextItem *> (iLoader.findObject("country"));
-    iType = qobject_cast<HbTextItem *> (iLoader.findObject("type"));
-    iStreamsList = qobject_cast<HbListWidget *> (iLoader.findObject("streamList"));
-    // Set the wrap method
-    iStationName->setTextWrapping(Hb::TextWordWrap);
-    iDescription->setTextWrapping(Hb::TextWordWrap);
-    iGenres->setTextWrapping(Hb::TextWordWrap);
-    iLanguage->setTextWrapping(Hb::TextWordWrap);
-    iCountry->setTextWrapping(Hb::TextWordWrap);
-    
-    setContentWidget(iContainer);
-
-    // setting this flag prevents the list from scrolling outside it's assigned rectangle
-    setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
-
-    // this sets up the scroll area to scroll in the vertical direction only
-    setScrollDirections(Qt::Vertical);
-
-//    setInertiaEnabled(false);
-
-    setClampingStyle(HbScrollArea::StrictClamping);
-
-    resizeWidget();
-}
-
-/*
- * Description : update the logo picture.
- */
-void IRStationDetailsContainer::setLogo(const HbIcon& aIcon)
-{
-    iLogo->setIcon(aIcon);
-}
-
-/*
- * Description : resize the container if the direction changes.
- */
-void IRStationDetailsContainer::resizeEvent(QGraphicsSceneResizeEvent *event)
-{
-    bool prePortrait = iPortrait;
-    HbMainWindow *mainWindow = hbInstance->allMainWindows().at(0);
-    iPortrait = Qt::Vertical == mainWindow->orientation();
-    if (iPortrait != prePortrait)
-    {
-        resizeContainer();
-    }
-    HbWidget::resizeEvent(event);
-    if (iPortrait)
-    {
-        // portrait mode
-        iContainer->resize(size());
-    }
-    else
-    {
-        // landscape mode
-        iContainer->resize(size());
-    }
-}
-
-/*
- * Description : load the layout according to the direction.
- */
-void IRStationDetailsContainer::resizeContainer()
-{
-    if (iPortrait)
-    {
-        iLoader.load(STATION_DETAILS_CONTAINER_LAYOUT_FILENAME, "portrait");
-    }
-    else
-    {
-        iLoader.load(STATION_DETAILS_CONTAINER_LAYOUT_FILENAME, "landscape");
-    }
-    resizeWidget();
-}
-
-void IRStationDetailsContainer::resizeWidget()
-{
-    qreal totalHeight=0;
-    totalHeight+=iLogo->preferredHeight();
-    totalHeight += countWidgetHeight(iStationName);
-    totalHeight += countWidgetHeight(iDescription);
-    totalHeight += countWidgetHeight(iGenres);
-    totalHeight += countWidgetHeight(iLanguage);
-    totalHeight += countWidgetHeight(iCountry);
-    totalHeight += countWidgetHeight(iType);
-    qreal listHeight = KOneListHeight * iStreamsList->count();
-    iContainer->setMinimumHeight(totalHeight+listHeight+KBlankHeight);
-}
-
-qreal IRStationDetailsContainer::countWidgetHeight( HbTextItem* aTextItem )
-{
-    QTextLayout mTextLayout;
-    mTextLayout.setText(aTextItem->text());
-    mTextLayout.setFont(aTextItem->font());
-    mTextLayout.beginLayout();
-    QFontMetricsF fontMetrics(aTextItem->font());
-    qreal height = 0;
-    qreal width = iDescription->preferredWidth();
-    while(1)
-    {
-        QTextLine line = mTextLayout.createLine();
-        if(!line.isValid())
-        {
-            break;
-        }
-        line.setLineWidth( width );
-        height += fontMetrics.leading();
-        line.setPosition(QPointF(0, height));
-        height += line.height();
-    }
-    mTextLayout.endLayout();
-    aTextItem->setPreferredHeight(height);
-    return height;
-}
-
-void IRStationDetailsContainer::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
-{
-    Q_UNUSED(option);
-    Q_UNUSED(widget);
-
-    painter->setPen(QPen(Qt::darkGray));
-    painter->setBrush(QBrush(Qt::darkGray));
-    painter->drawRect(rect());
-}