basiclocationinfodisplay/blid/ui/src/CBlidSavedWayptsView.cpp
branchRCL_3
changeset 17 1fc85118c3ae
parent 16 8173571d354e
child 18 870918037e16
--- a/basiclocationinfodisplay/blid/ui/src/CBlidSavedWayptsView.cpp	Thu Aug 19 09:48:36 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,519 +0,0 @@
-/*
-* Copyright (c) 2005 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:  Provides blid main view class methods.
-*
-*/
-
-
-// INCLUDE FILES
-#include <blid.rsg>
-#include <EPos_CPosLandmarkDatabase.h>
-#include <eikmenub.h> // CEikMenuBar
-#include <avkon.hrh>
-#include <aknViewAppUi.h>
-#include <AknQueryDialog.h> 
-#include <StringLoader.h>
-#include <AknsConstants.h>
-#include "Blid.hrh"
-#include "CBlidSavedWayptsContainer.h"
-#include "CBlidEng.h"
-#include "CBlidDocument.h"
-#include "MBlidLocation.h"
-#include "CBlidAppUi.h"
-#include "CBlidSavedWayptsView.h"
-#include "aknlists.h"
-#include "CLmkEditorDlg.h"
-#include "bliduiconsts.h"
-
-
-//CONSTANTS
-enum TPanicCode
-    {
-    KBlidNullPointer = 1
-    };
-
-
-// ================= MEMBER FUNCTIONS =======================
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::NewLC
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CBlidSavedWayptsView* CBlidSavedWayptsView::NewLC( MKeyProcessor& aKeyProcessor )
-    {
-    CBlidSavedWayptsView* self = new (ELeave) CBlidSavedWayptsView(aKeyProcessor);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::CBlidSavedWayptsView
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ----------------------------------------------------------------------------
-//
-CBlidSavedWayptsView::CBlidSavedWayptsView( MKeyProcessor& aKeyProcessor ):
-    CBlidBaseView( aKeyProcessor )
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::ConstructL(const TRect& aRect)
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CBlidSavedWayptsView::ConstructL()
-    {
-    BaseConstructL( R_BLID_SAVEDWAYPTS_VIEW );
-
-    iSettings = iEngine->SettingsModel();
-    __ASSERT_DEBUG(iSettings,
-        		   User::Panic(_L("CBlidSavedWayptsView"),
-        		   KBlidNullPointer));
-    }
-
-// ----------------------------------------------------------------------------
-// CBlidMainView::~CBlidSavedWayptsView
-// ----------------------------------------------------------------------------
-//
-CBlidSavedWayptsView::~CBlidSavedWayptsView()
-    {
-    if ( iContainer )
-        {
-        static_cast<CBlidAppUi*>(AppUi())->RemoveFromViewStack( *this, iContainer );
-        }
-
-    delete iContainer;
-    }
-
-// ---------------------------------------------------------
-// CBlidSavedWayptsView::NotifyL
-// ---------------------------------------------------------
-//
-void CBlidSavedWayptsView::NotifyL( const TBool aOnlineMode )
-    {
-    if( iContainer )
-        {
-        iContainer->UpdateL();
-        }
-    CBlidBaseView::NotifyL( aOnlineMode );    
-    }
-
-// ----------------------------------------------------------------------------
-// TUid CBlidSavedWayptsView::Id
-// ----------------------------------------------------------------------------
-//
-TUid CBlidSavedWayptsView::Id() const
-    {
-    return TUid::Uid(EBlidSavedWayptsView);
-    }
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::HandleCommandL
-// ----------------------------------------------------------------------------
-//
-void CBlidSavedWayptsView::HandleCommandL(TInt aCommand)
-    {
-    iContainer-> HandleMarkCommandL( aCommand );
-    
-    switch ( aCommand )
-        {
-        case EAknSoftkeyBack:
-            {
-            static_cast<CBlidAppUi*>(AppUi())->ActivateLocalViewL( iPreviousViewid.iViewUid );
-            break;
-            }
-        case EBlidCmdRenameWaypt:
-            {
-		  	if(RenameWaypointL())
-            	{
-                static_cast<CBlidDocument*>(AppUi()->Document())->SaveL();
-                }
-            break;
-            }
-        case EBlidCmdDeleteWaypt:
-            {
-            HandleWaypointsDeletionL();            
-            break;
-            }
-        default:
-            {
-            static_cast<CBlidAppUi*>(AppUi())->HandleCommandL( aCommand );
-            break;
-            }
-        } // switch
-        
-    if( iContainer )
-        {
-        iContainer->UpdateL();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::DoActivateL
-// ----------------------------------------------------------------------------
-//
-void CBlidSavedWayptsView::DoActivateL(
-   const TVwsViewId& aPrevViewId,TUid /*aCustomMessageId*/,
-   const TDesC8& /*aCustomMessage*/)
-    {
-    #ifdef _DEBUG
-    RDebug::Print(_L("CBlidSavedWayptsView::DoActivateL() called"));
-    #endif
-
-    if ( !iContainer )
-        {
-        iContainer = CBlidSavedWayptsContainer::NewL(*this, this, ClientRect(), 
-            iLocation, iSettings,iRouter, *this);
-        static_cast<CBlidAppUi*>(AppUi())->AddToStackL( *this, iContainer );
-        iLocation->SetObserver(*this, EBlidSavedWayptsView);      
-        if(!iMSKVisible)
-            {
-            SetMSKVisible();
-            }
-        MenuBar()->SetContextMenuTitleResourceId(R_BLID_SAVEDWAYPTS_VIEW_OK_MENUBAR);	
-        
-        #ifdef RD_SCALABLE_UI_V2
-        iContainer->SetListBoxObserver(this);
-        #endif // RD_SCALABLE_UI_V2        
-        }
-   iPreviousViewid = aPrevViewId;
-   }
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::DoDeactivate
-// ----------------------------------------------------------------------------
-//
-void CBlidSavedWayptsView::DoDeactivate()
-    {
-    if ( iContainer )
-        {
-        static_cast<CBlidAppUi*>(AppUi())->RemoveFromViewStack( *this, iContainer );
-        }
-    delete iContainer;
-    iContainer = NULL;
-    }
-
-// ---------------------------------------------------------
-// CBlidSavedWayptsView::DynInitMenuPaneL
-// ---------------------------------------------------------
-//
-void CBlidSavedWayptsView::DynInitMenuPaneL(
-    TInt aResourceId, CEikMenuPane* aMenuPane )
-    {
-    AknSelectionService::HandleMarkableListDynInitMenuPane(aResourceId, 
-                                                           aMenuPane,
-                                                           iContainer->iListBox);
-    switch(aResourceId)
-        {
-        case R_BLID_SAVEDWAYPTS_VIEW_OK_MENU:
-        case R_BLID_SAVEDWAYPTS_MENU:
-            {
-            if( iRouter->Count() <= 0 )
-                {
-                aMenuPane->SetItemDimmed( EBlidCmdRenameWaypt, ETrue );
-                aMenuPane->SetItemDimmed( EBlidCmdDeleteWaypt, ETrue );                
-                }
-                            
-            const CArrayFix<TInt>& indexes = *iContainer->iListBox->SelectionIndexes();
-            if(indexes.Count() != 0)
-            	{
-                aMenuPane->SetItemDimmed( EBlidCmdRenameWaypt, ETrue );
-            	}
-
-            break;
-            }        
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::RenameWaypointL()
-// ----------------------------------------------------------------------------
-//
-TBool CBlidSavedWayptsView::RenameWaypointL()
-    {
-    TInt index(0);
-    TBuf<KBlidWaypointNameMaxLen> textData;
-    index = iContainer->SelectedRow();
-    TNamedCoordinate currentWaypoint;
-    if(index < iRouter->Count() && index >= 0)
-        {
-        currentWaypoint = iRouter->At(index);        
-        }
-    HBufC* waypointName = currentWaypoint.Name();
-    textData = waypointName->Des();
-    TInt errorCode(KErrNone);
-    TBool returnValue(ETrue);
-    TInt removedIndex;
-        
-    do
-    	{
-    	if(errorCode != KErrNone)
-    		{
-    		delete waypointName;
-    		return EFalse;
-    		}
-      	CAknTextQueryDialog* dlg = new(ELeave) CAknTextQueryDialog(textData,
-                                               CAknQueryDialog::ENoTone);
-                                               
-       	if (!dlg->ExecuteLD(R_BLID_WAYPOINT_QUERY) || 
-       	    (waypointName->Compare(textData) == 0 ) )
-        	{
-        	delete waypointName;
-           	return EFalse;           
-           	}
-        
-      	}while( CheckIfExistL( textData, errorCode, removedIndex ) );
-      	
-    delete waypointName;
-      	
-    if ( index == KErrCancel )
-    	{
-        return EFalse;
-        }
-    
-    TInt retVal(KErrNone);
-    if ( index >=0 )
-    	{
-        //Check if CheckIfExistL has removed a waypoint below index
-        if((removedIndex != -1 ) && 
-           (removedIndex < index) )
-        	{
-        	--index;
-        	}
-
-        
-        retVal = iRouter->RemoveL( index );
-        if(retVal == KErrDiskFull)
-        	{        	
-        	returnValue = EFalse;
-        	BlidNotes::OutOfMemoryNoteL();	
-        	}
-        }
-   
-    if(retVal == KErrNone)
-    	{
-    	TNamedCoordinate* waypoint = new(ELeave)TNamedCoordinate();
-	    CleanupStack::PushL( waypoint );
-	    waypoint->SetName( textData );
-	    TPosition position = iLocation->GetCurrentPosition();
-	    waypoint->SetCoordinate( position.Latitude(),
-	    						 position.Longitude(),
-	            	             position.Altitude() );
-	    position.SetHorizontalAccuracy(position.HorizontalAccuracy());
-	    waypoint->SetAccuracy(position.HorizontalAccuracy());
-	    //iRouter takes waypoint's ownership    
-	    TInt retVal = iRouter->AppendL( waypoint, ETrue );
-	    if(retVal == KErrDiskFull)
-	    	{
-	    	returnValue = EFalse;
-	        BlidNotes::OutOfMemoryNoteL();
-	        }
-	    CleanupStack::Pop(); //waypoint
-        // Set the actual index of renamed wp
-        retVal = iRouter->FindWaypointIndex( waypoint );
-        if( retVal != KErrNotFound )
-            {
-            iContainer->iListBox->SetCurrentItemIndex(retVal);
-            }
-    	}    
-    return returnValue;
-	}
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::DeleteWaypointL()
-// ----------------------------------------------------------------------------
-//
-TBool CBlidSavedWayptsView::DeleteWaypointL(TInt aIndex)
-    {
-    if ( aIndex == KErrCancel )
-    	{
-        return EFalse;
-    	}
-      
-    if ( aIndex >=0 )
-    	{
-    	TInt retVal = iRouter->RemoveL( aIndex );        
-    	if(retVal == KErrDiskFull)
-        	{
-        	BlidNotes::OutOfMemoryNoteL(); 
-        	return EFalse;       	
-        	}
-        if(iRouter->Count() <= 0)
-            {
-            SetMSKNotVisible();            
-            }
-        }    
-    return ETrue;
-  	}
-
-
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::DeleteWaypointsL()
-// ----------------------------------------------------------------------------
-//
-TBool CBlidSavedWayptsView::DeleteWaypointsL(const CArrayFix<TInt>& aIndexes)
-    {
-    const TInt count( aIndexes.Count() );
-    TBool retVal = 0;
-    TBool deleteOpRetVal(ETrue);
-    
-    if(count == 1)
-        {
-        TInt index = aIndexes.At( 0 );
-        TDesC* name = iRouter->At( index ).Name();        
-        CleanupStack::PushL(name);
-        HBufC* buffer = StringLoader::LoadL(R_BLID_QUERY_DELETE_WAYPOINT,
-                                            (*name),
-                                            iCoeEnv);                                                    
-        CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-        CleanupStack::PushL(dlg);
-        dlg->SetPromptL(buffer->Des());
-        retVal = dlg->ExecuteLD(R_BLID_CONFIRMATION_QUERY);
-        if( retVal )
-            {
-            deleteOpRetVal = DeleteWaypointL(index);
-            }
-        else
-        	{
-        	deleteOpRetVal = EFalse;
-        	}
-        CleanupStack::Pop(2);
-        delete buffer;
-        delete name;
-        if((iRouter->Count() != 0) && (index == iRouter->Count()))
-            {
-            iContainer->iListBox->SetCurrentItemIndex(index-1);
-            }
-        }
-    else
-        {        
-        HBufC* buffer = StringLoader::LoadL(R_BLID_QUERY_DELETE_WAYPOINTS,
-                                        count,
-                                        iCoeEnv);                                            
-        CleanupStack::PushL(buffer);
-        CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-        CleanupStack::PushL(dlg);
-        dlg->SetPromptL(buffer->Des());
-        retVal = dlg->ExecuteLD(R_BLID_CONFIRMATION_QUERY);
-        if( retVal )
-            {
-            TInt markedArray[KMaxNumberOfWaypoints] = {0};
-            
-            for ( TInt i(0 ); i < count; ++i )
-            	{
-                TInt ix = aIndexes.At( i );                
-                markedArray[ix] = 1;
-                }
-            TInt waypointCount = iRouter->Count();
-            for( TInt i= waypointCount-1; i >= 0; --i )
-            	{
-            	if(markedArray[i])
-            		{
-            		deleteOpRetVal = DeleteWaypointL(i);
-            		if(!deleteOpRetVal)
-            			{
-            			break;
-            			}
-            		}
-            	}
-            }
-        else
-        	{
-        	deleteOpRetVal = EFalse;
-        	}
-        CleanupStack::Pop(2); // buffer, dlg        
-        delete buffer;
-        TInt index = iContainer->iListBox->CurrentItemIndex();
-        if( (iRouter->Count()!=0) && (index == -1) )
-            {
-            iContainer->iListBox->SetCurrentItemIndex(iRouter->Count() - 1);
-            }
-        }
-    return deleteOpRetVal;
-    }
-    
-// ----------------------------------------------------------------------------
-// CBlidSavedWayptsView::HandleWaypointsDeletionL()
-// ----------------------------------------------------------------------------
-//
-void CBlidSavedWayptsView::HandleWaypointsDeletionL()
-    {
-    const CArrayFix<TInt>& indexes = *iContainer->iListBox->SelectionIndexes();
-    TBool retVal(ETrue);
-    if (indexes.Count() == 0)
-        {
-        TInt index(0);
-        index = iContainer->SelectedRow();
-                
-        TDesC* name;
-        if( index < 0 )
-            {
-            return;
-            }
-        name = iRouter->At( index ).Name();
-        CleanupStack::PushL(name);
-        HBufC* buffer = StringLoader::LoadL(R_BLID_QUERY_DELETE_WAYPOINT,
-                                            (*name),
-                                            iCoeEnv);                                            
-        CleanupStack::PushL(buffer);
-        CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-        CleanupStack::PushL(dlg);
-        dlg->SetPromptL(buffer->Des());
-        if( dlg->ExecuteLD(R_BLID_CONFIRMATION_QUERY) )
-            {
-            retVal = DeleteWaypointL(index);
-            }
-        else
-        	{
-        	retVal = EFalse;
-        	}  
-        CleanupStack::Pop(3); // buffer, dlg, name
-        delete buffer;
-        delete name;
-        if((iRouter->Count()!=0) && (index == iRouter->Count()))
-            {
-            iContainer->iListBox->SetCurrentItemIndex(index-1);
-            }
-        }
-     else
-        {
-        retVal = DeleteWaypointsL(indexes);
-        if( retVal )
-            {
-            iContainer->iListBox->ClearSelection();	
-            }            	
-        }
-    if(retVal)
-    	{
-    	static_cast<CBlidDocument*>(AppUi()->Document())->SaveL();
-    	}    
-    }
-
-
-#ifdef RD_SCALABLE_UI_V2
-// ---------------------------------------------------------------------------
-// CBlidSavedWayptsView::HandleListBoxSelectionL
-// ---------------------------------------------------------------------------
-//
-void CBlidSavedWayptsView::HandleListBoxSelectionL()
-    {
-    MenuBar()->TryDisplayContextMenuBarL();        
-    }
-#endif // RD_SCALABLE_UI_V2
-// End of File