phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.cpp
changeset 22 6bb1b21d2484
parent 21 92ab7f8d0eab
child 27 2f8f8080a020
--- a/phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.cpp	Fri Mar 19 09:28:42 2010 +0200
+++ b/phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.cpp	Fri Apr 16 14:58:25 2010 +0300
@@ -28,6 +28,7 @@
 #include <hbfontspec.h>
 #include <hbdeviceprofile.h>
 #include <hbcolorscheme.h>
+#include <hbstringutil.h>
 
 static const int BUBBLE_ICON_ANIM_INTERVAL = 500; // ms
 
@@ -55,11 +56,11 @@
     return BP_Bubble_primitive_count;
 }
 
-HbWidgetBase* BubbleStylePlugin::createPrimitive(
+QGraphicsItem* BubbleStylePlugin::createPrimitive(
     HbStyle::Primitive primitive, 
     QGraphicsItem *parent) const
 {
-    HbWidgetBase* item = 0;
+    QGraphicsItem* item = 0;
     
     switch(primitive) {
     case BP_Bubble_frame: {
@@ -87,7 +88,12 @@
         HbIconItem* icon = new HbIconItem(parent);
         item = icon;
         }
-        break;    
+        break;
+    case BP_Ciphering_icon: {
+        HbIconItem* icon = new HbIconItem(parent);
+        item = icon;
+        }
+        break;
     default:
         break;
     } // switch
@@ -119,26 +125,23 @@
         break;                
 
     case BP_Text1_text: {
-        HbTextItem* text = static_cast<HbTextItem*>(item);
-        text->setText( opt->mText1 );
-        text->setElideMode( opt->mText1Clip );
-        setFont(text, primitive, opt);
+        HbTextItem* textItem = static_cast<HbTextItem*>(item);
+        setText(textItem, opt->mText1, opt->mText1Clip);
+        setFont(textItem, primitive, opt);
         }
         break;    
     
     case BP_Text2_text: {
-        HbTextItem* text = static_cast<HbTextItem*>(item);
-        text->setText( opt->mText2 );
-        text->setElideMode( opt->mText2Clip );
-        setFont(text, primitive, opt);
+        HbTextItem* textItem = static_cast<HbTextItem*>(item);
+        setText(textItem, opt->mText2, opt->mText2Clip);
+        setFont(textItem, primitive, opt);
         }
         break;    
 
     case BP_Text3_text: {
-        HbTextItem* text = static_cast<HbTextItem*>(item);
-        text->setText( opt->mText3 );
-        text->setElideMode( opt->mText3Clip );
-        setFont(text, primitive, opt);
+        HbTextItem* textItem = static_cast<HbTextItem*>(item);
+        setText(textItem, opt->mText3, opt->mText3Clip);
+        setFont(textItem, primitive, opt);
         }
         break;    
     
@@ -152,15 +155,21 @@
         if ( (( opt->mCallState == BubbleManagerIF::Incoming ) ||
               ( opt->mCallState == BubbleManagerIF::Waiting )) &&
              ( opt->mCallFlags & BubbleManagerIF::Diverted ) ) {
-            icon->setIconName(":/resources/qgn_indi_call_diverted.svg");
+            icon->setIconName(":/qgn_indi_call_diverted.svg");
+            setIconColor(icon);
+            icon->show();
+            } else {
+            icon->setIconName(QString());
+            icon->hide();
+            }
+        }
+        break;
 
-            // to be done via css when possible
-            QColor color;
-            color = HbColorScheme::color("list_item_title_normal");
-            if (color.isValid()) {
-                icon->setColor(color);
-            }
-
+    case BP_Ciphering_icon: {
+        HbIconItem* icon = static_cast<HbIconItem*>(item);
+        if ( opt->mCallFlags & BubbleManagerIF::NoCiphering ) {
+            icon->setIconName("qtg_mono_ciphering_off");
+            setIconColor(icon);
             icon->show();
             } else {
             icon->setIconName(QString());
@@ -174,7 +183,25 @@
     } // switch
 }
 
-void BubbleStylePlugin::setFont(HbTextItem* item, int primitive, const BubbleStyleOption *option) const
+void BubbleStylePlugin::setText(
+    HbTextItem* item,
+    const QString& text,
+    Qt::TextElideMode clip) const
+{
+    if (clip == Qt::ElideLeft) {
+        // convert phonenumber to phone ui language
+        QString converted = HbStringUtil::convertDigits(text);
+        item->setText(converted);
+    } else {
+        item->setText( text );
+    }
+    item->setElideMode( clip );
+}
+
+void BubbleStylePlugin::setFont(
+    HbTextItem* item,
+    int primitive,
+    const BubbleStyleOption *option) const
 {
     int primitiveLineNumber = 0;
     if (primitive==BP_Text1_text) {
@@ -204,6 +231,16 @@
     }
 }
 
+void BubbleStylePlugin::setIconColor(HbIconItem* icon) const
+{
+    // to be done via css when possible
+    QColor color;
+    color = HbColorScheme::color("list_item_title_normal");
+    if (color.isValid()) {
+        icon->setColor(color);
+    }
+}
+
 QString BubbleStylePlugin::layoutPath() const
 {
    QString path(":/");
@@ -218,43 +255,43 @@
     case BubbleManagerIF::Alerting:
     case BubbleManagerIF::Waiting:
         if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon(":/qtg_large_voip_received_call.svg");
-            anim->appendIcon(":/qtg_large_voip_dialled_call.svg");
+            anim->appendIcon("qtg_large_voip_received_call");
+            anim->appendIcon("qtg_large_voip_dialled_call");
         } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon(":/qtg_large_video_received_call.svg");
-            anim->appendIcon(":/qtg_large_video_dialled_call.svg");         
+            anim->appendIcon("qtg_large_video_received_call");
+            anim->appendIcon("qtg_large_video_dialled_call");
         } else {
-            anim->appendIcon(":/pri_large_green_handset.svg");
-            anim->appendIcon(":/pri_large_yellow_handset.svg");
+            anim->appendIcon("qtg_large_active_call");
+            anim->appendIcon("qtg_large_waiting_call");
         }
         break;
     case BubbleManagerIF::Outgoing:
     case BubbleManagerIF::Active:
         if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon(":/qtg_large_voip_received_call.svg");
+            anim->appendIcon("qtg_large_voip_received_call");
         } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon(":/qtg_large_video_received_call.svg");
+            anim->appendIcon("qtg_large_video_received_call");
         } else {
-            anim->appendIcon(":/pri_large_green_handset.svg");
+            anim->appendIcon("qtg_large_active_call");
         }            
         break;
     case BubbleManagerIF::OnHold:
         if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon(":/qtg_large_voip_dialled_call.svg");
+            anim->appendIcon("qtg_large_voip_dialled_call");
         } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon(":/qtg_large_video_dialled_call.svg");
+            anim->appendIcon("qtg_large_video_dialled_call");
         } else {
-            anim->appendIcon(":/pri_large_yellow_handset.svg");
+            anim->appendIcon("qtg_large_waiting_call");
         }                      
         break;
     case BubbleManagerIF::Disconnected:
     case BubbleManagerIF::AlertToDisconnected:
         if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon(":/qtg_large_voip_missed_call.svg");
+            anim->appendIcon("qtg_large_voip_missed_call");
         } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon(":/qtg_large_video_missed_call.svg");
+            anim->appendIcon("qtg_large_video_missed_call");
         } else {
-            anim->appendIcon(":/pri_large_red_handset.svg");
+            anim->appendIcon("qtg_large_end_call");
         }           
         break;
     default: