messagingappbase/msgeditor/appuisrc/MsgAttaListItemArray.cpp
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgeditor/appuisrc/MsgAttaListItemArray.cpp	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,209 @@
+/*
+* Copyright (c) 2007 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:  MsgAttaListItemArray implementation
+*
+*/
+
+
+
+// ========== INCLUDE FILES ================================
+#include <msvapi.h>
+#include <eikspane.h>
+#include <eikmenup.h>
+#include <AknDef.h>
+#include <aknappui.h>
+#include <akntitle.h>
+#include <aknnavi.h>
+#include <aknlists.h>
+#include <gulicon.h>
+#include <coeutils.h>               // for ConeUtils::FileExists
+#include <bautils.h>
+#include <aknnotewrappers.h>
+#include <AknWaitDialog.h>          // CAknWaitDialog
+#include <DocumentHandler.h>
+#include <StringLoader.h>           // StringLoader
+#include <AiwCommon.h>
+#include <NpdApi.h>
+
+#include <mmsvattachmentmanager.h>
+
+#include <avkon.hrh>
+
+#include <aknlayout.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+
+#include <AknUtils.h>
+#include <AknsUtils.h>          // skinned icons
+#include <AknsConstants.h>      // skinned icon ids
+
+#include "MsgEditorCommon.h"        // for KMsgEditorMbm
+#include "MsgEditorDocument.h"
+#include "MsgAttachmentInfo.h"
+#include "MsgAttachmentModel.h"
+#include "MsgViewAttachmentsDialog.h"
+#include "MsgAttachmentUtils.h"
+#include "MsgAttaListItemArray.h"
+
+#include <msgeditor.mbg>
+#include "MsgEditorAppUi.hrh"
+#include <MsgEditorAppUi.rsg>       // resouce identifiers
+
+#include <aknlistloadertfx.h>
+#include <aknlistboxtfxinternal.h>
+
+// ========== EXTERNAL DATA STRUCTURES =====================
+
+// ========== EXTERNAL FUNCTION PROTOTYPES =================
+
+// ========== CONSTANTS ====================================
+
+_LIT( KStripList, "\x000A\x000D\x2029\x2028\x0085" );
+
+// ========== MACROS =======================================
+
+// ========== LOCAL CONSTANTS AND MACROS ===================
+
+// ========== MODULE DATA STRUCTURES =======================
+
+// ========== LOCAL FUNCTION PROTOTYPES ====================
+
+// ========== LOCAL FUNCTIONS ==============================
+
+// ========== MEMBER FUNCTIONS =============================
+
+// ---------------------------------------------------------
+// CMsgAttaListItemArray::NewL
+//
+//
+// ---------------------------------------------------------
+//
+EXPORT_C CMsgAttaListItemArray* CMsgAttaListItemArray::NewL(
+    CMsgAttachmentModel& aAttachmentModel,
+    CArrayPtr<CGulIcon>* aIconArray )
+    {
+    CMsgAttaListItemArray* self = new ( ELeave ) CMsgAttaListItemArray(
+        aAttachmentModel,
+        aIconArray );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self
+
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CMsgAttaListItemArray::~CMsgAttaListItemArray
+//
+//
+// ---------------------------------------------------------
+//
+EXPORT_C CMsgAttaListItemArray::~CMsgAttaListItemArray()
+    {
+    delete iListItemText;
+    }
+
+// ---------------------------------------------------------
+// CMsgAttaListItemArray::ConstructL
+//
+//
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgAttaListItemArray::ConstructL()
+    {
+    iListItemText = new ( ELeave ) TBuf<KMsgAttaItemTextLength>;
+    }
+
+// ---------------------------------------------------------
+// CMsgAttaListItemArray::MdcaCount
+//
+//
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgAttaListItemArray::MdcaCount() const
+    {
+    return iAttachmentModel.NumberOfItems();
+    }
+
+// ---------------------------------------------------------
+// CMsgAttaListItemArray::MdcaPoint
+//
+//
+// ---------------------------------------------------------
+//
+TPtrC CMsgAttaListItemArray::MdcaPoint(TInt aIndex) const
+    {
+    CMsgAttachmentInfo& attInfo = iAttachmentModel.AttachmentInfoAt( aIndex );
+
+    // if application icon has been inserted previously, delete it from index 0
+    // and insert new app icon to index 0.
+    iIconArray->Reset();
+    TRAP_IGNORE( iIconArray->AppendL( attInfo.Icon() ) );
+
+    // then get the file name from atta info full path name.
+    TParsePtrC parser( attInfo.FileName() );
+    TFileName filename( parser.NameAndExt() );
+    
+    HBufC* convertedFilename = NULL;
+    
+    if ( filename.Length() == 0 )
+        {
+        CEikonEnv::Static()->ReadResource( filename, R_QTN_MMS_NO_NAME_FOR_FILE );
+        }
+    else
+        {
+        TRAP_IGNORE( convertedFilename = AknTextUtils::ConvertFileNameL( filename ) );
+        
+        TPtr convertedFileNamePtr = convertedFilename->Des();
+        AknTextUtils::StripCharacters( convertedFileNamePtr, KStripList );
+        }
+        
+    // generate item text for list item by combining
+    // icon index (always zero), file name and file size.
+    iListItemText->Zero();
+
+    iListItemText->AppendNum( 0 );
+    iListItemText->Append( KColumnListSeparator );
+    
+    if ( convertedFilename )
+        {
+        iListItemText->Append( *convertedFilename );
+        delete convertedFilename;
+        }
+    else
+        {
+        iListItemText->Append( filename );
+        }
+    
+    iListItemText->Append( KColumnListSeparator );
+    iListItemText->Append( attInfo.SizeString() );
+
+    return *iListItemText;
+    }
+
+// ---------------------------------------------------------
+// CMsgAttaListItemArray::CMsgAttaListItemArray
+//
+//
+// ---------------------------------------------------------
+//
+EXPORT_C CMsgAttaListItemArray::CMsgAttaListItemArray(
+    CMsgAttachmentModel& aAttachmentModel,
+    CArrayPtr<CGulIcon>* aIconArray )
+    : iAttachmentModel( aAttachmentModel ),
+      iIconArray( aIconArray )
+    {
+    }
+
+// End of File