homesync/contentmanager/mediaservant/src/msstoreserverssetting.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/homesync/contentmanager/mediaservant/src/msstoreserverssetting.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  CMSStoreServersSetting class implementation
-*
-*/
-
-
-#include <mediaservant.rsg>
-#include <StringLoader.h>
-
-#include "cmmediaserverfull.h"
-#include "cmstorerule.h"
-#include "cmfillrule.h"
-#include "msstoreserverssetting.h"
-#include "msmultiselectionsettingpage.h"
-#include "msconstants.h"
-#include "msappui.h"
-#include "msengine.h"
-#include "msdebug.h"
-
-#include "upnpstring.h"
-
-// CONSTANTS
-const TInt KItemArrayGranularity = 3;
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::NewL
-// --------------------------------------------------------------------------
-//
-CMSStoreServersSetting* CMSStoreServersSetting::NewL(
-                                TInt aIdentifier,
-                                CCmStoreRule* aRule,
-                                CMSAppUi& aAppUi,
-                                TDes& aText )
-    {
-    LOG(_L("[MediaServant]\t CMSStoreServersSetting::NewL"));
-
-    CMSStoreServersSetting* self = CMSStoreServersSetting::NewLC(
-                                             aIdentifier,
-                                             aRule,
-                                             aAppUi,
-                                             aText );
-
-    CleanupStack::Pop(self);
-    
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::NewLC
-// --------------------------------------------------------------------------
-//
-CMSStoreServersSetting* CMSStoreServersSetting::NewLC(
-                                TInt aIdentifier,
-                                CCmStoreRule* aRule,
-                                CMSAppUi& aAppUi,
-                                TDes& aText )
-    {
-    LOG(_L("[MediaServant]\t CMSStoreServersSetting::NewLC"));
-
-    CMSStoreServersSetting* self = new (ELeave) CMSStoreServersSetting(
-                                             aIdentifier,
-                                             aRule,
-                                             aAppUi,
-                                             aText );
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-
-    return self;
-    }
-    
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::ConstructL
-// --------------------------------------------------------------------------
-//
-void CMSStoreServersSetting::ConstructL()
-    {
-    LOG(_L("[MediaServant]\t CMSStoreServersSetting::ConstructL"));
-
-    iSettingText = HBufC::NewL( KMaxFileName );
-
-    // Get media server list
-    iServers = iAppUi.MSEngine()->GetMediaServersL();
-
-    // create item array
-    CreateSelectionItemListL();
-
-    SetSettingItemTextL();
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::CMSRuleServersSetting
-// --------------------------------------------------------------------------
-//
-CMSStoreServersSetting::CMSStoreServersSetting(
-    TInt aIdentifier,
-    CCmStoreRule* aRule,
-    CMSAppUi& aAppUi,
-    TDes& aText
-     ) :
-    CAknTextSettingItem( aIdentifier, aText ),
-    iRule( aRule ),
-    iAppUi( aAppUi )
-    {
-    }
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::~CMSStoreServersSetting()
-// --------------------------------------------------------------------------
-//
-CMSStoreServersSetting::~CMSStoreServersSetting()
-    {
-    delete iSettingText;
-
-    if ( iItemArray )
-        {
-        iItemArray->ResetAndDestroy();
-        delete iItemArray;
-        }
-
-    if ( iServers )
-        {
-        iServers->ResetAndDestroy();
-        iServers->Close();
-        delete iServers;
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::EditItemL( TBool aCalledFromMenu )
-// --------------------------------------------------------------------------
-//
-void CMSStoreServersSetting::EditItemL( TBool /*aCalledFromMenu*/ )
-    {
-    LOG(_L("[MediaServant]\t CMSStoreServersSetting::EditItemL"));
-
-    // Create setting page
-    CAknSettingPage* dlg = CMSMultiselectionSettingPage::NewL(
-            R_MS_STORE_SETTINGS_LOCATION_SETTING_PAGE,
-            *iItemArray, EFalse );
-    // launch setting page
-    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
-        {
-        DeleteAllServersFromRuleL();
-
-        for ( TInt index = 0; index < iItemArray->Count(); index++ )
-                {
-                CSelectableItem* item = iItemArray->At( index );
-                TBool selected = item->SelectionStatus();
-
-                CCmMediaServerFull* server = (*iServers)[index];
-                // get server UDN
-                TPtrC8 serverUDN = server->MediaServer();
-
-                // add server
-                if ( item->SelectionStatus() )
-                    {
-                    // set server for rule
-                    iRule->AddMediaServerL( serverUDN );
-                    }
-                }
-
-        SetSettingItemTextL();
-        LoadL();
-        // show value on screen
-        UpdateListBoxTextL();
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::CreateSelectionItemListL
-// Creates selection item list
-// --------------------------------------------------------------------------
-//
-void CMSStoreServersSetting::CreateSelectionItemListL()
-    {
-    if ( iItemArray )
-        {
-        iItemArray->ResetAndDestroy();
-        delete iItemArray;
-        iItemArray = NULL;
-        }
-
-    iItemArray =
-            new ( ELeave ) CSelectionItemList( KItemArrayGranularity );
-
-    TBuf8<KMaxFileName> itemText;
-
-    TInt serverCount(0);
-    if ( iServers )
-        {
-        serverCount = iServers->Count();
-        }
-
-    // Cycle trough all servers
-    for ( TInt idx = 0; idx < serverCount; idx++ )
-        {
-        // get server
-        CCmMediaServerFull* server = (*iServers)[idx];
-        // show only copy capable devices
-        if ( server->StoreUsage() )
-            {
-            HBufC* devName =
-                    UpnpString::ToUnicodeL( server->MediaServerName() );
-            CleanupStack::PushL( devName );
-            CSelectableItem* item = new ( ELeave ) CSelectableItem(
-                                                    *devName, EFalse);
-
-            CleanupStack::PushL( item );
-            // item must be constructed
-            item->ConstructL();
-
-            // count of servers set to rule
-            TInt ruleServerCount = iRule->MediaServerCount();
-
-            // Cycle trough all servers
-            for (TInt index = 0; index < ruleServerCount; index++ )
-                {
-                const TDesC8& ruleServerUDN = iRule->MediaServerL( index );
-
-                if (ruleServerUDN == server->MediaServer()) // compare UDNs
-                    {
-                    // found - break this loop
-                    index = ruleServerCount;
-                    // found - mark selected
-                    item->SetSelectionStatus( ETrue );
-                    iSelectedItemCount++;
-                    }
-                }
-            // append item to list
-            iItemArray->AppendL(item);
-            CleanupStack::Pop( item );
-            CleanupStack::PopAndDestroy( devName );
-            }
-        else    // we don't need this kind of servers anymore so remove it
-            {
-            delete server;
-            iServers->Remove( idx );
-            idx--; // remove transfers next item to current index
-            serverCount--; // servers on the list were reduced
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::DeleteAllServersFromRuleL
-// Deletes all servers from rule
-// --------------------------------------------------------------------------
-//
-void CMSStoreServersSetting::DeleteAllServersFromRuleL()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleServersSetting::\
-    CMSStoreServersSetting"));
-
-    // count of servers set to rule
-    TInt ruleServerCount = iRule->MediaServerCount();
-
-    for ( TInt index = ruleServerCount-1; index >= 0; index-- )
-        {
-        const TDesC8& ruleServerUDN = iRule->MediaServerL( index );
-        iRule->DeleteMediaServer( ruleServerUDN );
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::CountSelectedItems
-// Counts selected items
-// --------------------------------------------------------------------------
-//
-TInt CMSStoreServersSetting::CountSelectedItems()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleServersSetting::\
-    CMSStoreServersSetting"));
-
-    TInt count(0);
-
-    for ( TInt index = 0; index < iItemArray->Count(); index++ )
-        {
-        if ( (*iItemArray)[index]->SelectionStatus() )
-            {
-            count++;
-            }
-        }
-
-    return count;
-    }
-
-// --------------------------------------------------------------------------
-// CMSStoreServersSetting::SetSettingItemTextL
-// Sets setting item secondary text according to selected items
-// --------------------------------------------------------------------------
-//
-void CMSStoreServersSetting::SetSettingItemTextL()
-    {
-        TInt count = CountSelectedItems();
-
-        HBufC* itemText = NULL;
-        // no items selected
-        if ( count == 0 )
-            {
-            itemText = StringLoader::LoadLC( R_MS_NO_SELECTED_ITEMS );
-            iSettingText->Des().Copy( *itemText );
-            }
-        // just one item selected
-        else if ( count == 1 )
-            {
-            TInt itemCount = iItemArray->Count();
-            for ( TInt index = 0; index < itemCount; index++ )
-                {
-                CSelectableItem* item = (*iItemArray)[ index ];
-                if ( item->SelectionStatus() )
-                    {
-                    iSettingText->Des().Copy( item->ItemText() );
-                    index = itemCount; // break loop
-                    }
-                }
-            }
-        // more than one item selected
-        else
-            {
-            itemText = StringLoader::LoadLC( R_MS_ITEM_DEVICES, count );
-
-            // do number conversion
-            TPtr ptr = itemText->Des();
-            AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
-
-            iSettingText->Des().Copy( *itemText );
-            }
-
-        if ( itemText )
-            {
-            CleanupStack::PopAndDestroy( itemText );
-            }
-
-         // Set new value
-         SetExternalText( *iSettingText );
-    }
-// End of File
-