contentstorage/caclient/s60/src/camenuiconutility.cpp
changeset 106 e78d6e055a5b
parent 102 8b8b34fa9751
child 107 b34d53f6acdf
equal deleted inserted replaced
102:8b8b34fa9751 106:e78d6e055a5b
    65  Get icon from apparc.
    65  Get icon from apparc.
    66  \param entry const reference to CaEntry.
    66  \param entry const reference to CaEntry.
    67  \param sie const reference to icon size.
    67  \param sie const reference to icon size.
    68  \retval icon.
    68  \retval icon.
    69  */
    69  */
    70 LOCAL_C HbIcon getIconFromApparcL(const CaEntry& entry, const QSize &size)
    70 LOCAL_C HbIcon getIconFromApparcL(int uidValue, const QSize &size)
    71 {
    71 {
    72     HbIcon icon;
    72     HbIcon icon;
    73     
    73     
    74     RApaLsSession apaLsSession;
    74     RApaLsSession apaLsSession;
    75     CleanupClosePushL(apaLsSession);
    75     CleanupClosePushL(apaLsSession);
    76     User::LeaveIfError(apaLsSession.Connect());
    76     User::LeaveIfError(apaLsSession.Connect());
    77 
    77 
    78     QString uidString(entry.attribute(appUidAttributeName));
    78     TUid uid = uid.Uid(uidValue);
    79     TUid uid;
       
    80     uid = uid.Uid(uidString.toInt());
       
    81     
       
    82     CApaAppServiceInfoArray* skinArray(NULL);
    79     CApaAppServiceInfoArray* skinArray(NULL);
    83     TRAPD( err, skinArray = apaLsSession.GetAppServiceOpaqueDataLC(uid, TUid::Uid(0x2002DCF3));
    80     TRAPD( err, skinArray =
    84     if (err == KErrNone && skinArray ) {
    81         apaLsSession.GetAppServiceOpaqueDataLC(uid, TUid::Uid(0x2002DCF3));
    85         TArray<TApaAppServiceInfo> tmpArray( skinArray->Array() );
    82         if (err == KErrNone && skinArray ) {
    86         if ( tmpArray.Count() ) {
    83             TArray<TApaAppServiceInfo> tmpArray( skinArray->Array() );
    87             TPtrC8 opaque(tmpArray[0].OpaqueData());
    84             if ( tmpArray.Count() ) {
    88             const TPtrC16 iconName((TText16*) opaque.Ptr(),(opaque.Length()+1)>>1);
    85                 TPtrC8 opaque(tmpArray[0].OpaqueData());
    89             icon = HbIcon( XQConversions:: s60DescToQString( iconName ) );
    86                 const TPtrC16 iconName((TText16*) opaque.Ptr(),(opaque.Length()+1)>>1);
    90         } 
    87                 icon = HbIcon( XQConversions:: s60DescToQString( iconName ) );
    91     }
    88             }
    92     CleanupStack::PopAndDestroy(skinArray);
    89         }
    93     );
    90         CleanupStack::PopAndDestroy(skinArray);
       
    91         );
    94     
    92     
    95     if (icon.isNull() || !(icon.size().isValid())) {
    93     if (icon.isNull() || !(icon.size().isValid())) {
    96         TSize iconSize(size.width(), size.height());
    94         TSize iconSize(size.width(), size.height());
    97         CApaMaskedBitmap* apaMaskedBitmap = CApaMaskedBitmap::NewLC();
    95         CApaMaskedBitmap* apaMaskedBitmap = CApaMaskedBitmap::NewLC();
    98         TInt err = apaLsSession.GetAppIcon(uid,iconSize,*apaMaskedBitmap);
    96         TInt err = apaLsSession.GetAppIcon(uid,iconSize,*apaMaskedBitmap);
   128             CleanupStack::PopAndDestroy(fileNameFromApparc);
   126             CleanupStack::PopAndDestroy(fileNameFromApparc);
   129         }
   127         }
   130         CleanupStack::PopAndDestroy(apaMaskedBitmap);
   128         CleanupStack::PopAndDestroy(apaMaskedBitmap);
   131     }
   129     }
   132     CleanupStack::PopAndDestroy(&apaLsSession);
   130     CleanupStack::PopAndDestroy(&apaLsSession);
   133     
       
   134     return icon;
   131     return icon;
   135 }
   132 }
   136 
   133 
   137 /*!
   134 /*!
   138  Get default icon from theme.
   135  Get default icon from theme.
   214 {
   211 {
   215     HbIcon icon;
   212     HbIcon icon;
   216     icon = getIconFromEntry(entry);
   213     icon = getIconFromEntry(entry);
   217  
   214  
   218     if (icon.isNull() || !(icon.size().isValid())) {
   215     if (icon.isNull() || !(icon.size().isValid())) {
   219         TRAP_IGNORE(icon = getIconFromApparcL(entry, size));
   216         QString uidString(entry.attribute(appUidAttributeName));
       
   217         bool uidOk(false);
       
   218         int uidValue = uidString.toInt(&uidOk);
       
   219         if (!uidOk) {
       
   220             uidString = entry.iconDescription().applicationId();
       
   221             uidValue = uidString.toInt(&uidOk);
       
   222         }
       
   223         if (uidOk) {
       
   224             TRAP_IGNORE(icon = getIconFromApparcL(uidValue, size));
       
   225         }
   220     }
   226     }
   221  
   227  
   222     if (icon.isNull() || !(icon.size().isValid())) {
   228     if (icon.isNull() || !(icon.size().isValid())) {
   223         icon = getDefaultIcon(entry);
   229         icon = getDefaultIcon(entry);
   224     }
   230     }
   225  
   231  
   226     if (entry.entryTypeName() == XQConversions::s60DescToQString(
   232     if (entry.entryTypeName() == XQConversions::s60DescToQString(
   227             KCaTypeWidget)) {
   233             KCaTypeWidget)) {
   228         icon.addBadge(Qt::AlignBottom | Qt::AlignRight,
   234         icon.addProportionalBadge(Qt::AlignBottom | Qt::AlignRight,
   229 		    HbIcon("qtg_small_homescreen"));
   235 		    HbIcon("qtg_small_homescreen"), QSizeF(0.5, 0.5));
   230     }
   236     }
   231     return icon;
   237     return icon;
   232 }
   238 }