clock/clockui/clockviews/src/clockhomecityitem.cpp
changeset 26 a949c2543c15
child 37 360d55486d7f
equal deleted inserted replaced
23:fd30d51f876b 26:a949c2543c15
       
     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:
       
    15 * Definition file for class ClockHomeCityItem.
       
    16 *
       
    17 */
       
    18 
       
    19 // System Includes.
       
    20 #include <QVariantMap>
       
    21 #include <HbStyleLoader>
       
    22 #include <HbTextItem>
       
    23 #include <HbIconItem>
       
    24 #include <HbFrameItem>
       
    25 #include <HbFrameDrawer>
       
    26 
       
    27 // User Includes.
       
    28 #include "clockhomecityitem.h"
       
    29 
       
    30 /*!
       
    31 	\class ClockHomeCityItem
       
    32 
       
    33 	This class creates all the primitives for ClockHomeCityItem item.
       
    34  */
       
    35 
       
    36 /*!
       
    37 	Constructor.
       
    38 
       
    39 	\param parent Pointer to QGraphicsItem.
       
    40  */
       
    41 ClockHomeCityItem::ClockHomeCityItem(QGraphicsItem *parent) :
       
    42 HbWidget(parent)
       
    43 {
       
    44 	// Path for widgetml and css files.
       
    45 	HbStyleLoader::registerFilePath(":/style/clockhomecityitem.css");
       
    46 	HbStyleLoader::registerFilePath(":/style/clockhomecityitem.widgetml");
       
    47 	
       
    48 	// Set the frame to the homecity widget.
       
    49 	HbFrameItem *frame = new HbFrameItem();
       
    50 	frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
       
    51 	frame->frameDrawer().setFrameGraphicsName("qtg_fr_groupbox");
       
    52 	setBackgroundItem(frame->graphicsItem(), -2);
       
    53 
       
    54 }
       
    55 
       
    56 /*!
       
    57  Destructor.
       
    58  */
       
    59 ClockHomeCityItem::~ClockHomeCityItem()
       
    60 {
       
    61 	HbStyleLoader::unregisterFilePath(":/style/clockhomecityitem.css");
       
    62 	HbStyleLoader::unregisterFilePath(":/style/clockhomecityitem.widgetml");
       
    63 }
       
    64 
       
    65 /*!
       
    66 	Sets the data for HomeCity items.
       
    67 	To set textitem data use Qt::DisplayRole
       
    68 	To set iconitem data use Qt::DecorationRole
       
    69 	\param itemData contains the data for all the primitives.
       
    70  */
       
    71 void ClockHomeCityItem::setHomeCityItemData(const QVariantMap &itemData)
       
    72 {
       
    73 	if (!itemData.isEmpty()) {
       
    74 		QMapIterator<QString, QVariant> iter(itemData);
       
    75 		while (iter.hasNext()) {
       
    76 			iter.next();
       
    77 			int value = iter.key().toInt();
       
    78 			switch(value) {
       
    79 				case Date:
       
    80 					if (!mDateText) {
       
    81 						mDateText = new HbTextItem(this);
       
    82 						HbStyle::setItemName(mDateText, "dateText");
       
    83 					}
       
    84 					mDateText->setText(iter.value().toString());
       
    85 					break;
       
    86 				case City:
       
    87 					if (!mCityText) {
       
    88 						mCityText = new HbTextItem(this);
       
    89 						HbStyle::setItemName(mCityText, "cityText");
       
    90 						mCityText->setTextWrapping(Hb::TextNoWrap);
       
    91 					}
       
    92 					mCityText->setText(iter.value().toString());
       
    93 					break;
       
    94 				case Time:
       
    95 					if (!mTimeText) {
       
    96 						mTimeText = new HbTextItem(this);
       
    97 						HbStyle::setItemName(mTimeText, "timeText");
       
    98 						mTimeText->setTextWrapping(Hb::TextNoWrap);
       
    99 					}
       
   100 					mTimeText->setText(iter.value().toString());
       
   101 					break;
       
   102 				case DayNightIndicator:
       
   103 					if (!mDayNightIcon) {
       
   104 						mDayNightIcon = new HbIconItem(this);
       
   105 						HbStyle::setItemName(mDayNightIcon, "dayNightIcon");
       
   106 					}
       
   107 					mDayNightIcon->setIconName(iter.value().toString());
       
   108 					break;
       
   109 				case Dst:
       
   110 					if (!mDstIcon) {
       
   111 						mDstIcon = new HbIconItem(this);
       
   112 						HbStyle::setItemName(mDstIcon, "dstIcon");
       
   113 					}
       
   114 					mDstIcon->setIconName(iter.value().toString());
       
   115 					break;
       
   116 				default:
       
   117 					break;
       
   118 			}
       
   119 		}
       
   120 		repolish();
       
   121 	}
       
   122 }
       
   123 
       
   124 // End of file	--Don't remove this.