CGulIcon* CTap2MenuAppUi::LoadAppIconHard(TUid aUid) { RApaLsSession ls; ls.Connect(); CGulIcon *retval = NULL; CArrayFixFlat<TSize> *array = new CArrayFixFlat<TSize>(3); CleanupStack::PushL(array); TInt err = ls.GetAppIconSizes(aUid, *array); if(err == KErrNone && array->Count() > 0) { CApaMaskedBitmap *bitmap = CApaMaskedBitmap::NewLC(); err = ls.GetAppIcon(aUid, (*array)[0], *bitmap); if(err == KErrNone) { CFbsBitmap* bmp = new (ELeave) CFbsBitmap(); CleanupStack::PushL(bmp); CFbsBitmap* bmp_mask = new (ELeave) CFbsBitmap(); CleanupStack::PushL(bmp_mask); User::LeaveIfError(bmp->Create(bitmap->SizeInPixels(), bitmap->DisplayMode())); User::LeaveIfError(bmp_mask->Create(bitmap->Mask()->SizeInPixels(), bitmap->Mask()->DisplayMode())); CopyBitmapL(bitmap, bmp); CopyBitmapL(bitmap->Mask(), bmp_mask); retval = CGulIcon::NewL(bmp, bmp_mask); CleanupStack::Pop(2); // bmp, bmp_mask } CleanupStack::PopAndDestroy(bitmap); } CleanupStack::PopAndDestroy(array); ls.Close(); return retval; }
EXPORT_C TInt AknsUtils::GetAppIcon( MAknsSkinInstance* aInstance, TUid aAppUid, TSize aSize, CApaMaskedBitmap& aAppBitmap ) { AKNS_TRACE_OBSOLETE("AknsUtils::GetAppIcon (4 param)"); __ASSERT_DEBUG( aAppBitmap.Mask(), AKNS_DEBUG_PANIC( EAknsDPanicInvalidParameter ) ); CFbsBitmap* bitmap = NULL; CFbsBitmap* mask = NULL; TInt ret = KErrNone; TBool configuredIcon = EFalse; if ( !configuredIcon ) { ret = GetAppIconFromSkin( aInstance, aAppUid, aSize, bitmap, mask ); if( ret == KErrNone ) { if( bitmap && mask && bitmap->Handle() && mask->Handle() ) { ret = aAppBitmap.Duplicate( bitmap->Handle() ); ret |= aAppBitmap.Mask()->Duplicate( mask->Handle() ); delete bitmap; delete mask; return ret; } else { // Delete bitmaps and proceed delete bitmap; bitmap = NULL; delete mask; mask = NULL; } } } RApaLsSession lsSession; ret = lsSession.Connect(); if( ret == KErrNone ) { ret = lsSession.GetAppIcon( aAppUid, aSize, aAppBitmap ); lsSession.Close(); if(ret == KErrNone) //icon case AknInternalIconUtils::SetAppIcon(bitmap); //icon case } return ret; } //lint !e1746 GetAppIcon syntax
CGulIcon* CTap2MenuAppUi::LoadAppIconEasy(TUid aUid) { RApaLsSession ls; ls.Connect(); TApaAppInfo info; User::LeaveIfError(ls.GetAppInfo(info,aUid)); HBufC* path=HBufC::NewL(255); TInt err=ls.GetAppIcon(aUid,path); User::LeaveIfError(err); CFbsBitmap* AppIcon(NULL); CFbsBitmap* AppIconMsk(NULL); //MAknsSkinInstance* skin = AknsUtils::SkinInstance(); if ((err==KErrNone)&&(path->Length()!=0)) {AknsUtils::CreateAppIconLC(AknsUtils::SkinInstance(),aUid, EAknsAppIconTypeContext,AppIcon,AppIconMsk);} else {User::Leave(KErrNotFound);} AknIconUtils::SetSize(AppIcon,TSize(iSettings[4],iSettings[4])); AknIconUtils::SetSize(AppIconMsk,TSize(iSettings[4],iSettings[4])); CleanupStack::Pop(2); CGulIcon* icon=CGulIcon::NewL(AppIcon,AppIconMsk); ls.Close(); return icon; }
Application::Application(QmlApplicationViewer& v,QObject *parent) : QObject(parent),viewer(v) { TBuf<255> p1(_L("C:\\System\\JellyUnlock\\splash_h.jpg")); TBuf<255> p2(_L("C:\\System\\JellyUnlock\\splash_v.jpg")); splash=CSplashScreen::NewL(p2,p1); int lang=1; #ifdef Q_OS_SYMBIAN lang=User::Language(); #endif loc=new Localizer(lang,this); QFile fs(KFirstStart); isFirstStart=false; if (fs.exists()) { fs.remove(); QFile file(KConfigFile); if (file.exists()){file.remove();} isFirstStart=true; } settings=new QSettings(KConfigFile,QSettings::IniFormat); keyMap.clear(); keyMap.insert(0,180); // menu keyMap.insert(1,179); // lock keyMap.insert(2,166); // power keyMap.insert(3,196); // green keyMap.insert(4,197); // red keyMap.insert(5,171); // camera keyMap.insert(6,226); // light camera keys.clear(); settings->beginGroup("keys"); QStringList sets=settings->allKeys(); for (int i=0;i<sets.length();i++) { keys.append(settings->value(sets[i],-1).toInt()); } settings->endGroup(); if (keys.length()==0){keys.append(180);} #ifdef Q_OS_SYMBIAN RApaLsSession AppSession; AppSession.Connect(); TApaAppInfo appInfo; AppSession.GetAllApps(); TBuf<255> UidTxt; while (AppSession.GetNextApp(appInfo)==KErrNone) { HBufC* fn; if (AppSession.GetAppIcon(appInfo.iUid,fn)!=KErrNone){continue;} if (fn){delete fn;} if (appInfo.iCaption.Length()<2){continue;} TApplicationInfo info; info.iCaption=appInfo.iCaption; info.iUid=appInfo.iUid; apps.Append(info); fullApps.Append(info); } AppSession.Close(); TLinearOrder<TApplicationInfo> sortOrder(TApplicationInfo::Compare); fullApps.Sort(sortOrder); apps.Sort(sortOrder); for (int i=0; i<fullApps.Count();i++) { appModel<<QString::fromRawData(reinterpret_cast<const QChar*>(apps[i].iCaption.Ptr()),apps[i].iCaption.Length()); } #else for (int i=0; i<20;i++) { appModel<<QString::number(i); } #endif }
EXPORT_C void AknsUtils::CreateAppIconLC( MAknsSkinInstance* aInstance, TUid aAppUid, TAknsAppIconType aType, CFbsBitmap*& aBitmap, CFbsBitmap*& aMask ) { aBitmap = NULL; aMask = NULL; if (!aInstance) { User::Leave(KErrArgument); } TSize legacySize( 42, 29 ); TInt bitmapIndex( 0 ); TInt maskIndex( 1 ); if( aType == EAknsAppIconTypeContext ) { legacySize = TSize( 44, 44 ); bitmapIndex = 2; maskIndex = 3; } else if( aType != EAknsAppIconTypeList ) { User::Leave( KErrArgument ); } // Make the forthcoming pushes safe (up to level 2) CleanupStack::PushL( static_cast<TAny*>(NULL) ); CleanupStack::PushL( static_cast<TAny*>(NULL) ); CleanupStack::Pop( 2 ); // 1. Check if the icon has been configured. TInt ret = KErrNone; TBool configuredIcon = EFalse; // CAknsAppSkinInstance* apskin = static_cast<CAknsAppSkinInstance*>(aInstance); if ( apskin ) { TInt config = apskin->IsIconConfiguredL( aAppUid ); if ( config > 0 ) configuredIcon = ETrue; } if ( !configuredIcon ) { // 2. Skin-originating icon ret = GetAppIconFromSkin( aInstance, aAppUid, legacySize, aBitmap, aMask ); if( ret == KErrNone ) { // These pushes are safe CleanupStack::PushL( aBitmap ); // (1) CleanupStack::PushL( aMask ); // (2) return; } } // Cache connected apparc session for future reuse, if not already cached // This is done per appskininstance when necessary... if (!apskin->iCachedApaSession) { apskin->iCachedApaSession = new (ELeave) RApaLsSession; User::LeaveIfError(apskin->iCachedApaSession->Connect()); } RApaLsSession* lsSession = apskin->iCachedApaSession; TBool forceDefaultIcon = EFalse; TApaAppInfo appInfo; TFileName filename; // 3. New appicon framework HBufC* filenameBuf = NULL; TBool javaIcon = EFalse; ret = lsSession->GetAppIcon( aAppUid, filenameBuf ); if( filenameBuf ) { filename.Copy( *filenameBuf ); delete filenameBuf; } if( ret == KErrNone ) { ret = lsSession->GetAppInfo( appInfo, aAppUid ); } if( (ret==KErrNone) && (filename.Length()>2) && (appInfo.iFullName.Length()>2) ) { // Correct drive letter, if necessary if( appInfo.iFullName[1]==':' ) { if( filename[1]==':' ) { filename[0] = appInfo.iFullName[0]; } else if( filename[0]=='\\' ) { filename.Insert( 0, appInfo.iFullName.Left(2) ); } } // check if the icon is java icon javaIcon = AknsJavaUtils::IsJavaIcon(filename); if( AknIconUtils::IsMifFile( filename ) ) { // SVG icon // SVG always has only one icon bitmapIndex = 0; maskIndex = 1; AknIconUtils::ValidateLogicalAppIconId( filename, bitmapIndex, maskIndex ); if (javaIcon) { AknsJavaUtils::CreateIconLC(*lsSession, aAppUid, aBitmap, aMask, bitmapIndex, maskIndex ); // aBitmap, aMask (2) } else { AknIconUtils::CreateIconLC( aBitmap, aMask, filename, bitmapIndex, maskIndex ); // aBitmap, aMask (2) } AknInternalIconUtils::SetAppIcon(aBitmap); //icon case return; } else { // MBM icon AknIconUtils::ValidateLogicalAppIconId( filename, bitmapIndex, maskIndex ); TRAP( ret, AknIconUtils::CreateIconL( aBitmap, aMask, filename, bitmapIndex, maskIndex ) ); if( ret == KErrNone ) { // These pushes are safe CleanupStack::PushL( aBitmap ); // (1) CleanupStack::PushL( aMask ); // (2) } else { bitmapIndex = 0; maskIndex = 1; AknIconUtils::ValidateLogicalAppIconId( filename, bitmapIndex, maskIndex ); AknIconUtils::CreateIconLC( aBitmap, aMask, filename, bitmapIndex, maskIndex ); // aBitmap, aMask (2) } AknInternalIconUtils::SetAppIcon(aBitmap); //icon case return; } } else if( ret!=KErrNotSupported ) { // New framework, but no icon defined forceDefaultIcon = ETrue; } CApaMaskedBitmap* apaBmp = CApaMaskedBitmap::NewLC(); // apaBmp (1) // 3. Old (AIF-based) framework if( !forceDefaultIcon ) { TInt apaErr = lsSession->GetAppIcon( aAppUid, legacySize, *apaBmp ); // Use default icon if APPARC did not initialize icon bitmaps if( apaErr || (!apaBmp) || (!apaBmp->Mask()) || (!apaBmp->Handle()) || (!apaBmp->Mask()->Handle()) ) { forceDefaultIcon = ETrue; } } if( forceDefaultIcon ) { // Default icon CleanupStack::PopAndDestroy( 1 ); // apaBmp (0) TAknsItemID iid = KAknsIIDQgnMenuUnknownLst; bitmapIndex = EMbmAvkonQgn_menu_unknown_lst; maskIndex = EMbmAvkonQgn_menu_unknown_lst_mask; if( aType == EAknsAppIconTypeContext ) { iid = KAknsIIDQgnMenuUnknownCxt; bitmapIndex = EMbmAvkonQgn_menu_unknown_cxt; maskIndex = EMbmAvkonQgn_menu_unknown_cxt_mask; } AknsUtils::CreateIconLC( aInstance, iid, aBitmap, aMask, AknIconUtils::AvkonIconFileName(), bitmapIndex, maskIndex ); // aBitmap, aMask (2) } else { // AIF-based icon CFbsBitmap* iconOwnedBitmap = new (ELeave) CFbsBitmap(); CleanupStack::PushL( iconOwnedBitmap ); // iob (3) CFbsBitmap* iconOwnedMask = new (ELeave) CFbsBitmap(); CleanupStack::PushL( iconOwnedMask ); // iom (4) User::LeaveIfError( iconOwnedBitmap->Duplicate( apaBmp->Handle() ) ); User::LeaveIfError( iconOwnedMask->Duplicate( apaBmp->Mask()->Handle() ) ); CAknIcon* tmpIcon = CAknIcon::NewL(); CleanupStack::Pop( 2 ); // iom, iob (2) CleanupStack::PopAndDestroy( 1 ); // apaBmp (0) // Ownership is transferred tmpIcon->SetBitmap( iconOwnedBitmap ); tmpIcon->SetMask( iconOwnedMask ); // Ownership of tmpIcon is transferred CAknIcon* appIcon = AknIconUtils::CreateIconL( tmpIcon ); aBitmap = appIcon->Bitmap(); aMask = appIcon->Mask(); // Detach and delete appIcon->SetBitmap( NULL ); appIcon->SetMask( NULL ); delete appIcon; // These are both safe CleanupStack::PushL( aBitmap ); // (1) CleanupStack::PushL( aMask ); // (2) } }