filemanager/src/filemanager/src/operationservice/fmoperationviewdetails.cpp
author hgs
Thu, 05 Aug 2010 11:30:07 +0800
changeset 33 328cf6fbe40c
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
* 
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*     The source file of the operation param of file manager
hgs
parents:
diff changeset
    16
*
hgs
parents:
diff changeset
    17
*/
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#include "fmoperationviewdetails.h"
hgs
parents:
diff changeset
    20
#include "fmdrivedetailstype.h"
hgs
parents:
diff changeset
    21
#include <QtAlgorithms>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
/*
hgs
parents:
diff changeset
    24
 * Constructs one view drive details operation with
hgs
parents:
diff changeset
    25
 * \a parent parent.
hgs
parents:
diff changeset
    26
 * \a driverName the drive name.
hgs
parents:
diff changeset
    27
 */
hgs
parents:
diff changeset
    28
FmOperationDriveDetails::FmOperationDriveDetails( QObject *parent, const QString &driverName ) :
hgs
parents:
diff changeset
    29
        FmOperationBase( parent, FmOperationService::EOperationTypeDriveDetails ),
hgs
parents:
diff changeset
    30
        mDriverName( driverName ), mStop( 0 )
hgs
parents:
diff changeset
    31
{
hgs
parents:
diff changeset
    32
}
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
/*
hgs
parents:
diff changeset
    35
 * Destructs the operation.
hgs
parents:
diff changeset
    36
 */
hgs
parents:
diff changeset
    37
FmOperationDriveDetails::~FmOperationDriveDetails()
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
    qDeleteAll(mDetailsSizeList);
hgs
parents:
diff changeset
    40
}
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
/*
hgs
parents:
diff changeset
    43
 * Returns the drive name.
hgs
parents:
diff changeset
    44
 */
hgs
parents:
diff changeset
    45
QString FmOperationDriveDetails::driverName()
hgs
parents:
diff changeset
    46
{
hgs
parents:
diff changeset
    47
    return mDriverName;
hgs
parents:
diff changeset
    48
}
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
/*
hgs
parents:
diff changeset
    51
 * reimp.
hgs
parents:
diff changeset
    52
 */
hgs
parents:
diff changeset
    53
void FmOperationDriveDetails::start( volatile bool *isStopped )
hgs
parents:
diff changeset
    54
{
hgs
parents:
diff changeset
    55
    mStop = isStopped;
hgs
parents:
diff changeset
    56
    emit notifyWaiting( true );
hgs
parents:
diff changeset
    57
    //FmOperationDriveDetails *operationDriverDetails = static_cast<FmOperationDriveDetails*>( mOperationBase );
hgs
parents:
diff changeset
    58
    int ret = FmDriveDetailsContent::querySizeofContent( driverName(), detailsSizeList(), mStop );
hgs
parents:
diff changeset
    59
    if( ret == FmErrNone ) {       
hgs
parents:
diff changeset
    60
        emit notifyFinish();
hgs
parents:
diff changeset
    61
    } else {
hgs
parents:
diff changeset
    62
        emit notifyError( ret, QString() );
hgs
parents:
diff changeset
    63
    }
hgs
parents:
diff changeset
    64
}
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
/*
hgs
parents:
diff changeset
    67
 * Returns detail items size list.
hgs
parents:
diff changeset
    68
 */
hgs
parents:
diff changeset
    69
QList<FmDriveDetailsSize*> &FmOperationDriveDetails::detailsSizeList()
hgs
parents:
diff changeset
    70
{
hgs
parents:
diff changeset
    71
    return mDetailsSizeList;
hgs
parents:
diff changeset
    72
}
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/*
hgs
parents:
diff changeset
    75
 * Constructs one view folder details operation with
hgs
parents:
diff changeset
    76
 * \a parent parent.
hgs
parents:
diff changeset
    77
 * \a driverName the drive name.
hgs
parents:
diff changeset
    78
 */
hgs
parents:
diff changeset
    79
FmOperationFolderDetails::FmOperationFolderDetails( QObject *parent, const QString &folderPath ) :
hgs
parents:
diff changeset
    80
        FmOperationBase( parent, FmOperationService::EOperationTypeFolderDetails ),
hgs
parents:
diff changeset
    81
        mFolderPath( folderPath ),
hgs
parents:
diff changeset
    82
        mNumofSubFolders( 0 ),
hgs
parents:
diff changeset
    83
        mNumofFiles( 0 ),
hgs
parents:
diff changeset
    84
        mSizeofFolder( 0 )
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
{
hgs
parents:
diff changeset
    87
}
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
/*
hgs
parents:
diff changeset
    90
 * Destructs the operation.
hgs
parents:
diff changeset
    91
 */
hgs
parents:
diff changeset
    92
FmOperationFolderDetails::~FmOperationFolderDetails()
hgs
parents:
diff changeset
    93
{
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
}
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
/*
hgs
parents:
diff changeset
    98
 * Returns the folder path.
hgs
parents:
diff changeset
    99
 */
hgs
parents:
diff changeset
   100
QString FmOperationFolderDetails::folderPath()
hgs
parents:
diff changeset
   101
{
hgs
parents:
diff changeset
   102
    return mFolderPath;
hgs
parents:
diff changeset
   103
}
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
/*
hgs
parents:
diff changeset
   106
 * Returns the number of sub folders.
hgs
parents:
diff changeset
   107
 */
hgs
parents:
diff changeset
   108
int &FmOperationFolderDetails::numofSubFolders()
hgs
parents:
diff changeset
   109
{
hgs
parents:
diff changeset
   110
    return mNumofSubFolders;
hgs
parents:
diff changeset
   111
}
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
/*
hgs
parents:
diff changeset
   114
 * Returns the number of files
hgs
parents:
diff changeset
   115
 */
hgs
parents:
diff changeset
   116
int &FmOperationFolderDetails::numofFiles()
hgs
parents:
diff changeset
   117
{
hgs
parents:
diff changeset
   118
    return mNumofFiles;
hgs
parents:
diff changeset
   119
}
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
/*
hgs
parents:
diff changeset
   122
 * Returns the size of folder.
hgs
parents:
diff changeset
   123
 */
hgs
parents:
diff changeset
   124
quint64 &FmOperationFolderDetails::sizeofFolder()
hgs
parents:
diff changeset
   125
{
hgs
parents:
diff changeset
   126
    return mSizeofFolder;
hgs
parents:
diff changeset
   127
}
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
/*
hgs
parents:
diff changeset
   130
 * Reimp.
hgs
parents:
diff changeset
   131
 */
hgs
parents:
diff changeset
   132
void FmOperationFolderDetails::start( volatile bool *isStopped )
hgs
parents:
diff changeset
   133
{
hgs
parents:
diff changeset
   134
    mStop = isStopped;
hgs
parents:
diff changeset
   135
    emit notifyWaiting( true );   
hgs
parents:
diff changeset
   136
    int ret = FmFolderDetails::getNumofSubfolders( folderPath(), numofSubFolders(), 
hgs
parents:
diff changeset
   137
                                                   numofFiles(), sizeofFolder(), mStop );
hgs
parents:
diff changeset
   138
    if( ret == FmErrNone ) {
hgs
parents:
diff changeset
   139
        emit notifyFinish();
hgs
parents:
diff changeset
   140
    } else {
hgs
parents:
diff changeset
   141
        emit notifyError( ret, QString() );
hgs
parents:
diff changeset
   142
    }    
hgs
parents:
diff changeset
   143
}