AppSrc/SendImageFile.cpp
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     1
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     3
* All rights reserved.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     4
* This component and the accompanying materials are made available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     6
* which accompanies this distribution, and is available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     8
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     9
* Initial Contributors:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    11
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    12
* Contributors: Juha Kauppinen, Mika Hokkanen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    13
* 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    14
* Description: Photo Browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    15
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    16
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    17
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
#include "SendImageFile.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
#include <sendui.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include <eikenv.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#ifdef SEND_FILE_DIALOGUE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
#include <BTObjectExchange.rsg>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
#include <caknfileselectiondialog.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
#include <caknmemoryselectiondialog.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
#include <cmessagedata.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
CSendImageFile::CSendImageFile() {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
CSendImageFile* CSendImageFile::NewL() {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
    CSendImageFile* self = new ( ELeave ) CSendImageFile();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
    CleanupStack::PushL( self );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
    self->ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
    CleanupStack::Pop( self );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
void CSendImageFile::ConstructL() {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
    iSendUi = CSendUi::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
CSendImageFile::~CSendImageFile() {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
    if(iSendUi) {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
        delete iSendUi;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
#ifdef SEND_FILE_DIALOGUE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
TBool CSendImageFile::AskFileL(TFileName& aFileName)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
    // Select memory
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
    CAknMemorySelectionDialog* memSelectionDialog = 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
        CAknMemorySelectionDialog::NewL(ECFDDialogTypeNormal, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
    CleanupStack::PushL(memSelectionDialog);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
    CAknMemorySelectionDialog::TMemory mem(CAknMemorySelectionDialog::EPhoneMemory);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
    TInt ret = memSelectionDialog->ExecuteL(mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
    CleanupStack::PopAndDestroy(memSelectionDialog);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
    if (!ret) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
        {        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
        return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
    //Select file from the chosen memory
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
    CAknFileSelectionDialog* fileSelectionDialog = NULL; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
    if (mem == CAknMemorySelectionDialog::EMemoryCard)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
        {  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
        fileSelectionDialog = CAknFileSelectionDialog::NewL(ECFDDialogTypeNormal,R_FILE_SELECTION_DIALOG_E );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
        {  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
        fileSelectionDialog= CAknFileSelectionDialog::NewL(ECFDDialogTypeNormal,R_FILE_SELECTION_DIALOG_C );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
        } 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
    TBool result = fileSelectionDialog->ExecuteL(aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
    delete fileSelectionDialog;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
    return result;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
void CSendImageFile::SendFileViaSendUiL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
    TFileName path;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
    AskFileL(path);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
    SendFileViaSendUiL(path);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
void CSendImageFile::SendFileViaSendUiL(TFileName path)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
        TSendingCapabilities capabs( 0, 1024, TSendingCapabilities::ESupportsAttachments ); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
        RFs fs;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
        CleanupClosePushL(fs);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
        User::LeaveIfError( fs.Connect() );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
        fs.ShareProtected();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
        RFile temp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
        User::LeaveIfError( temp.Open( fs, path, EFileShareReadersOnly | EFileRead ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
        CleanupClosePushL(temp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
        CMessageData* messageData = CMessageData::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
        CleanupStack::PushL(messageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
        messageData->AppendAttachmentHandleL(temp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
        TRAPD(err, iSendUi->ShowQueryAndSendL(messageData, capabs) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
        CleanupStack::PopAndDestroy(messageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
        CleanupStack::PopAndDestroy(&temp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
        CleanupStack::PopAndDestroy(&fs);        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
    }