filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.cpp
changeset 16 ada7962b4308
parent 14 1957042d8c7e
child 18 edd66bde63a4
child 25 b7bfdea70ca2
child 37 15bc28c9dd51
equal deleted inserted replaced
14:1957042d8c7e 16:ada7962b4308
    15 *
    15 *
    16 */
    16 */
    17 #include "fmoperationresultprocesser.h"
    17 #include "fmoperationresultprocesser.h"
    18 #include "fmoperationbase.h"
    18 #include "fmoperationbase.h"
    19 #include "fmoperationservice.h"
    19 #include "fmoperationservice.h"
       
    20 #include "fmoperationformat.h"
    20 #include "fmviewdetailsdialog.h"
    21 #include "fmviewdetailsdialog.h"
    21 #include "fmdlgutils.h"
    22 #include "fmdlgutils.h"
    22 
    23 #include "fmutils.h"
    23 #include <hbprogressnote.h>
    24 
       
    25 #include <hbprogressdialog.h>
    24 #include <hbaction.h>
    26 #include <hbaction.h>
    25 #include <hbmessagebox.h>
    27 #include <hbmessagebox.h>
    26 
    28 
    27 FmOperationResultProcesser::FmOperationResultProcesser( FmOperationService *operationService )
    29 FmOperationResultProcesser::FmOperationResultProcesser( FmOperationService *operationService )
    28     : mOperationService( operationService ), mNote( 0 )
    30     : mOperationService( operationService ), mNote( 0 )
    39     Q_UNUSED( operationBase );
    41     Q_UNUSED( operationBase );
    40     
    42     
    41     QString questionText = QString( "file " ) +
    43     QString questionText = QString( "file " ) +
    42         srcFile + QString( " already exist, please rename:" );
    44         srcFile + QString( " already exist, please rename:" );
    43     QString value;
    45     QString value;
    44     FmDlgUtils::showTextQuery( questionText, value );
    46     FmDlgUtils::showTextQuery( questionText, value, true );
    45     *destFile = value;
    47     *destFile = value;
       
    48 }
       
    49 
       
    50 void FmOperationResultProcesser::onAskForReplace(
       
    51     FmOperationBase* operationBase, const QString &srcFile, const QString &destFile, bool *isAccepted )
       
    52 {
       
    53     Q_UNUSED( operationBase );
       
    54     Q_UNUSED( destFile );
       
    55     
       
    56     QString questionText = QString( "file " ) +
       
    57         srcFile + QString( " already exist, replace it?" );
       
    58     if( HbMessageBox::question( questionText ) ) {
       
    59         *isAccepted = true;
       
    60     } else {
       
    61         *isAccepted = false;
       
    62     }
    46 }
    63 }
    47 
    64 
    48 void FmOperationResultProcesser::onNotifyWaiting( FmOperationBase* operationBase, bool cancelable )
    65 void FmOperationResultProcesser::onNotifyWaiting( FmOperationBase* operationBase, bool cancelable )
    49 {
    66 {
    50     QString title = tr("Operation");
    67     QString title = tr("Operation");
    51     switch( operationBase->operationType() )
    68     switch( operationBase->operationType() )
    52     {
    69     {
    53     case FmOperationService::EOperationTypeBackup:
    70     case FmOperationService::EOperationTypeBackup:
    54         title = tr("backuping");
    71         title = hbTrId("backuping");
    55         break;
    72         break;
    56     case FmOperationService::EOperationTypeRestore:
    73     case FmOperationService::EOperationTypeRestore:
    57         title = tr("restoring");
    74         title = hbTrId("restoring");
    58         break;
    75         break;
    59       case FmOperationService::EOperationTypeDriveDetails:
    76       case FmOperationService::EOperationTypeDriveDetails:
    60           title = tr( "Scaning memory..." );
    77           title = hbTrId( "Scaning memory..." );
    61         break;
    78         break;
    62         
    79         
    63     case FmOperationService::EOperationTypeFolderDetails:
    80     case FmOperationService::EOperationTypeFolderDetails:
    64         title = tr( "Scaning folder..." );
    81         title = hbTrId( "Scaning folder..." );
    65         break;
    82         break;
    66     default:
    83     default:
    67         break;
    84         break;
    68     }
    85     }
    69 
    86 
    70     showWaiting( title, cancelable );
    87     showWaiting( title, cancelable );
    71 }
    88 }
    72 
    89 
    73 void FmOperationResultProcesser::onNotifyPreparing( FmOperationBase* operationBase, bool cancelable )
    90 void FmOperationResultProcesser::onNotifyPreparing( FmOperationBase* operationBase, bool cancelable )
       
    91 {
       
    92     QString title = hbTrId("Operation");
       
    93     switch( operationBase->operationType() )
       
    94     {
       
    95     case FmOperationService::EOperationTypeBackup:
       
    96         title = hbTrId("backup preparing");
       
    97         break;
       
    98     case FmOperationService::EOperationTypeRestore:
       
    99         title = hbTrId("restore preparing");
       
   100         break;
       
   101     case FmOperationService::EOperationTypeCopy:
       
   102         title = hbTrId("copy preparing");
       
   103         break;
       
   104     case FmOperationService::EOperationTypeMove:
       
   105         title = hbTrId("move preparing");
       
   106         break;
       
   107     case FmOperationService::EOperationTypeRemove:
       
   108         title = hbTrId("delete preparing");
       
   109         break;
       
   110     case FmOperationService::EOperationTypeFormat:
       
   111         title = hbTrId("format preparing");
       
   112         break;
       
   113     default:
       
   114         break;
       
   115     }
       
   116 
       
   117     showPreparing( title, cancelable );
       
   118 }
       
   119 
       
   120 void FmOperationResultProcesser::onNotifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps )
    74 {
   121 {
    75     QString title = tr("Operation");
   122     QString title = tr("Operation");
    76     switch( operationBase->operationType() )
   123     switch( operationBase->operationType() )
    77     {
   124     {
    78     case FmOperationService::EOperationTypeBackup:
   125     case FmOperationService::EOperationTypeBackup:
    79         title = tr("backup preparing");
   126         title = hbTrId("backup...");
    80         break;
   127         break;
    81     case FmOperationService::EOperationTypeRestore:
   128     case FmOperationService::EOperationTypeRestore:
    82         title = tr("restore preparing");
   129         title = hbTrId("restore...");
    83         break;
   130         break;
    84     case FmOperationService::EOperationTypeCopy:
   131     case FmOperationService::EOperationTypeCopy:
    85         title = tr("copy preparing");
   132         title = hbTrId("copy...");
    86         break;
   133         break;
    87     case FmOperationService::EOperationTypeMove:
   134     case FmOperationService::EOperationTypeMove:
    88         title = tr("move preparing");
   135         title = hbTrId("move...");
    89         break;
   136         break;
    90     case FmOperationService::EOperationTypeRemove:
   137     case FmOperationService::EOperationTypeRemove:
    91         title = tr("delete preparing");
   138         title = hbTrId("delete...");
    92         break;
   139         break;
    93     default:
   140     case FmOperationService::EOperationTypeFormat:
    94         break;
   141         title = hbTrId("formating...");
    95     }
       
    96 
       
    97     showPreparing( title, cancelable );
       
    98 }
       
    99 
       
   100 void FmOperationResultProcesser::onNotifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps )
       
   101 {
       
   102     QString title = tr("Operation");
       
   103     switch( operationBase->operationType() )
       
   104     {
       
   105     case FmOperationService::EOperationTypeBackup:
       
   106         title = tr("backup...");
       
   107         break;
       
   108     case FmOperationService::EOperationTypeRestore:
       
   109         title = tr("restore...");
       
   110         break;
       
   111     case FmOperationService::EOperationTypeCopy:
       
   112         title = tr("copy...");
       
   113         break;
       
   114     case FmOperationService::EOperationTypeMove:
       
   115         title = tr("move...");
       
   116         break;
       
   117     case FmOperationService::EOperationTypeRemove:
       
   118         title = tr("delete...");
       
   119         break;
   142         break;
   120     default:
   143     default:
   121         break;
   144         break;
   122     }
   145     }
   123 
   146 
   138     {
   161     {
   139     case FmOperationService::EOperationTypeDriveDetails:
   162     case FmOperationService::EOperationTypeDriveDetails:
   140         {
   163         {
   141             FmOperationDriveDetails *paramDriveDetails = static_cast<FmOperationDriveDetails*>( operationBase );
   164             FmOperationDriveDetails *paramDriveDetails = static_cast<FmOperationDriveDetails*>( operationBase );
   142             QString diskName = paramDriveDetails->driverName();
   165             QString diskName = paramDriveDetails->driverName();
   143             FmViewDetailsDialog::showDriveViewDetailsDialog( diskName, paramDriveDetails->detailsSizeList() );
   166             FmViewDetailsDialog::showDriveViewDetailsDialog( diskName, paramDriveDetails->detailsSizeList(),
       
   167 				FmUtils::getDriveLetterFromPath( diskName ) );
   144             break;
   168             break;
   145         }
   169         }
   146     case FmOperationService::EOperationTypeFolderDetails:
   170     case FmOperationService::EOperationTypeFolderDetails:
   147         {
   171         {
   148             FmOperationFolderDetails *paramFolderDetails = static_cast<FmOperationFolderDetails*>( operationBase );
   172             FmOperationFolderDetails *paramFolderDetails = static_cast<FmOperationFolderDetails*>( operationBase );
   149             FmViewDetailsDialog::showFolderViewDetailsDialog( paramFolderDetails->folderPath(),
   173             FmViewDetailsDialog::showFolderViewDetailsDialog( paramFolderDetails->folderPath(),
   150                 paramFolderDetails->numofSubFolders(),
   174                 paramFolderDetails->numofSubFolders(),
   151                 paramFolderDetails->numofFiles(),
   175                 paramFolderDetails->numofFiles(),
   152                 paramFolderDetails->sizeofFolder() );
   176                 paramFolderDetails->sizeofFolder(), 
       
   177 				FmUtils::getDriveLetterFromPath( paramFolderDetails->folderPath() ) );
   153             break;
   178             break;
   154         }
   179         }
   155     case FmOperationService::EOperationTypeFormat:
   180     case FmOperationService::EOperationTypeFormat:
   156         {
   181         {
   157             HbMessageBox::information( QString( tr("Format succeed!")) );
   182             HbMessageBox::information( QString( hbTrId("Format succeed!")) );
       
   183             FmOperationFormat *paramFormat = static_cast<FmOperationFormat*>( operationBase );
       
   184             QString title( tr( "Drive name ") );  
       
   185             QString driveName( paramFormat->driverName() );
       
   186             QString volumeName;
       
   187             while( FmDlgUtils::showTextQuery( title, volumeName, false, FmMaxLengthofDriveName ) ){
       
   188                     int err = FmUtils::renameDrive( driveName, volumeName );
       
   189                     if ( err == FmErrNone ){
       
   190                         HbMessageBox::information( hbTrId( "The name has been changed!" ) );
       
   191                         mOperationService->on_operationThread_refreshModel( driveName );
       
   192                         break;
       
   193                     } else if( err == FmErrBadName ) {
       
   194                         HbMessageBox::information( hbTrId( "Illegal characters! Use only letters and numbers." ) );
       
   195                     } else{
       
   196                         HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) );
       
   197                         break;
       
   198                     }                
       
   199                 }
   158             break;
   200             break;
   159         }
   201         }
   160     case FmOperationService::EOperationTypeBackup:
   202     case FmOperationService::EOperationTypeBackup:
   161         {
   203         {
   162             HbMessageBox::information( QString( tr("Backup succeed!")) );
   204             HbMessageBox::information( QString( hbTrId("Backup succeed!")) );
   163             break;
   205             break;
   164         }
   206         }
   165     case FmOperationService::EOperationTypeRestore:
   207     case FmOperationService::EOperationTypeRestore:
   166         {
   208         {
   167             HbMessageBox::information( QString( tr("Restore succeed!")) );
   209             HbMessageBox::information( QString( hbTrId("Restore succeed!")) );
   168             break;
   210             break;
   169         }
   211         }
   170     default:
   212     default:
   171         HbMessageBox::information( QString( tr("Operation finished")) );
   213         HbMessageBox::information( QString( hbTrId("Operation finished")) );
   172 
   214 
   173     }
   215     }
   174 }
   216 }
   175 void FmOperationResultProcesser::onNotifyError( FmOperationBase* operationBase, int error, QString errString )
   217 void FmOperationResultProcesser::onNotifyError( FmOperationBase* operationBase, int error, QString errString )
   176 {
   218 {
   177     Q_UNUSED( errString );
   219     Q_UNUSED( errString );
   178     failAndCloseProgress();
   220     failAndCloseProgress();
   179     switch( error )
   221     switch( error )
   180     {
   222     {
   181     case FmErrAlreadyStarted:
   223         case FmErrAlreadyStarted:
   182         HbMessageBox::information( QString( tr("Operation already started!")) );
   224             HbMessageBox::information( QString( hbTrId("Operation already started!")) );
   183         return;
   225             return;
   184     case FmErrDiskFull:
   226         case FmErrDiskFull:
   185         HbMessageBox::information( QString( tr("Not enough space. Operation cancelled.!")) );
   227             HbMessageBox::information( QString( hbTrId("Not enough space. Operation cancelled.!")) );
   186         return;
   228             return;
   187     case FmErrCopyDestToSubFolderInSrc:
   229         case FmErrCopyDestToSubFolderInSrc:
   188         HbMessageBox::information( QString( tr("Can not copy to sub folder!")) );
   230             HbMessageBox::information( QString( hbTrId("Can not copy to sub folder!")) );
   189         return;
   231             return;
   190     case FmErrMoveDestToSubFolderInSrc:
   232         case FmErrMoveDestToSubFolderInSrc:
   191         HbMessageBox::information( QString( tr("Can not move to sub folder!")) );
   233             HbMessageBox::information( QString( hbTrId("Can not move to sub folder!")) );
   192         return;
   234             return;
   193     }
   235         case FmErrCannotRemove:{
   194 
   236             if( operationBase->operationType() == FmOperationService::EOperationTypeCopy ) {
       
   237                 // when copy a file/dir to same name destination, and delete dest fail, this error will occur
       
   238                 HbMessageBox::information( QString( hbTrId( "Can not copy because %1 can not be deleted!" ).arg( errString ) ) );
       
   239                 return;
       
   240             }
       
   241             else if( operationBase->operationType() == FmOperationService::EOperationTypeMove ) {
       
   242                 // when move a file/dir to same name destination, and delete dest fail, this error will occur
       
   243                 HbMessageBox::information( QString( hbTrId( "Can not move because %1 can not be deleted!" ).arg( errString ) ) );
       
   244                 return;
       
   245             }
       
   246             // when delete file/dir fail, this error will occur
       
   247             HbMessageBox::information( QString( hbTrId( "Can not delete %1!" ).arg( errString ) ) );
       
   248             return; 
       
   249         }      
       
   250         case FmErrRemoveDefaultFolder:{
       
   251             if( operationBase->operationType() == FmOperationService::EOperationTypeMove ) {
       
   252                 // when move a default folder
       
   253                 HbMessageBox::information( QString( hbTrId( "Could not move because the default folder %1 can not be deleted!" ).arg( errString ) ) );
       
   254                 return;
       
   255             }
       
   256             else {
       
   257                // when delete the default folder
       
   258                HbMessageBox::information( QString( hbTrId( "Could not remove the default folder %1 " ).arg( errString ) ) );
       
   259                return;
       
   260             }
       
   261         }
       
   262     }
   195 
   263 
   196     switch( operationBase->operationType() )
   264     switch( operationBase->operationType() )
   197     {
   265     {
   198     case FmOperationService::EOperationTypeFormat:
   266     case FmOperationService::EOperationTypeFormat:
   199         HbMessageBox::information( QString( tr("Format failed!")) );
   267         HbMessageBox::information( QString( hbTrId("Format failed!")) );
   200         break;
   268         break;
   201     default:
   269     default:
   202         HbMessageBox::information( QString( tr("Operation failed")) );
   270         HbMessageBox::information( QString( hbTrId("Operation failed")) );
   203     }
   271     }
   204 
   272 
   205 }
   273 }
   206 
   274 
   207 void FmOperationResultProcesser::onNotifyCanceled( FmOperationBase* operationBase )
   275 void FmOperationResultProcesser::onNotifyCanceled( FmOperationBase* operationBase )
   208 {
   276 {
   209     Q_UNUSED( operationBase );
   277     Q_UNUSED( operationBase );
   210     cancelProgress();
   278     cancelProgress();
   211     HbMessageBox::information( QString( tr("Operation Canceled!") ) );
   279     HbMessageBox::information( QString( hbTrId("Operation Canceled!") ) );
   212 }
   280 }
   213 
   281 
   214 
   282 
   215 void FmOperationResultProcesser::onProgressCancelled()
   283 void FmOperationResultProcesser::onProgressCancelled()
   216 {
   284 {
   225     if( mNote ){
   293     if( mNote ){
   226         mNote->close();
   294         mNote->close();
   227         delete mNote;        
   295         delete mNote;        
   228     }
   296     }
   229     
   297     
   230     mNote = new HbProgressNote( HbProgressNote::WaitNote );
   298     mNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
   231     connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   299     connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   232 //    if( !mNote ) {
   300 //    if( !mNote ) {
   233 //        mNote = new HbProgressNote( HbProgressNote::WaitNote );
   301 //        mNote = new HbProgressDialog( HbProgressDialog::WaitNote );
   234 //        connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   302 //        connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   235 //    } else {
   303 //    } else {
   236 //        mNote->setProgressNoteType( HbProgressNote::WaitNote );
   304 //        mNote->setProgressDialogType( HbProgressDialog::WaitNote );
   237 //    }
   305 //    }
   238     mNote->setText( title );
   306     mNote->setText( title );
   239     if( !cancelable )
   307     if( !cancelable )
   240         mNote->primaryAction()->setDisabled( true );
   308         mNote->primaryAction()->setDisabled( true );
   241     else
   309     else
   251     if( mNote ){
   319     if( mNote ){
   252         mNote->close();
   320         mNote->close();
   253         delete mNote;        
   321         delete mNote;        
   254     }
   322     }
   255     
   323     
   256     mNote = new HbProgressNote( HbProgressNote::ProgressNote );
   324     mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
   257     connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   325     connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   258 //    if( !mNote ) {
   326 //    if( !mNote ) {
   259 //        mNote = new HbProgressNote( HbProgressNote::ProgressNote );
   327 //        mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
   260 //        connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   328 //        connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   261 //    } else {
   329 //    } else {
   262 //        mNote->setProgressNoteType( HbProgressNote::ProgressNote );
   330 //        mNote->setProgressDialogType( HbProgressDialog::ProgressDialog );
   263 //    }
   331 //    }
   264     mNote->setMinimum(0);
   332     mNote->setMinimum(0);
   265     mNote->setMaximum( 65535 );
   333     mNote->setMaximum( 65535 );
   266     mNote->setProgressValue( 0 );
   334     mNote->setProgressValue( 0 );
   267     mNote->setText( title );
   335     mNote->setText( title );
   268     if( !cancelable )
   336     if( !cancelable ){
   269         mNote->primaryAction()->setDisabled( true );
   337         mNote->primaryAction()->setDisabled( true );  
   270     else
   338     }
   271         mNote->primaryAction()->setDisabled( false );
   339     else{
       
   340         mNote->primaryAction()->setDisabled( false );       
       
   341     }
   272     mNote->exec();
   342     mNote->exec();
   273 }
   343 }
   274 
   344 
   275 void FmOperationResultProcesser::showProgress( QString title, bool cancelable, int maxValue )
   345 void FmOperationResultProcesser::showProgress( QString title, bool cancelable, int maxValue )
   276 {
   346 {
   279     if( mNote ){
   349     if( mNote ){
   280         mNote->close();
   350         mNote->close();
   281         delete mNote;        
   351         delete mNote;        
   282     }
   352     }
   283     
   353     
   284     mNote = new HbProgressNote( HbProgressNote::ProgressNote );
   354     mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
   285     connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   355     connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   286 //    if( !mNote ) {
   356 //    if( !mNote ) {
   287 //        mNote = new HbProgressNote( HbProgressNote::ProgressNote );
   357 //        mNote = new HbProgressDialog( HbProgressDialog::ProgressDialog );
   288 //        connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   358 //        connect( mNote, SIGNAL( cancelled() ), this, SLOT(onProgressCancelled() ) );
   289 //    } else {
   359 //    } else {
   290 //        mNote->setProgressNoteType( HbProgressNote::ProgressNote );
   360 //        mNote->setProgressDialogType( HbProgressDialog::ProgressDialog );
   291 //    }
   361 //    }
   292     mNote->setText( title );
   362     mNote->setText( title );
   293 
   363 
   294     mNote->setMinimum(0);
   364     mNote->setMinimum(0);
   295     mNote->setMaximum( maxValue );
   365     mNote->setMaximum( maxValue );
   296 
   366 
   297     mNote->setProgressValue( 0 );
   367     mNote->setProgressValue( 0 );
   298 
   368 
   299     if( !cancelable )
   369     if( !cancelable ){
   300         mNote->primaryAction()->setDisabled( true );
   370         mNote->primaryAction()->setDisabled( true );
   301     else
   371     }
       
   372     else{
   302         mNote->primaryAction()->setDisabled( false );
   373         mNote->primaryAction()->setDisabled( false );
       
   374     }
   303 
   375 
   304     mNote->exec();
   376     mNote->exec();
   305 }
   377 }
   306 
   378 
   307 void FmOperationResultProcesser::setProgress( int value )
   379 void FmOperationResultProcesser::setProgress( int value )