psln/Src/PslnScreenSaverView.cpp
branchRCL_3
changeset 64 85902f042028
parent 56 d48ab3b357f1
child 72 a5e7a4f63858
equal deleted inserted replaced
59:978afdc0236f 64:85902f042028
   277 
   277 
   278         // Restore the original screen saver
   278         // Restore the original screen saver
   279         self->iModel->ActivateScreenSaver(
   279         self->iModel->ActivateScreenSaver(
   280             KErrNotFound,
   280             KErrNotFound,
   281             EPslnScreenSaverPreviewDeactivation );
   281             EPslnScreenSaverPreviewDeactivation );
       
   282         self->iScreenSaverPreviewing = EFalse;
   282 
   283 
   283         if ( self->iContainer )
   284         if ( self->iContainer )
   284             {
   285             {
   285             // Update container.
   286             // Update container.
   286             TRAP_IGNORE(
   287             TRAP_IGNORE(
   561 // CPslnScreenSaverView::HandleScreenSaverActivationL
   562 // CPslnScreenSaverView::HandleScreenSaverActivationL
   562 // -----------------------------------------------------------------------------
   563 // -----------------------------------------------------------------------------
   563 //
   564 //
   564 void CPslnScreenSaverView::HandleScreenSaverActivationL( TInt aCurrentItem )
   565 void CPslnScreenSaverView::HandleScreenSaverActivationL( TInt aCurrentItem )
   565     {
   566     {
       
   567     // Protect screensaver type during preview.
       
   568     if ( iScreenSaverPreviewing )
       
   569         {
       
   570         return;
       
   571         }
       
   572 
   566     TInt PsmMode = 0; 
   573     TInt PsmMode = 0; 
   567     iPsmClient->PsmSettings().GetCurrentMode( PsmMode );
   574     iPsmClient->PsmSettings().GetCurrentMode( PsmMode );
   568     if ( PsmMode == EPsmsrvModePowerSave ) // PSM on, setting is protected
   575     if ( PsmMode == EPsmsrvModePowerSave ) // PSM on, setting is protected
   569         {
   576         {
   570         HBufC* buf = StringLoader::LoadLC( R_PSLN_QTN_PSM_INFONOTE );
   577         HBufC* buf = StringLoader::LoadLC( R_PSLN_QTN_PSM_INFONOTE );
   608 // CPslnScreenSaverView::HandleScreenSaverPreviewL
   615 // CPslnScreenSaverView::HandleScreenSaverPreviewL
   609 // -----------------------------------------------------------------------------
   616 // -----------------------------------------------------------------------------
   610 //
   617 //
   611 void CPslnScreenSaverView::HandleScreenSaverPreviewL( TInt aCurrentItem )
   618 void CPslnScreenSaverView::HandleScreenSaverPreviewL( TInt aCurrentItem )
   612     {
   619     {
       
   620     // Stop responding to preview again if screensaver is being previewed.
       
   621     if ( iScreenSaverPreviewing )
       
   622         {
       
   623         return;
       
   624         }
       
   625 
   613     TRAPD( err, DoInvokeScreenSaverFunctionL(
   626     TRAPD( err, DoInvokeScreenSaverFunctionL(
   614         aCurrentItem,
   627         aCurrentItem,
   615         EScpCapsPreviewNotification ) );
   628         EScpCapsPreviewNotification ) );
   616 
   629 
   617     if ( err == KErrNone )
   630     if ( err == KErrNone )
   618         {        
   631         {        
   619         // Start listening for screensaver preview mode key changes.
   632         // Start listening for screensaver preview mode key changes.
   620         CreatePreviewModeSubscriberL();
   633         CreatePreviewModeSubscriberL();
   621         CreatePreviewStateSubscriberL();
   634         CreatePreviewStateSubscriberL();
   622         
   635 
       
   636         iScreenSaverPreviewing = ETrue;
   623         User::LeaveIfError(
   637         User::LeaveIfError(
   624             iModel->ActivateScreenSaver(
   638             iModel->ActivateScreenSaver(
   625                 aCurrentItem,
   639                 aCurrentItem,
   626                 EPslnScreenSaverPreviewActivation ) );       
   640                 EPslnScreenSaverPreviewActivation ) );       
   627         }
   641         }