--- 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 <centralrepository.h>
//////TOOLKIT INCLUDES
-// <cmail> SF
#include <alf/alfstatic.h>
#include <alf/alfownership.h>
#include <alf/alfevent.h>
@@ -50,7 +49,6 @@
//visuals
#include <alf/alfvisual.h>
#include <alf/alfimagevisual.h>
-// </cmail>
//////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.
// ---------------------------------------------------------------------------
//
-// <cmail>
void CFsTreeVisualizerBase::SetFirstVisibleItemL(const TFsTreeItemId /*aItemId*/)
{
FUNC_LOG;
@@ -1786,9 +1856,6 @@
TFsTreeItemId retId = KFsTreeNoneID;
if (iVisibleItems.Count())
{
- // <cmail>
- // TRAP_IGNORE( ClearVisibleItemsListL(EFalse) );
- // </cmail>
retId = iVisibleItems[0];
}
else
@@ -1822,7 +1889,6 @@
// Displays the list.
// ---------------------------------------------------------------------------
//
-// <cmail>
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();
}
-// </cmail>
// ---------------------------------------------------------------------------
// 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);
}
- // <cmail>
iWatermark->SetWatermarkTextureL(*aTexture);
- // </cmail>
}
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)
{
- // <cmail> Touch
- TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
+ TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
KFsTreeNoneID ));
- // </cmail>
}
if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
{
- // <cmail> Touch
- TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
+ TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
KFsTreeNoneID ));
- // </cmail>
}
}
@@ -3325,8 +3396,7 @@
if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
{
- // <cmail> 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 ));
- // </cmail>
}
}
@@ -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);
- //<cmail>
- // layout values needed here (not: only used from FS action menu)
- //</cmail>
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;
}
-// <cmail> "Base class modifications for using touch"
-
// ---------------------------------------------------------------------------
// C++ constructor.
// ---------------------------------------------------------------------------
@@ -4694,7 +4761,6 @@
iFlags.Assign( EPopupMode, aPopUpMode );
iFlags.Set( EExpandCollapseOnLongTap );
}
-// </cmail>
// ---------------------------------------------------------------------------
// 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 );
}
-
-// </cmail>