mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp
branchRCL_3
changeset 8 ce5ada96ab30
parent 1 6711b85517b7
child 11 8970fbd719ec
--- a/mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp	Fri Feb 19 22:52:52 2010 +0200
+++ b/mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp	Fri Mar 12 15:43:00 2010 +0200
@@ -15,7 +15,7 @@
 */
 
 
-// Version : %version: 9 %
+// Version : %version: 11 %
 
 
 
@@ -35,8 +35,6 @@
 #include    "MPSettingsMainView.h"
 #include    "MPSettingsVideoView.h"
 #include    "MPSettingsStreamingView.h"
-#include    "MPSettingsProxyView.h"
-#include    "MPSettingsNetworkView.h"
 #include    "MPSettingsConstants.h"
 #include    "MPSettingsPluginView.h"
 #include    "MPSettingsAdvancedBwView.h"
@@ -44,10 +42,13 @@
 #include    "mpsettingsmodel.h"
 #include    "MPSettingsModelForROP.h"
 #include    "mpxlog.h"
-#include    "feedsettingsview.h"
+
+#include    <centralrepository.h>
+#include    "MediaPlayerPrivateCRKeys.h"
+#include    "MediaPlayerVariant.hrh" 
 
 // CONSTANTS
-const TInt KMPSettViewIdArrayGranularity = 3;
+const TInt KMPSettViewIdArrayGranularity = 2;
 
 // ================= MEMBER FUNCTIONS =======================
 //
@@ -58,7 +59,7 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CMPSettingsAppUi::CMPSettingsAppUi() : iConstructAsGsPlugin(EFalse)
+CMPSettingsAppUi::CMPSettingsAppUi()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::CMPSettingsAppUi()"));
     }
@@ -77,8 +78,9 @@
     // Sets up TLS, must be done before FeatureManager is used.
     FeatureManager::InitializeLibL();   
 
-    CMPSettingsDocument* doc = static_cast<CMPSettingsDocument*>(static_cast<CEikAppUi*>
-        (CEikonEnv::Static()->AppUi())->Document());
+    iVideoViewAvailable =  VideoContrastIsSupportedL();
+    
+    CMPSettingsDocument* doc = static_cast<CMPSettingsDocument*>( Document() );
     iModel = doc->SettingsModel();
     iRopModel = static_cast<CMPSettingsModelForROP*>(iModel);
 
@@ -90,52 +92,46 @@
     // Construct navipane tabs 
     iDecoratedTabGroup = iNaviPane->CreateTabGroupL(this);
 
-    // Construct tabs
-    AddTabSettingsGroupL();
+    // Construct tabs if we have multiple views
+    if ( iVideoViewAvailable )
+        {
+        AddTabSettingsGroupL();
+        }
 
     // Create vector which contains view id's for all setting folders. 
     iViewIds = new(ELeave) CArrayFixFlat<TUid>(KMPSettViewIdArrayGranularity);
-    iViewIds->AppendL(KMPSettVideoViewId);
-    iViewIds->AppendL(KMPSettStreamingViewId);
-    iViewIds->AppendL(KMPSettFeedsViewId);
-
-    // * Create application views *
+    if ( iVideoViewAvailable )
+        {
+        iViewIds->AppendL( KMPSettVideoViewId );
+        }
+    iViewIds->AppendL( KMPSettStreamingViewId );
 
+    // Create application views
     CAknView* view;  
-
-    view = CMPSettingsMainView::NewLC(iViewIds,iRopModel,iConstructAsGsPlugin);
+    view = CMPSettingsMainView::NewLC( iViewIds, iRopModel, EFalse );
     AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
+    CleanupStack::Pop(); // view
 
     // iMainView is not owned, i.e. it is not deleted in the destructor ->
     // main view cannot be directly creted to iMainView, as it's against the coding
     // conventions to place class' pointers to cleanup stack => static_cast.
     iMainView = static_cast<CMPSettingsMainView*>(view);
 
-    view = CMPSettingsVideoView::NewLC(iRopModel);
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view
-
-    view = CMPSettingsStreamingView::NewLC(iRopModel);
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
-    view = CVcxNsSettingsView::NewLC();
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
+    if ( iVideoViewAvailable )
+        {
+        view = CMPSettingsVideoView::NewLC(iRopModel);
+        AddViewL(view);      // transfer ownership to CAknViewAppUi
+        CleanupStack::Pop(); // view
+        }
     
-    view = CMPSettingsProxyView::NewLC(iRopModel,iConstructAsGsPlugin);
-    AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
-    view = CMPSettingsNetworkView::NewLC(iRopModel,iConstructAsGsPlugin);
+    CMPSettingsStreamingView* streamingView = CMPSettingsStreamingView::NewLC(iRopModel);
+    view = streamingView;
     AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
+    CleanupStack::Pop(); // view 
 
-    view = CMPSettingsAdvancedBwView::NewLC(iRopModel,iConstructAsGsPlugin);
+    view = CMPSettingsAdvancedBwView::NewLC( iRopModel, EFalse );
     AddViewL(view);      // transfer ownership to CAknViewAppUi
-    CleanupStack::Pop();    // view 
-
+    CleanupStack::Pop(); // view 
 
     // Construct plug-in views (if any exists)
     CMPSettingsPluginView::ListImplementationsL(iImplInfoArray);
@@ -164,7 +160,14 @@
         User::LeaveIfError(iViewIds->Sort(sortKey));
         }
  
-    SetDefaultViewL(*iMainView);
+    if ( iVideoViewAvailable && iMainView )
+        {    
+        SetDefaultViewL(*iMainView);
+        }
+    else if ( streamingView )
+        {
+        SetDefaultViewL(*streamingView);
+        }
     }
 
 // ----------------------------------------------------
@@ -176,20 +179,15 @@
 CMPSettingsAppUi::~CMPSettingsAppUi()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::~CMPSettingsAppUi()"));
-    if (iDecoratedTabGroup) 
-        {
-        delete iDecoratedTabGroup;
-        }
+
+    delete iDecoratedTabGroup;
 
     if (iDoorObserver)
         {
         iDoorObserver->NotifyExit(MApaEmbeddedDocObserver::EEmpty);
         }
 
-    if (iViewIds) 
-        {
-        delete iViewIds;
-        }
+    delete iViewIds;
 
     iImplInfoArray.ResetAndDestroy();
     FeatureManager::UnInitializeLib();
@@ -233,7 +231,6 @@
         }
     }
  
-
 // ----------------------------------------------------
 // CMPSettingsAppUi::TabChangedL
 // MAknTabObserver callback for handling tab changed event.
@@ -274,7 +271,10 @@
 void CMPSettingsAppUi::UpdateTabIndex()
     {
     MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::UpdateTabIndex()"));
-    iTabGroup->SetActiveTabByIndex(iMainView->ActiveFolder());
+    if ( iTabGroup )
+        {
+        iTabGroup->SetActiveTabByIndex( iMainView->ActiveFolder() );
+        }
     }
 
 // ------------------------------------------------------------------------------
@@ -309,7 +309,6 @@
     return iTabGroup->OfferKeyEventL(aKeyEvent, aType);
     }
 
-
 // ----------------------------------------------------
 // CMPSettingsAppUi::AddTabSettingsGroupL()
 // (Re)create tab group with skin support
@@ -331,7 +330,7 @@
     iTabGroup = static_cast<CAknTabGroup*>
         (iDecoratedTabGroup->DecoratedControl());
 
-    iTabGroup->SetTabFixedWidthL(KTabWidthWithThreeTabs);
+    iTabGroup->SetTabFixedWidthL(KTabWidthWithTwoTabs);
 
     HBufC* mbmpath = StringLoader::LoadLC(R_MPSETT_ICON_MBM_FILE);
 
@@ -361,12 +360,6 @@
         EMbmMediasettingsQgn_prop_set_mp_stream_tab2,
         EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask,
         EMPViewStreamTab);
-
-    AddTabSettingsL(KAknsIIDQgnPropSetMpStreamTab3,
-        fileName,
-        EMbmMediasettingsQgn_prop_set_mp_video_tab3,
-        EMbmMediasettingsQgn_prop_set_mp_video_tab3_mask,
-        EMPViewFeedsTab);
     
     CleanupStack::PopAndDestroy();  // mbmpath
 
@@ -411,4 +404,36 @@
     CleanupStack::Pop(2); // bitmap, mask
     }
 
+// ----------------------------------------------------
+// CMPSettingsAppUi::ActivateLocalViewL
+// ----------------------------------------------------
+//
+void CMPSettingsAppUi::ActivateLocalViewL( TUid aViewId )
+    {
+    if ( !iVideoViewAvailable && 
+         aViewId == KMPSettMainViewId )
+        {
+        HandleCommandL( EEikCmdExit );
+        }
+    else 
+        {
+        CAknViewAppUi::ActivateLocalViewL( aViewId );
+        }
+    }
+
+// ----------------------------------------------------
+// CMPSettingsAppUi::VideoContrastIsSupportedL
+// ----------------------------------------------------
+//
+TBool CMPSettingsAppUi::VideoContrastIsSupportedL()
+    {
+    TInt flags = 0;
+
+    CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures );
+    repository->Get( KMPLocalVariation, flags );
+    delete repository;
+
+    return ( flags & KMediaPlayerVideoContrast );
+    }
+
 // End of File