diff -r 968773a0b6ef -r c8382f7b54ef emailuis/uicomponents/src/fstreevisualizerbase.cpp --- a/emailuis/uicomponents/src/fstreevisualizerbase.cpp Tue Sep 14 20:48:24 2010 +0300 +++ b/emailuis/uicomponents/src/fstreevisualizerbase.cpp Wed Sep 15 11:52:37 2010 +0300 @@ -24,7 +24,6 @@ #include //////TOOLKIT INCLUDES -// SF #include #include #include @@ -50,7 +49,6 @@ //visuals #include #include -// //////PROJECT INCLUDES @@ -1064,20 +1062,40 @@ // Sets icon for a mark sign. // --------------------------------------------------------------------------- // -void CFsTreeVisualizerBase::SetMarkIcon(CAlfTexture& aMarkIcon) +void CFsTreeVisualizerBase::SetMarkOnIcon(CAlfTexture& aMarkOnIcon) { FUNC_LOG; - iMarkIcon = &aMarkIcon; + iMarkOnIcon = &aMarkOnIcon; + } + +// --------------------------------------------------------------------------- +// Sets icon for a unmark sign. +// --------------------------------------------------------------------------- +// +void CFsTreeVisualizerBase::SetMarkOffIcon(CAlfTexture& aMarkOffIcon) + { + FUNC_LOG; + iMarkOffIcon = &aMarkOffIcon; } // --------------------------------------------------------------------------- // Returns icon used to mark items. // --------------------------------------------------------------------------- // -CAlfTexture* CFsTreeVisualizerBase::MarkIcon() +CAlfTexture* CFsTreeVisualizerBase::MarkOnIcon() { FUNC_LOG; - return iMarkIcon; + return iMarkOnIcon; + } + +// --------------------------------------------------------------------------- +// Returns icon used to unmark items. +// --------------------------------------------------------------------------- +// +CAlfTexture* CFsTreeVisualizerBase::MarkOffIcon() + { + FUNC_LOG; + return iMarkOffIcon; } // --------------------------------------------------------------------------- @@ -1109,7 +1127,7 @@ data = &(iTreeData->ItemData(aItemId)); vis->UpdateL(*data, IsItemFocused(aItemId) && IsFocusShown(), - iTreeData->Level(aItemId), iMarkIcon, iMenuIcon); + iTreeData->Level(aItemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon); } } @@ -1269,7 +1287,8 @@ MakeSelectorVisibleL(EFalse); visualizer->UpdateL(*data, EFalse, iTreeData->Level(iFocusedItem), - iMarkIcon, iMenuIcon, iCurrentScrollSpeed); + iMarkOnIcon, iMarkOffIcon, + iMenuIcon, iCurrentScrollSpeed); } } } @@ -1280,6 +1299,57 @@ } // --------------------------------------------------------------------------- +// The functions sets wether all item in the list should be always in +// extended state or in normal state. +// --------------------------------------------------------------------------- +// +void CFsTreeVisualizerBase::SetMarkingModeL( TBool aMarkingMode ) + { + FUNC_LOG; + // Do not change this to: IsMarkingMode() != aAlwaysExtended, because + // it will not work. TBool is defined as TInt and thus this comparison + // comes out as TInt != TInt, which always evaluates true in this case. + if ( ( IsMarkingMode() && !aMarkingMode ) || + ( !IsMarkingMode() && aMarkingMode ) ) + { + iFlags.Assign(EMarkingMode, aMarkingMode); + TFsTreeIterator treeIter( + iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID)); + while (treeIter.HasNext()) + { + TFsTreeItemId itemId(treeIter.Next()); + if (itemId != KFsTreeNoneID && !iTreeData->IsNode(itemId)) + { + MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId)); + ApplyListSpecificValuesToItem(itemviz); + } + } + const TBool isUpdating(iWorld.IsUpdating()); + if (!isUpdating) + { + iWorld.BeginUpdate(); + } + iWorld.RemoveAllL(); + treeIter = iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID, + KFsTreeIteratorSkipCollapsedFlag); + while (treeIter.HasNext()) + { + TFsTreeItemId itemId(treeIter.Next()); + if (itemId != KFsTreeNoneID) + { + MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId)); + iWorld.AppendL(itemId, itemviz->Size()); + } + } + iViewPort.ClearCache(); + if (!isUpdating) + { + iWorld.EndUpdateL(); + } + } + } + +// --------------------------------------------------------------------------- // The function sets some properties of the selector like bitmap, type // of movement. // --------------------------------------------------------------------------- @@ -1710,7 +1780,7 @@ if ( visualizer ) { visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), EFalse, - iTreeData->Level( iFocusedItem ), iMarkIcon, iMenuIcon, 0 ); + iTreeData->Level( iFocusedItem ), iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0 ); } iFocusedItem = aItemId; @@ -1721,7 +1791,8 @@ if ( visualizer ) { visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), IsFocusShown(), - iTreeData->Level( iFocusedItem ), iMarkIcon, iMenuIcon, 0 ); + iTreeData->Level( iFocusedItem ), iMarkOnIcon, + iMarkOffIcon, iMenuIcon, 0 ); } if ( iFocusedItem != KFsTreeNoneID ) @@ -1770,7 +1841,6 @@ // Sets an item as first visible one in the list. // --------------------------------------------------------------------------- // -// void CFsTreeVisualizerBase::SetFirstVisibleItemL(const TFsTreeItemId /*aItemId*/) { FUNC_LOG; @@ -1786,9 +1856,6 @@ TFsTreeItemId retId = KFsTreeNoneID; if (iVisibleItems.Count()) { - // - // TRAP_IGNORE( ClearVisibleItemsListL(EFalse) ); - // retId = iVisibleItems[0]; } else @@ -1822,7 +1889,6 @@ // Displays the list. // --------------------------------------------------------------------------- // -// void CFsTreeVisualizerBase::ShowListL(const TBool aFadeIn, const TBool aSlideIn) { @@ -1831,7 +1897,8 @@ if (iTreeData->Count() == 0) { iRootVisualizer->ShowL(*iRootLayout); - iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, iMenuIcon); + iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon, + iMarkOffIcon, iMenuIcon); } else { @@ -1846,7 +1913,7 @@ if ( visualizer ) { visualizer->UpdateL(iTreeData->ItemData(itemId), itemFocused, - iTreeData->Level(itemId), iMarkIcon, iMenuIcon, + iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0); } } @@ -1923,7 +1990,6 @@ UpdateScrollBarL(); } -// // --------------------------------------------------------------------------- // The function assures that the list view is correct. @@ -2526,7 +2592,7 @@ vis->UpdateL(iTreeData->ItemData(aItemId), IsItemFocused(aItemId) && IsFocusShown(), iTreeData->Level(aItemId), - iMarkIcon, iMenuIcon, 0); + iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0); } } } @@ -2595,6 +2661,16 @@ } // --------------------------------------------------------------------------- +// The function returns if marking mode is on or off +// --------------------------------------------------------------------------- +// +TBool CFsTreeVisualizerBase::IsMarkingMode() + { + FUNC_LOG; + return iFlags.IsSet(EMarkingMode); + } + +// --------------------------------------------------------------------------- // Set the background texture, clears the background color. // --------------------------------------------------------------------------- // @@ -2730,9 +2806,7 @@ iWatermark = CFsWatermark::NewL(*iOwnerControl, *iWatermarkLayout); } - // iWatermark->SetWatermarkTextureL(*aTexture); - // } else { @@ -2844,8 +2918,8 @@ if (!iWorld.IsUpdating()) { iRootVisualizer->ShowL(*iRootLayout); - iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, - iMenuIcon); + iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon, + iMarkOffIcon, iMenuIcon); } iVisibleItems.Reset(); iWorld.RemoveAllL(); @@ -2867,7 +2941,7 @@ { visualizer->UpdateL(iTreeData->ItemData(itemId), IsItemFocused(itemId), iTreeData->Level(itemId), - iMarkIcon, iMenuIcon, 0); + iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0); } } break; @@ -2927,7 +3001,8 @@ if (iTreeData->Count() == 0) { iRootVisualizer->ShowL(*iRootLayout); - iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, iMenuIcon); + iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon, + iMarkOffIcon, iMenuIcon); } else { @@ -3263,20 +3338,16 @@ if (iVisualizationState == EFsTreeVisible && iVisualizerObserver) { - // Touch - TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( + TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( MFsTreeVisualizerObserver::EFsTreeListVisualizerShown, KFsTreeNoneID )); - // } if (iVisualizationState == EFsTreeHidden && iVisualizerObserver) { - // Touch - TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( + TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden, KFsTreeNoneID )); - // } } @@ -3325,8 +3396,7 @@ if (iVisualizationState == EFsTreeVisible && iVisualizerObserver) { - // Touch - TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( + TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( MFsTreeVisualizerObserver::EFsTreeListVisualizerShown, KFsTreeNoneID )); @@ -3334,10 +3404,9 @@ if (iVisualizationState == EFsTreeHidden && iVisualizerObserver) { - TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( + TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL( MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden, KFsTreeNoneID )); - // } } @@ -3793,7 +3862,8 @@ { visualizer->UpdateL(iTreeData->ItemData(itemId), IsItemFocused(itemId) && IsFocusShown(), - iTreeData->Level(itemId), iMarkIcon, iMenuIcon, 0, EFalse); + iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, + iMenuIcon, 0, EFalse); } } UpdateSelectorVisualL(); @@ -3863,9 +3933,6 @@ border->SetLayer(EAlfBrushLayerBackground); border->SetBorders(-8, -8, -8, -8); - // - // layout values needed here (not: only used from FS action menu) - // iBorderLayout->SetPadding(TPoint(5, 5)); if (iBorderLayout->Brushes()->Count() > 0) @@ -4547,6 +4614,8 @@ FUNC_LOG; //list can have all items in extended or in a normal state aItemVis->SetAlwaysExtended(IsItemsAlwaysExtended()); + + aItemVis->SetMarkingMode(IsMarkingMode()); //global indentation in pixels for a list component aItemVis->SetIndentation(iLevelIndentation); @@ -4647,8 +4716,6 @@ return isFocused; } -// "Base class modifications for using touch" - // --------------------------------------------------------------------------- // C++ constructor. // --------------------------------------------------------------------------- @@ -4694,7 +4761,6 @@ iFlags.Assign( EPopupMode, aPopUpMode ); iFlags.Set( EExpandCollapseOnLongTap ); } -// // --------------------------------------------------------------------------- // Second phase constructor. @@ -4953,8 +5019,8 @@ itemId); visualizer->UpdateL(iTreeData->ItemData(itemId), IsItemFocused(itemId) && IsFocusShown(), - iTreeData->Level(itemId), iMarkIcon, iMenuIcon, - 0); + iTreeData->Level(itemId), iMarkOnIcon, + iMarkOffIcon, iMenuIcon, 0); } } CleanupStack::PopAndDestroy(); @@ -5010,7 +5076,7 @@ visualizerLayout.SetSize(tpItemSize); visualizer->UpdateL(iTreeData->ItemData(itemId), IsItemFocused(itemId) && IsFocusShown(), - iTreeData->Level(itemId), iMarkIcon, iMenuIcon, + iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0); visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId); visualizerLayout.Brushes()->AppendL(iBorderBrush, @@ -5467,5 +5533,3 @@ return ( iTouchPressed || iFocusVisible ) && iFlags.IsClear( EListPanning ); } - -//