--- a/ImagePrint/ImagePrintUI/imgpprintdll/src/cimgpprintdlgmanager.cpp Tue May 25 12:42:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,463 +0,0 @@
-/*
-* Copyright (c) 2004-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:
-*
-*/
-
-
-#include <StringLoader.h>
-#include <AknWaitDialog.h>
-#include <aknstaticnotedialog.h>
-#include <eikprogi.h>
-#include <aknnotewrappers.h>
-#include <coecntrl.h>
-#include <eikmenup.h>
-#include <bautils.h>
-#include <bluetooth/hci/hcierrors.h>
-#include <f32file.h>
-#include <imageprintapp.rsg>
-
-#include "cimgpprintdlgmanager.h"
-#include "imgpprintapputil.h"
-#include "cimgpprintprogressdlg.h"
-#include "clog.h"
-#include "cimgpprintutils.h"
-#include "mprintingobserver.h"
-#include "tprinter.h"
-#include "printmessagecodes.h"
-#include "imageprintconsts.h"
-
-_LIT(KPlain, "%S");
-
-const TUint KProgressFinalValue = 100;
-
-// Timeout for MMC InformationNote ( timeout = 5 000 000 ms -> 5 s )
-const TInt KTimeOut = 5000000;
-
-
-// CONSTRUCTION
-EXPORT_C CIMGPPrintDlgManager* CIMGPPrintDlgManager::NewL(
- TInt aNoc,
- MPrintJob* aPrintJob,
- TUint aNumOfPages,
- TBool aMMCPrinting,
- TUint aVendor,
- CIMGPPrintUtils* aPrintUtils,
- MPrintingObserver* aPrintingObserver )
- {
- CIMGPPrintDlgManager* self =
- CIMGPPrintDlgManager::NewLC( aNoc,
- aPrintJob,
- aNumOfPages,
- aMMCPrinting,
- aVendor,
- aPrintUtils,
- aPrintingObserver );
- CleanupStack::Pop( self );
- return self;
- }
-
-CIMGPPrintDlgManager* CIMGPPrintDlgManager::NewLC(
- TInt aNoc,
- MPrintJob* aPrintJob,
- TUint aNumOfPages,
- TBool aMMCPrinting,
- TUint aVendor,
- CIMGPPrintUtils* aPrintUtils,
- MPrintingObserver* aPrintingObserver )
- {
- CIMGPPrintDlgManager* self =
- new ( ELeave ) CIMGPPrintDlgManager( aNoc,
- aPrintJob,
- aNumOfPages,
- aMMCPrinting,
- aVendor,
- aPrintUtils,
- aPrintingObserver );
- self->ConstructL();
- CleanupStack::PushL( self );
-
- return self;
- }
-
-
-// Second class constructor
-void CIMGPPrintDlgManager::ConstructL()
- {
-
- }
-
-// Default constructor
-CIMGPPrintDlgManager::CIMGPPrintDlgManager(
- TInt aNoc,
- MPrintJob* aPrintJob,
- TUint aNumOfPages,
- TBool aMMCPrinting,
- TUint aVendor,
- CIMGPPrintUtils* aPrintUtils,
- MPrintingObserver* aPrintingObserver ) :
- iPrintJob( aPrintJob ),
- iNumOfPages( aNumOfPages ),
- iMMCPrinting( aMMCPrinting ),
- iVendor( aVendor )
- {
- iCancellingDialog = 0;
- // Used only in aiw printing
- if( aPrintUtils )
- {
- iPrintUtils = aPrintUtils;
- }
- if( aPrintingObserver )
- {
- iPrintingObserver = aPrintingObserver;
- }
- iNoc = aNoc;
- }
-
-// Destructor
-CIMGPPrintDlgManager::~CIMGPPrintDlgManager()
- {
- LOG("CIMGPPrintDlgManager::~CIMGPPrintDlgManager BEGIN");
- if ( iDialog )
- {
- delete iDialog;
- iDialog = 0;
- }
- LOG("CIMGPPrintDlgManager::~CIMGPPrintDlgManager END");
- }
-
-// Starts the print job
-EXPORT_C void CIMGPPrintDlgManager::StartPrintingL()
- {
- LOG("CIMGPPrintDlgManager::StartPrintingL BEGIN");
-
- iFirstNote = ETrue;
-
- TRAPD( err, iPrintJob->PrintL( this ));
- if ( err == KErrNone )
- {
- LOG("CIMGPPrintDlgManager::StartPrintingL printing...");
- PrepareProgressDialogL();
- iCancelling = EFalse;
- iPrintingCancelled = EFalse;
- iDialog->RunLD();
- }
- else
- {
- LOG("CIMGPPrintDlgManager::StartPrintingL failed");
- if ( iDialog )
- {
- delete iDialog;
- iDialog = 0;
- }
- if( iPrintUtils )
- {
- iPrintUtils->JobFinished();
- }
- if( iPrintingObserver )
- {
- TRAP_IGNORE( iPrintingObserver->PrintingCompletedL( EFalse ));
- }
- // Don't leave for KErrNotFound, as there's another note for it
- if ( err != KErrNotFound )
- {
- TRAP_IGNORE( IMGPPrintAppUtil::ShowErrorMsgL( err ));
- }
- }
- LOG("CIMGPPrintDlgManager::StartPrintingL END");
- }
-
-void CIMGPPrintDlgManager::PrepareProgressDialogL()
- {
- LOG("CIMGPPrintDlgManager::PrepareProgressDialogL START");
- HBufC* txt;
- if ( !iMMCPrinting )
- {
- txt = StringLoader::LoadLC(
- R_QTN_PRINT_PROGRESS_NOTE_TITLE );
- }
- else
- {
- txt = StringLoader::LoadLC(
- R_QTN_COPY_PROGRESS_NOTE_TITLE);
- }
-
- TBuf<128> buf;
- buf.Format( KPlain, txt );
- CleanupStack::PopAndDestroy( txt );
-
- iDialog = new ( ELeave ) CAknProgressDialog(
- (REINTERPRET_CAST( CEikDialog**, &iDialog )), EFalse );
- iDialog->PrepareLC( R_PRINT_PROGRESS_PLAIN_PROG_NOTE );
-
- CEikProgressInfo* info = iDialog->GetProgressInfoL();
- info->SetFinalValue( KProgressFinalValue );
- iDialog->SetTextL( buf );
- iDialog->SetCallback( this );
- LOG("CIMGPPrintDlgManager::PrepareProgressDialogL END");
- }
-
-
-// Called to update the print progress
-void CIMGPPrintDlgManager::PrintProgress(
- TUint aComplete )
- {
- TInt err = KErrNone;
- TRAP( err, PrintProgressL( aComplete ) );
- if ( err != KErrNone )
- {
- TRAP_IGNORE( IMGPPrintAppUtil::ShowErrorMsgL( err ) );
- }
- }
-
-// Called to update the print progress
-void CIMGPPrintDlgManager::PrintProgressL(
- TUint aComplete )
- {
- LOG1( "CIMGPPrintDlgManager::PrintProgressL START with: %d", aComplete );
- if( !iCancelling )
- {
- if ( !iDialog )
- {
- LOG("CIMGPPrintDlgManager::PrintProgressL: creating dialog again");
- PrepareProgressDialogL();
- iDialog->RunLD();
- }
- CEikProgressInfo* info = iDialog->GetProgressInfoL();
- info->SetAndDraw( aComplete );
- }
- LOG("CIMGPPrintDlgManager::PrintProgressL END");
- }
-
-// Called when the print job is finished
-void CIMGPPrintDlgManager::JobFinished()
- {
-
- LOG("CIMGPPrintDlgManager::JobFinished BEGIN");
- if ( iDialog )
- {
- delete iDialog;
- iDialog = 0;
- }
- if ( iMMCPrinting && !iCancelling )
- {
- LOG("CIMGPPrintDlgManager::JobFinished mmc note");
- TRAP_IGNORE( ShowMMCPrintingCompletedDlgL() );
- LOG("CIMGPPrintDlgManager::JobFinished mmc note done");
- }
- if ( iCancelling )
- {
- if(iCancellingDialog)
- {
- TRAP_IGNORE( iCancellingDialog->ProcessFinishedL() );
- iCancellingDialog = 0;
- iCancelling = EFalse;
- }
- }
- else
- {
- if( iPrintUtils )
- {
- LOG("CIMGPPrintDlgManager::JobFinished iPrintUtils");
- iPrintUtils->JobFinished();
- LOG("CIMGPPrintDlgManager::JobFinished iPrintUtils done");
- }
- if( iPrintingObserver )
- {
- TRAP_IGNORE( iPrintingObserver->PrintingCompletedL( EFalse ));
- }
- }
- LOG("CIMGPPrintDlgManager::JobFinished END");
- }
-
-// Manages print job errors
-void CIMGPPrintDlgManager::JobError(
- TInt aErrCode, TInt aErrorStringCode )
- {
- LOG2("CIMGPPrintDlgManager::JobError BEGIN, error = %d, stringcode = %d", aErrCode, aErrorStringCode );
-
- if( iMMCPrinting && aErrCode == ECancellingNoMessage )
- {
- if ( iDialog )
- {
- delete iDialog;
- iDialog = 0;
- }
- return;
- }
-
- if ( iMMCPrinting && !iCancelling )
- {
- TRAP_IGNORE( IMGPPrintAppUtil::ShowErrorNoteL( R_NOTE_IMAGEPRINT_MMCCOPYFAIL ) );
- // Nothing to do if the displaying of error note fails
- // Just need to make sure that this method never leaves
- }
- if ( iCancelling )
- {
- LOG( "CIMGPPrintDlgManager::JobError ---> iCancellingDialog->ProcessFinishedL()" );
- TRAP_IGNORE( iCancellingDialog->ProcessFinishedL() );
- iCancellingDialog = 0;
- iCancelling = EFalse;
- }
- else
- {
- // Delete dialog
- if ( iDialog )
- {
- delete iDialog;
- iDialog = 0;
- }
- if( iPrintUtils &&
- aErrCode != KHCIErrorBase-EPageTimedOut &&
- aErrorStringCode != EObexConnectError )
- {
- iPrintUtils->JobFinished();
- }
- if( iPrintingObserver )
- {
- TRAP_IGNORE( iPrintingObserver->PrintingCompletedL( EFalse ));
- }
- }
-
- /* Error note is shown to user in normal cases, but not when
- * printing is done to MMC, canceled, done via quickprint, or
- * BT timeout happens, as these cases are handled in other parts
- * of code
- */
- if ( !iMMCPrinting &&
- aErrCode != ECancelling &&
- ( !iPrintUtils ||
- ( aErrCode != KHCIErrorBase-EPageTimedOut &&
- aErrorStringCode != EObexConnectError )))
- {
- TRAP_IGNORE( IMGPPrintAppUtil::ShowErrorMsgL( aErrCode, aErrorStringCode ));
- // Nothing to do to handle err
- }
- LOG("CIMGPPrintDlgManager::JobError END");
- }
-
-// Manages print job status events
-void CIMGPPrintDlgManager::JobStatusEvent( TInt aErrCode, TInt aErrorStringCode )
- {
- LOG2("CIMGPPrintDlgManager::JobStatusEvent = %d, stringcode = %d", aErrCode, aErrorStringCode );
- // If printer is disconnected cancel printing else
- // just show the error message
- if ( aErrCode == KErrDisconnected )
- {
- TRAP_IGNORE( IMGPPrintAppUtil::ShowErrorMsgL( KErrDisconnected, aErrorStringCode ));
- if ( iDialog )
- {
- // This ends the printing
- delete iDialog;
- iDialog = 0;
- }
- }
- else
- {
- TRAP_IGNORE( IMGPPrintAppUtil::ShowErrorMsgL( aErrCode, aErrorStringCode ));
- }
- LOG("CIMGPPrintDlgManager::JobStatusEvent END");
- }
-
-// Shows printing completed dlg
-void CIMGPPrintDlgManager::ShowMMCPrintingCompletedDlgL()
- {
- LOG("CIMGPPrintDlgManager::ShowMMCPrintingCompletedDlgL BEGIN");
-
- RPointerArray<TDesC> allImages;
- CleanupClosePushL( allImages );
- iPrintJob->GetPrintJobL( allImages );
- TInt imagesCount = allImages.Count();
- CleanupStack::PopAndDestroy( &allImages );
- HBufC* buf = NULL;
-
- // Blocks possibility to show note when exiting image print.
- if (iFirstNote)
- {
- if ( iNoc == 1 && imagesCount == 1 )
- {
- buf = StringLoader::LoadLC( R_SETTINGS_IMAGEPRINT_MMC_PRINT_NOTE_ONE_PICTURE ); //r_settings_imageprint_mmc_print_note_one_picture
- }
- else
- {
- buf = StringLoader::LoadLC( R_SETTINGS_IMAGEPRINT_MMC_PRINT_NOTE );
- }
-
- CAknInformationNote* dlg = new ( ELeave ) CAknInformationNote( ETrue );
- dlg->SetTimeout( (CAknNoteDialog::TTimeout) KTimeOut );
- dlg->ExecuteLD( *buf );
- CleanupStack::PopAndDestroy( buf );
-
- iFirstNote = EFalse;
-
- }
-
- LOG("CIMGPPrintDlgManager::ShowMMCPrintingCompletedDlgL END");
- }
-
-// Called when dialog gets dismissed
-void CIMGPPrintDlgManager::DialogDismissedL(
- TInt aButtonId )
- {
- LOG("CIMGPPrintDlgManager::DialogDismissedL BEGIN");
- // If user pressed cancel, cancel printing
- LOG1( "CIMGPPrintDlgManager::DialogDismissedL iPrintingCancelled: %d", iPrintingCancelled );
- if ( ( aButtonId == EAknSoftkeyCancel ) && ( iPrintingCancelled == EFalse ) )
- {
- LOG("CIMGPPrintDlgManager::DialogDismissedL aButtonId == EAknSoftkeyCancel");
- iDialog = 0;
- iCancelling = ETrue;
-
- // Printing cancelled
- iPrintingCancelled = ETrue;
-
- TRAPD( err, iPrintJob->CancelL() );
- if( err == KErrNone )
- {
- ShowCancelWaitNoteL();
- }
- else
- {
- iCancelling = EFalse;
- }
- }
-
- LOG("CIMGPPrintDlgManager::DialogDismissedL END");
- }
-
-// Displays the cancel wait note
-void CIMGPPrintDlgManager::ShowCancelWaitNoteL()
- {
- iCancellingDialog =
- new ( ELeave ) CAknWaitDialog(
- (REINTERPRET_CAST(CEikDialog**,&iCancellingDialog)));
- iCancellingDialog->PrepareLC(R_CANCEL_PRINTING_DIALOG);
- HBufC* text = StringLoader::LoadLC( R_QTN_PRINT_PROGRESS_PROMPT_CANCEL );
- iCancellingDialog->SetTextL( *text );
- CleanupStack::PopAndDestroy(text);
-
- iCancellingDialog->SetTone( CAknNoteDialog::ENoTone );
- iCancellingDialog->RunLD();
-
- if( iPrintUtils )
- {
- iPrintUtils->JobFinished();
- }
- if( iPrintingObserver )
- {
- iPrintingObserver->PrintingCompletedL( ETrue );
- }
- }
-
-// End of File