--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/inc/fmutils.h Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,211 @@
+/*
+* Copyright (c) 2009 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:
+* Zhiqiang Yang <zhiqiang.yang@nokia.com>
+*
+* Description:
+* The header file of the file manager utilities
+*/
+
+#ifndef FMUTILS_H
+#define FMUTILS_H
+
+#include "fmcommon.h"
+
+#include <QString>
+
+/*!
+ \class FmDriverInfo
+ \brief The class FmDriverInfo provide drive info data
+ */
+class FmDriverInfo
+{
+public:
+ /*!
+ Used to get drive status for convenience.
+ /sa DriveType is used to get drive type.
+ */
+ enum driveState
+ {
+ EDriveNotPresent = 0x1, // true when Drive have not inserted, for example, MMC Card
+ EDriveAvailable = 0x2, // false when drive is locked or corrupted, for example MMC Card
+ EDriveLocked = 0x4,
+ EDriveCorrupted = 0x8,
+ EDriveWriteProtected = 0x10,
+ EDriveRemovable = 0x20,
+ EDriveRom = 0x40,
+ EDriveFormattable = 0x80,
+ EDriveFormatted = 0x100,
+ EDriveLockable = 0x200,
+ EDrivePasswordProtected = 0x400,
+ EDriveBackupped = 0x800,
+ EDriveConnected = 0x1000,
+ EDriveEjectable = 0x2000,
+ EDriveInUse = 0x4000,
+ EDriveMassStorage = 0x8000,
+ EDriveRam = 0x10000,
+ EDriveUsbMemory = 0x20000,
+ EDriveRemote = 0x40000,
+ };
+
+ /*!
+ Used to get drive type for convenience.
+ */
+ enum DriveType
+ {
+ EDriveTypeNotExist = -1, // specified drive is not existed in device
+ EDriveTypeRom,
+ EDriveTypeRam,
+ EDriveTypePhoneMemory,
+ EDriveTypeMassStorage,
+ EDriveTypeMemoryCard,
+ EDriveTypeUsbMemory,
+ EDriveTypeRemote,
+ };
+
+ Q_DECLARE_FLAGS( DriveState, driveState )
+
+ FmDriverInfo( quint64 s, quint64 f, const QString &n, const QString &vN, const quint32 driveState ) :
+ mSize( s ), mFreeSize( f ), mName( n ), mVolumeName( vN ), mDriveState( driveState ) {}
+ FmDriverInfo( const FmDriverInfo &other )
+ {
+ *this = other;
+ }
+
+ FmDriverInfo &operator= ( const FmDriverInfo &rhs )
+ {
+ this->mSize = rhs.mSize;
+ this->mFreeSize = rhs.mFreeSize;
+ this->mName = rhs.mName;
+ this->mVolumeName = rhs.mVolumeName;
+ this->mDriveState = rhs.mDriveState;
+ return *this;
+ }
+
+ /*!
+ Total size for drive
+ */
+ quint64 size() const { return mSize; }
+
+ /*!
+ Free size for drive
+ */
+ quint64 freeSize() const { return mFreeSize; }
+
+ /*!
+ path for drive
+ */
+ QString name() const { return mName; }
+
+ /*!
+ volume for drive
+ */
+ QString volumeName() const { return mVolumeName; }
+
+ /*!
+ status for drive
+ */
+ DriveState driveState() const { return mDriveState; }
+
+ /*!
+ drive type
+ */
+ DriveType driveType();
+
+private:
+ quint64 mSize;
+ quint64 mFreeSize;
+ QString mName;
+ QString mVolumeName;
+ DriveState mDriveState;
+ DriveType mDriveType;
+};
+Q_DECLARE_OPERATORS_FOR_FLAGS( FmDriverInfo::DriveState )
+
+/*!
+ \class FmUtils
+ \brief The class FmUtils provide util functions
+ This class is implemented by three parts:
+ fmutils.cpp for Qt Based functions
+ fmutils_s60.cpp is symbian implement version for platform based functions
+ fmutils_win.cpp is win32 implement version for platform based functions( a simple wrapper )
+ */
+class FmUtils
+{
+public:
+ //////////////////////////////////////////////////////////////////
+ // <QtBasedFunctions>
+ static QString getDriveNameFromPath( const QString &path );
+ static QString getDriveLetterFromPath( const QString &path );
+ static QString formatStorageSize( quint64 size );
+ static bool isDrive( const QString &path );
+ static QString formatPath( const QString &path );
+ static QString fillPathWithSplash( const QString &filePath );
+ static QString removePathSplash( const QString &filePath );
+ static void getDriveList( QStringList &driveList, bool isHideUnAvailableDrive );
+ static QString fillDriveVolume( QString driveName, bool isFillWithDefaultVolume );
+ static QString getDefaultVolumeName( const QString &driveName );
+ static QString getVolumeNameWithDefaultNameIfNull( const QString &diskName, bool &defaultName );
+ static bool isPathEqual( const QString &pathFst, const QString &pathLast );
+ static bool checkFolderFileName( const QString& name );
+ static bool checkNewFolderOrFile( const QString& fileName, const QString &path, QString &errString );
+ static bool isSubLevelPath( const QString &src, const QString &dest );
+ // </QtBasedFunctions>
+ //////////////////////////////////////////////////////////////////
+
+
+ //////////////////////////////////////////////////////////////////
+ // <platformBasedFunctions>
+ static FmDriverInfo queryDriverInfo( const QString &driverName );
+
+ // password related functions
+ static int removeDrivePwd( const QString &driverName, const QString &Pwd );
+ static int unlockDrive( const QString &driverName, const QString &Pwd );
+ static int checkDrivePwd( const QString &driverName, const QString &pwd);
+ static int setDrivePwd( const QString &driverName, const QString &oldPwd, const QString &newPwd);
+ static void emptyPwd( QString &pwd );
+
+ // external drive related functions
+ static int renameDrive( const QString &driverName, const QString &newVolumeName);
+ static int ejectDrive( const QString &driverName );
+
+ // drive security related functions
+ static bool checkDriveAccessFilter( const QString &driveName );
+ static QString checkDriveToFolderFilter( const QString &path );
+ static QString checkFolderToDriveFilter( const QString &path );
+ static int isPathAccessabel( const QString &path );
+ static bool isDriveAvailable( const QString &path );
+
+ // system default folder related functions
+ static bool isDefaultFolder( const QString &folderPath );
+ static void createDefaultFolders( const QString &driverName );
+ static QString localize( const QString &path );
+
+ // copy move related functions
+ static int setFileAttributes( const QString &srcFile, const QString &desFile );
+ static bool hasEnoughSpace( const QString &targetDrive, qint64 size );
+ static int moveInsideDrive( const QString &source, const QString &target );
+
+ // other fucntions
+ static int launchFile( const QString &filePath );
+ static void sendFiles( QStringList &filePathList );
+ static QString getBurConfigPath( QString appPath );
+ static QString getFileType( const QString &filePath );
+ static bool isDriveC( const QString &driverName );
+ static int getMaxFileNameLength();
+ static bool checkMaxPathLength( const QString& path );
+ // </platformBasedFunctions>
+ //////////////////////////////////////////////////////////////////
+};
+
+#endif
+