homesync/contentmanager/mediaservant/src/msrulemultiselectionsetting.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/homesync/contentmanager/mediaservant/src/msrulemultiselectionsetting.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,349 +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:  CMSRuleMultiselectionSetting class implementation
-*
-*/
-
-
-#include <mediaservant.rsg>
-#include <akncheckboxsettingpage.h>
-#include <StringLoader.h>
-#include <utf.h>
-
-#include "cmsqlpropertycontainer.h"
-#include "cmsqlpropertyitem.h"
-#include "msrulemultiselectionsetting.h"
-#include "msconstants.h"
-#include "msmultiselectiondialog.h"
-#include "msdebug.h"
-
-// CONSTANTS
-const TInt KItemArrayGranularity = 3;
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::NewL
-// --------------------------------------------------------------------------
-//
-CMSRuleMultiselectionSetting* CMSRuleMultiselectionSetting::NewL(
-                                TInt aIdentifier,
-                                TInt aTitleResource,
-                                TInt aFirstPopupItemResource,
-                                TInt aAnyItemTextResource,
-                                CCmSqlPropertyContainer* aMetadataArray,
-                                RArray<TInt>* aArray,
-                                TInt aItemTextResource,
-                                TDes& aText)
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::NewL"));
-
-    CMSRuleMultiselectionSetting* self =
-                        CMSRuleMultiselectionSetting::NewLC(
-                                                    aIdentifier,
-                                                    aTitleResource,
-                                                    aFirstPopupItemResource,
-                                                    aAnyItemTextResource,
-                                                    aMetadataArray,
-                                                    aArray,
-                                                    aItemTextResource,
-                                                    aText );
-
-    CleanupStack::Pop(self);
-    
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::NewLC
-// --------------------------------------------------------------------------
-//
-CMSRuleMultiselectionSetting* CMSRuleMultiselectionSetting::NewLC(
-                                TInt aIdentifier,
-                                TInt aTitleResource,
-                                TInt aFirstPopupItemResource,
-                                TInt aAnyItemTextResource,
-                                CCmSqlPropertyContainer* aMetadataArray,
-                                RArray<TInt>* aArray,
-                                TInt aItemTextResource,
-                                TDes& aText)
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::NewLC"));
-
-    CMSRuleMultiselectionSetting* self =
-                        new (ELeave) CMSRuleMultiselectionSetting(
-                                                    aIdentifier,
-                                                    aTitleResource,
-                                                    aFirstPopupItemResource,
-                                                    aAnyItemTextResource,
-                                                    aMetadataArray,
-                                                    aArray,
-                                                    aItemTextResource,
-                                                    aText );
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    
-    return self;
-    }
-    
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::ConstructL
-// --------------------------------------------------------------------------
-//
-void CMSRuleMultiselectionSetting::ConstructL()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::ConstructL"));
-
-    iItemArray =
-            new ( ELeave ) CSelectionItemList( KItemArrayGranularity );
-
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::SetSettingItemTextL
-// --------------------------------------------------------------------------
-//
-void CMSRuleMultiselectionSetting::SetSettingItemTextL()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::\
-    SetSettingItemTextL"));
-
-    HBufC* itemText = NULL;
-
-    if ( iSelectedItemCount == 1 )
-        {
-        // only one item selected so we can use item index to find text
-        CSelectableItem* apu = (*iItemArray)[ iSelectedItemIndex ];
-        itemText = apu->ItemText().AllocLC();
-        }
-    else if ( iSelectedItemCount > 1 )
-        {
-        itemText = StringLoader::LoadLC( iItemTextResource,
-                                         iSelectedItemCount );
-        // do number conversion
-        TPtr ptr = itemText->Des();
-        AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
-
-        }
-    else
-        {
-        itemText = StringLoader::LoadLC( iAnyItemTextResource );
-        }
-
-    // Set new text
-    SetExternalText( *itemText );
-    // Load text
-    LoadL();
-
-    CleanupStack::PopAndDestroy( itemText );
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::CMSRuleMultiselectionSetting
-// --------------------------------------------------------------------------
-//
-CMSRuleMultiselectionSetting::CMSRuleMultiselectionSetting(
-    TInt aIdentifier,
-    TInt aTitleResource,
-    TInt aFirstPopupItemResource,
-    TInt aAnyItemTextResource,
-    CCmSqlPropertyContainer* aMetadataArray,
-    RArray<TInt>* aArray,
-    TInt aItemTextResource,
-    TDes& aText
-     ) :
-    CMSTextSettingItem( aIdentifier, aText ),
-    iItemTextResource ( aItemTextResource ),
-    iText( aText ),
-    iList (aArray),
-    iMetadataArray( aMetadataArray ),
-    iTitleResource( aTitleResource ),
-    iFirstPopupItemResource( aFirstPopupItemResource ),
-    iAnyItemTextResource( aAnyItemTextResource )
-    {
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::~CMSRuleMultiselectionSetting()
-// --------------------------------------------------------------------------
-//
-CMSRuleMultiselectionSetting::~CMSRuleMultiselectionSetting()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::\
-    ~CMSRuleMultiselectionSetting"));
-
-    if ( iItemArray )
-        {
-        iItemArray->ResetAndDestroy();
-        delete iItemArray;
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::EditItemL( TBool aCalledFromMenu )
-// --------------------------------------------------------------------------
-//
-void CMSRuleMultiselectionSetting::EditItemL( TBool /*aCalledFromMenu*/ )
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::EditItemL"));
-
-    HBufC* title = StringLoader::LoadLC( iTitleResource );
-    CMSMultiselectionDialog* dlg =
-                    CMSMultiselectionDialog::NewL(iItemArray, *title);
-
-    // reset dialog acceptance indicator
-    SetAcceptState( EFalse );
-
-    // launch dialog
-    if ( dlg->ExecuteLD( R_MS_MULTISELECTION_DIALOG ) )
-        {
-        // dialog accepted
-        SetAcceptState( ETrue );
-
-        // reset selected item count
-        iSelectedItemCount = 0;
-
-        // remove previous items
-        iList->Reset();
-
-        // Check if first item ("Any") is selected
-        if ( (*iItemArray)[ 0 ]->SelectionStatus() == EFalse )
-            {
-            AppendSelectedItemsToListL();
-            }
-
-        // set item text
-        SetSettingItemTextL();
-        // load and update text
-        LoadL();
-        UpdateListBoxTextL();
-        }
-    CleanupStack::PopAndDestroy( title );
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::CreateSelectionItemListL
-// Creates selection item list
-// --------------------------------------------------------------------------
-//
-void CMSRuleMultiselectionSetting::CreateSelectionItemListL()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::\
-    CreateSelectionItemListL"));
-
-    // delete old items
-    iItemArray->ResetAndDestroy();
-    iSelectedItemCount = 0;
-
-    // Cycle trough all metadata items
-    iMetadataArray->SortPropertyItem();
-    for ( TInt idx = 0; idx < iMetadataArray->PropertyItemCount(); idx++ )
-        {
-        CCmSqlPropertyItem* propertyItem =
-                            iMetadataArray->PropertyItem( idx );
-
-        HBufC* itemStr = CnvUtfConverter::ConvertToUnicodeFromUtf8L(
-                                                        propertyItem->Name() );
-        CleanupStack::PushL( itemStr );
-
-        // Check if item was selected last time
-        TInt found = iList->Find( propertyItem->Id() );
-
-        CSelectableItem* item;
-
-        if ( found != KErrNotFound )
-            {
-            // create item - selected
-            item = new ( ELeave ) CSelectableItem( *itemStr, ETrue );
-            iSelectedItemCount++;
-            iSelectedItemIndex = idx + 1; //first item is "any"
-            }
-        else
-            {
-            // create item - not selected
-            item = new ( ELeave ) CSelectableItem( *itemStr, EFalse );
-            }
-
-        CleanupStack::PushL( item );
-
-        // item must be constructed
-        item->ConstructL();
-
-        // append item to list
-        iItemArray->AppendL(item);
-
-        CleanupStack::Pop( item );
-        CleanupStack::PopAndDestroy( itemStr );
-        }
-
-    // Create and append default item (Any/None)
-    HBufC* itemName = StringLoader::LoadLC( iFirstPopupItemResource );
-    CSelectableItem* item = NULL;
-    if ( iSelectedItemCount )
-        {
-        item = new ( ELeave ) CSelectableItem( *itemName, EFalse );
-        }
-    else
-        {
-        item = new ( ELeave ) CSelectableItem( *itemName, ETrue );
-        }
-
-    CleanupStack::PushL( item );
-    item->ConstructL();
-    iItemArray->InsertL(0, item);
-    CleanupStack::Pop( item );
-    CleanupStack::PopAndDestroy( itemName );
-
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::AppendSelectedItemsToListL
-// Appends selected items to the list
-// --------------------------------------------------------------------------
-//
-void CMSRuleMultiselectionSetting::AppendSelectedItemsToListL()
-    {
-    LOG(_L("[MediaServant]\t CMSRuleMultiselectionSetting::\
-    AppendSelectedItemsToListL"));
-
-    // first index '0' is "Any"
-    for ( TInt index = 1; index < iItemArray->Count(); index++ )
-        {
-        if ( (*iItemArray)[index]->SelectionStatus() )
-            {
-            CCmSqlPropertyItem* propertyItem =
-                            iMetadataArray->PropertyItem( index - 1 );
-            iList->AppendL( propertyItem->Id() );
-            iSelectedItemCount++;
-            iSelectedItemIndex = index;
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSRuleMultiselectionSetting::CreateItemListL
-// Creates item list and updates listbox
-// --------------------------------------------------------------------------
-//
-void CMSRuleMultiselectionSetting::CreateItemListL()
-    {
-    // Create item list
-    CreateSelectionItemListL();
-    // set item text
-    SetSettingItemTextL();
-    // update listbox
-    UpdateListBoxTextL();
-    }
-
-// End of File
-