# HG changeset patch # User William Roberts # Date 1279812656 -3600 # Node ID e28107efca85c084f91640d4c0e1a9f24375e97e # Parent b9588eb601eb247bd30a0397040199f79ab53a18# Parent 6e96d2143d46be7a2591ce8a83a225bbb9db5ba7 Catchup to latest Symbian^4 diff -r b9588eb601eb -r e28107efca85 filemanager/filemanager.pro diff -r b9588eb601eb -r e28107efca85 filemanager/filemanager_plat/inc/fmfiledialog.h --- a/filemanager/filemanager_plat/inc/fmfiledialog.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/filemanager_plat/inc/fmfiledialog.h Thu Jul 22 16:30:56 2010 +0100 @@ -105,7 +105,12 @@ ~FmFileDialog(); bool exec(); + HbAction *primaryAction() const; + void setPrimaryAction( HbAction *action ); + HbAction *secondaryAction() const; + void setSecondaryAction( HbAction *action ); + FmFileDialogPrivate *d_ptr; Q_DISABLE_COPY( FmFileDialog) diff -r b9588eb601eb -r e28107efca85 filemanager/rom/filemngr.iby --- a/filemanager/rom/filemngr.iby Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/rom/filemngr.iby Thu Jul 22 16:30:56 2010 +0100 @@ -23,8 +23,8 @@ #define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc Private\10003a3f\import\apps\ ## NAME ## _reg.rsc file=ABI_DIR\BUILD_DIR\filemngr.exe SHARED_LIB_DIR\filemngr.exe +data = ZRESOURCE\apps\filemngr.mif APP_RESOURCE_DIR\filemngr.mif HB_UPGRADABLE_APP_REG_RSC(filemngr) -S60_APP_RESOURCE(filemngr) file=ABI_DIR\BUILD_DIR\fmbkupengine.dll SHARED_LIB_DIR\fmbkupengine.dll diff -r b9588eb601eb -r e28107efca85 filemanager/rom/rom.pri --- a/filemanager/rom/rom.pri Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/rom/rom.pri Thu Jul 22 16:30:56 2010 +0100 @@ -18,12 +18,7 @@ symbian { FILEMNGR_IBY_DIR = $$section(PWD, ":", 1) - exists(/epoc32/include/platform_paths.hrh) { - BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " - } else { - BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " - } - + BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include" BLD_INF_RULES.prj_exports += "$$FILEMNGR_IBY_DIR/filemngr.iby CORE_APP_LAYER_IBY_EXPORT_PATH(filemngr.iby)" BLD_INF_RULES.prj_exports += "$$FILEMNGR_IBY_DIR/filemngr_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(filemngr_resources.iby)" } diff -r b9588eb601eb -r e28107efca85 filemanager/src/bwins/fmbkupenginewrapperu.def --- a/filemanager/src/bwins/fmbkupenginewrapperu.def Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -EXPORTS - ??0FmRestoreSettings@@QAE@AAVFmBkupEngine@@@Z @ 1 NONAME ; FmRestoreSettings::FmRestoreSettings(class FmBkupEngine &) - ?tr@FmBkupEngine@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString FmBkupEngine::tr(char const *, char const *) - ?getStaticMetaObject@FmBkupEngine@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & FmBkupEngine::getStaticMetaObject(void) - ?trUtf8@FmBkupEngine@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString FmBkupEngine::trUtf8(char const *, char const *, int) - ?error@FmBkupEngine@@QBEHXZ @ 5 NONAME ; int FmBkupEngine::error(void) const - ?availableTargetDrive@FmBackupSettings@@QBE?AVQString@@XZ @ 6 NONAME ; class QString FmBackupSettings::availableTargetDrive(void) const - ?GetSelectionL@FmRestoreSettings@@QBEXAAV?$QList@VFmRestoreInfo@@@@@Z @ 7 NONAME ; void FmRestoreSettings::GetSelectionL(class QList &) const - ?content@FmBackupSettings@@QBEIXZ @ 8 NONAME ; unsigned int FmBackupSettings::content(void) const - ?getBackupDriveList@FmBkupEngine@@QAEXAAVQStringList@@@Z @ 9 NONAME ; void FmBkupEngine::getBackupDriveList(class QStringList &) - ?resetAndDestoryRestoreEntry@FmRestoreSettings@@AAEXXZ @ 10 NONAME ; void FmRestoreSettings::resetAndDestoryRestoreEntry(void) - ?targetDriveToString@FmBackupSettings@@QAE?AVQString@@ABV2@@Z @ 11 NONAME ; class QString FmBackupSettings::targetDriveToString(class QString const &) - ?setScheduling@FmBackupSettings@@QAEXW4TFileManagerBackupSchedule@1@@Z @ 12 NONAME ; void FmBackupSettings::setScheduling(enum FmBackupSettings::TFileManagerBackupSchedule) - ?notifyFinish@FmBkupEngine@@IAEXH@Z @ 13 NONAME ; void FmBkupEngine::notifyFinish(int) - ?qt_metacast@FmBkupEngine@@UAEPAXPBD@Z @ 14 NONAME ; void * FmBkupEngine::qt_metacast(char const *) - ??0FmBackupSettings@@QAE@PAVFmBkupEngine@@@Z @ 15 NONAME ; FmBackupSettings::FmBackupSettings(class FmBkupEngine *) - ?SetSelection@FmRestoreSettings@@QAEXAB_K@Z @ 16 NONAME ; void FmRestoreSettings::SetSelection(unsigned long long const &) - ?startBackup@FmBkupEngine@@QAE_NV?$QList@PAVFmBkupDrivesAndOperation@@@@V?$QList@PAVFmBkupBackupCategory@@@@VQString@@I@Z @ 17 NONAME ; bool FmBkupEngine::startBackup(class QList, class QList, class QString, unsigned int) - ?notifyMemoryLow@FmBkupEngine@@IAEXHAAH@Z @ 18 NONAME ; void FmBkupEngine::notifyMemoryLow(int, int &) - ?CreateEntry@FmRestoreSettings@@AAEPAVFmRestoreEntry@@ABVFmRestoreInfo@@@Z @ 19 NONAME ; class FmRestoreEntry * FmRestoreSettings::CreateEntry(class FmRestoreInfo const &) - ?startRestore@FmBkupEngine@@QAE_NV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 20 NONAME ; bool FmBkupEngine::startRestore(class QList) - ?resetAndDestoryBackupEntry@FmBackupSettings@@AAEXXZ @ 21 NONAME ; void FmBackupSettings::resetAndDestoryBackupEntry(void) - ?weekdayToString@FmBackupSettings@@SA?AVQString@@W4TFileManagerBackupWeekday@1@@Z @ 22 NONAME ; class QString FmBackupSettings::weekdayToString(enum FmBackupSettings::TFileManagerBackupWeekday) - ?tr@FmBkupEngine@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString FmBkupEngine::tr(char const *, char const *, int) - ?contentToString@FmBackupSettings@@SA?AVQString@@I@Z @ 24 NONAME ; class QString FmBackupSettings::contentToString(unsigned int) - ?RestoreSettingsL@FmBkupEngine@@QAEPAVFmRestoreSettings@@XZ @ 25 NONAME ; class FmRestoreSettings * FmBkupEngine::RestoreSettingsL(void) - ?createBackupDateEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 26 NONAME ; class FmBackupEntry * FmBackupSettings::createBackupDateEntry(void) - ?GetRestoreInfoArray@FmBkupEngine@@QAEXAAV?$QList@PAVFmBkupDrivesAndOperation@@@@AAV?$QList@VFmRestoreInfo@@@@ABVQString@@@Z @ 27 NONAME ; void FmBkupEngine::GetRestoreInfoArray(class QList &, class QList &, class QString const &) - ?time@FmBackupSettings@@QBEABVQTime@@XZ @ 28 NONAME ; class QTime const & FmBackupSettings::time(void) const - ?createWeekdayEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 29 NONAME ; class FmBackupEntry * FmBackupSettings::createWeekdayEntry(void) - ?cancelBackup@FmBkupEngine@@QAEXXZ @ 30 NONAME ; void FmBkupEngine::cancelBackup(void) - ?notifyUpdate@FmBkupEngine@@IAEXH@Z @ 31 NONAME ; void FmBkupEngine::notifyUpdate(int) - ?save@FmBackupSettings@@QAEXXZ @ 32 NONAME ; void FmBackupSettings::save(void) - ??_EFmBkupEngine@@UAE@I@Z @ 33 NONAME ; FmBkupEngine::~FmBkupEngine(unsigned int) - ?restoreEntryList@FmRestoreSettings@@QAE?AV?$QList@PAVFmRestoreEntry@@@@XZ @ 34 NONAME ; class QList FmRestoreSettings::restoreEntryList(void) - ?createTimeEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 35 NONAME ; class FmBackupEntry * FmBackupSettings::createTimeEntry(void) - ?weekday@FmBackupSettings@@QBE?AW4TFileManagerBackupWeekday@1@XZ @ 36 NONAME ; enum FmBackupSettings::TFileManagerBackupWeekday FmBackupSettings::weekday(void) const - ?deleteBackup@FmBkupEngine@@QAEHV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 37 NONAME ; int FmBkupEngine::deleteBackup(class QList) - ??1FmBackupSettings@@QAE@XZ @ 38 NONAME ; FmBackupSettings::~FmBackupSettings(void) - ?setTime@FmBackupSettings@@QAEXABVQTime@@@Z @ 39 NONAME ; void FmBackupSettings::setTime(class QTime const &) - ?backupEntryList@FmBackupSettings@@QAE?AV?$QList@PAVFmBackupEntry@@@@XZ @ 40 NONAME ; class QList FmBackupSettings::backupEntryList(void) - ?contentsSelected@FmBackupSettings@@ABEHXZ @ 41 NONAME ; int FmBackupSettings::contentsSelected(void) const - ?refreshList@FmBackupSettings@@AAEXXZ @ 42 NONAME ; void FmBackupSettings::refreshList(void) - ?trUtf8@FmBkupEngine@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString FmBkupEngine::trUtf8(char const *, char const *) - ?CreateEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@ABVQString@@0W4TSettingType@2@@Z @ 44 NONAME ; class FmBackupEntry * FmBackupSettings::CreateEntry(class QString const &, class QString const &, enum FmBackupEntry::TSettingType) - ?targetDrive@FmBackupSettings@@QBE?AVQString@@XZ @ 45 NONAME ; class QString FmBackupSettings::targetDrive(void) const - ??0FmBkupEngine@@QAE@PAVQObject@@@Z @ 46 NONAME ; FmBkupEngine::FmBkupEngine(class QObject *) - ?notifyPreparing@FmBkupEngine@@IAEX_N@Z @ 47 NONAME ; void FmBkupEngine::notifyPreparing(bool) - ?load@FmRestoreSettings@@QAEXV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 48 NONAME ; void FmRestoreSettings::load(class QList) - ?setWeekday@FmBackupSettings@@QAEXW4TFileManagerBackupWeekday@1@@Z @ 49 NONAME ; void FmBackupSettings::setWeekday(enum FmBackupSettings::TFileManagerBackupWeekday) - ??1FmRestoreSettings@@QAE@XZ @ 50 NONAME ; FmRestoreSettings::~FmRestoreSettings(void) - ?createContentsEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 51 NONAME ; class FmBackupEntry * FmBackupSettings::createContentsEntry(void) - ?notifyBackupFilesExist@FmBkupEngine@@IAEXAA_N@Z @ 52 NONAME ; void FmBkupEngine::notifyBackupFilesExist(bool &) - ?updateBackupDate@FmBackupSettings@@QAEXXZ @ 53 NONAME ; void FmBackupSettings::updateBackupDate(void) - ?createSchedulingEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 54 NONAME ; class FmBackupEntry * FmBackupSettings::createSchedulingEntry(void) - ?metaObject@FmBkupEngine@@UBEPBUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const * FmBkupEngine::metaObject(void) const - ?createTargetDriveEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 56 NONAME ; class FmBackupEntry * FmBackupSettings::createTargetDriveEntry(void) - ?load@FmBackupSettings@@QAEXXZ @ 57 NONAME ; void FmBackupSettings::load(void) - ??1FmBkupEngine@@UAE@XZ @ 58 NONAME ; FmBkupEngine::~FmBkupEngine(void) - ?BackupSettingsL@FmBkupEngine@@QAEPAVFmBackupSettings@@XZ @ 59 NONAME ; class FmBackupSettings * FmBkupEngine::BackupSettingsL(void) - ?setContent@FmBackupSettings@@QAEXI@Z @ 60 NONAME ; void FmBackupSettings::setContent(unsigned int) - ?schedulingToString@FmBackupSettings@@QAE?AVQString@@W4TFileManagerBackupSchedule@1@@Z @ 61 NONAME ; class QString FmBackupSettings::schedulingToString(enum FmBackupSettings::TFileManagerBackupSchedule) - ?setTargetDrive@FmBackupSettings@@QAEXABVQString@@@Z @ 62 NONAME ; void FmBackupSettings::setTargetDrive(class QString const &) - ?staticMetaObject@FmBkupEngine@@2UQMetaObject@@B @ 63 NONAME ; struct QMetaObject const FmBkupEngine::staticMetaObject - ?refreshList@FmRestoreSettings@@AAEXAAV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 64 NONAME ; void FmRestoreSettings::refreshList(class QList &) - ?notifyStart@FmBkupEngine@@IAEX_NH@Z @ 65 NONAME ; void FmBkupEngine::notifyStart(bool, int) - ?scheduling@FmBackupSettings@@QBE?AW4TFileManagerBackupSchedule@1@XZ @ 66 NONAME ; enum FmBackupSettings::TFileManagerBackupSchedule FmBackupSettings::scheduling(void) const - ?qt_metacall@FmBkupEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 67 NONAME ; int FmBkupEngine::qt_metacall(enum QMetaObject::Call, int, void * *) - diff -r b9588eb601eb -r e28107efca85 filemanager/src/bwins/fmfiledialogu.def --- a/filemanager/src/bwins/fmfiledialogu.def Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -EXPORTS - ??_EFmFileDialog@@UAE@I@Z @ 1 NONAME ; FmFileDialog::~FmFileDialog(unsigned int) - ?qt_metacall@FmFileDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2 NONAME ; int FmFileDialog::qt_metacall(enum QMetaObject::Call, int, void * *) - ??1FmFileDialog@@EAE@XZ @ 3 NONAME ; FmFileDialog::~FmFileDialog(void) - ?tr@FmFileDialog@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString FmFileDialog::tr(char const *, char const *, int) - ?getOpenFileName@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 5 NONAME ; class QString FmFileDialog::getOpenFileName(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags) - ??0FmFileDialog@@AAE@PAVQGraphicsItem@@@Z @ 6 NONAME ; FmFileDialog::FmFileDialog(class QGraphicsItem *) - ?tr@FmFileDialog@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString FmFileDialog::tr(char const *, char const *) - ?getStaticMetaObject@FmFileDialog@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & FmFileDialog::getStaticMetaObject(void) - ?d_func@FmFileDialog@@ABEPBVFmFileDialogPrivate@@XZ @ 9 NONAME ; class FmFileDialogPrivate const * FmFileDialog::d_func(void) const - ?exec@FmFileDialog@@AAE_NXZ @ 10 NONAME ; bool FmFileDialog::exec(void) - ?trUtf8@FmFileDialog@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString FmFileDialog::trUtf8(char const *, char const *) - ?trUtf8@FmFileDialog@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString FmFileDialog::trUtf8(char const *, char const *, int) - ?metaObject@FmFileDialog@@UBEPBUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const * FmFileDialog::metaObject(void) const - ?staticMetaObject@FmFileDialog@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const FmFileDialog::staticMetaObject - ?getSaveFileName@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 15 NONAME ; class QString FmFileDialog::getSaveFileName(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags) - ?d_func@FmFileDialog@@AAEPAVFmFileDialogPrivate@@XZ @ 16 NONAME ; class FmFileDialogPrivate * FmFileDialog::d_func(void) - ?getExistingDirectory@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 17 NONAME ; class QString FmFileDialog::getExistingDirectory(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags) - ?qt_metacast@FmFileDialog@@UAEPAXPBD@Z @ 18 NONAME ; void * FmFileDialog::qt_metacast(char const *) - ?dialogClosed@FmFileDialog@@AAEXPAVHbAction@@@Z @ 19 NONAME ; void FmFileDialog::dialogClosed(class HbAction *) - diff -r b9588eb601eb -r e28107efca85 filemanager/src/eabi/fmbkupenginewrapperu.def --- a/filemanager/src/eabi/fmbkupenginewrapperu.def Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -EXPORTS - _ZN12FmBkupEngine11notifyStartEbi @ 1 NONAME - _ZN12FmBkupEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME - _ZN12FmBkupEngine11qt_metacastEPKc @ 3 NONAME - _ZN12FmBkupEngine11startBackupE5QListIP24FmBkupDrivesAndOperationES0_IP20FmBkupBackupCategoryE7QStringj @ 4 NONAME - _ZN12FmBkupEngine12cancelBackupEv @ 5 NONAME - _ZN12FmBkupEngine12deleteBackupE5QListIP24FmBkupDrivesAndOperationE @ 6 NONAME - _ZN12FmBkupEngine12notifyFinishEi @ 7 NONAME - _ZN12FmBkupEngine12notifyUpdateEi @ 8 NONAME - _ZN12FmBkupEngine12startRestoreE5QListIP24FmBkupDrivesAndOperationE @ 9 NONAME - _ZN12FmBkupEngine15BackupSettingsLEv @ 10 NONAME - _ZN12FmBkupEngine15notifyMemoryLowEiRi @ 11 NONAME - _ZN12FmBkupEngine15notifyPreparingEb @ 12 NONAME - _ZN12FmBkupEngine16RestoreSettingsLEv @ 13 NONAME - _ZN12FmBkupEngine16staticMetaObjectE @ 14 NONAME DATA 16 - _ZN12FmBkupEngine18getBackupDriveListER11QStringList @ 15 NONAME - _ZN12FmBkupEngine19GetRestoreInfoArrayER5QListIP24FmBkupDrivesAndOperationERS0_I13FmRestoreInfoERK7QString @ 16 NONAME - _ZN12FmBkupEngine19getStaticMetaObjectEv @ 17 NONAME - _ZN12FmBkupEngine22notifyBackupFilesExistERb @ 18 NONAME - _ZN12FmBkupEngineC1EP7QObject @ 19 NONAME - _ZN12FmBkupEngineC2EP7QObject @ 20 NONAME - _ZN12FmBkupEngineD0Ev @ 21 NONAME - _ZN12FmBkupEngineD1Ev @ 22 NONAME - _ZN12FmBkupEngineD2Ev @ 23 NONAME - _ZN16FmBackupSettings10setContentEj @ 24 NONAME - _ZN16FmBackupSettings10setWeekdayENS_25TFileManagerBackupWeekdayE @ 25 NONAME - _ZN16FmBackupSettings11CreateEntryERK7QStringS2_N13FmBackupEntry12TSettingTypeE @ 26 NONAME - _ZN16FmBackupSettings11refreshListEv @ 27 NONAME - _ZN16FmBackupSettings13setSchedulingENS_26TFileManagerBackupScheduleE @ 28 NONAME - _ZN16FmBackupSettings14setTargetDriveERK7QString @ 29 NONAME - _ZN16FmBackupSettings15backupEntryListEv @ 30 NONAME - _ZN16FmBackupSettings15contentToStringEj @ 31 NONAME - _ZN16FmBackupSettings15createTimeEntryEv @ 32 NONAME - _ZN16FmBackupSettings15weekdayToStringENS_25TFileManagerBackupWeekdayE @ 33 NONAME - _ZN16FmBackupSettings16updateBackupDateEv @ 34 NONAME - _ZN16FmBackupSettings18createWeekdayEntryEv @ 35 NONAME - _ZN16FmBackupSettings18schedulingToStringENS_26TFileManagerBackupScheduleE @ 36 NONAME - _ZN16FmBackupSettings19createContentsEntryEv @ 37 NONAME - _ZN16FmBackupSettings19targetDriveToStringERK7QString @ 38 NONAME - _ZN16FmBackupSettings21createBackupDateEntryEv @ 39 NONAME - _ZN16FmBackupSettings21createSchedulingEntryEv @ 40 NONAME - _ZN16FmBackupSettings22createTargetDriveEntryEv @ 41 NONAME - _ZN16FmBackupSettings26resetAndDestoryBackupEntryEv @ 42 NONAME - _ZN16FmBackupSettings4loadEv @ 43 NONAME - _ZN16FmBackupSettings4saveEv @ 44 NONAME - _ZN16FmBackupSettings7setTimeERK5QTime @ 45 NONAME - _ZN16FmBackupSettingsC1EP12FmBkupEngine @ 46 NONAME - _ZN16FmBackupSettingsC2EP12FmBkupEngine @ 47 NONAME - _ZN16FmBackupSettingsD1Ev @ 48 NONAME - _ZN16FmBackupSettingsD2Ev @ 49 NONAME - _ZN17FmRestoreSettings11CreateEntryERK13FmRestoreInfo @ 50 NONAME - _ZN17FmRestoreSettings11refreshListER5QListIP24FmBkupDrivesAndOperationE @ 51 NONAME - _ZN17FmRestoreSettings12SetSelectionERKy @ 52 NONAME - _ZN17FmRestoreSettings16restoreEntryListEv @ 53 NONAME - _ZN17FmRestoreSettings27resetAndDestoryRestoreEntryEv @ 54 NONAME - _ZN17FmRestoreSettings4loadE5QListIP24FmBkupDrivesAndOperationE @ 55 NONAME - _ZN17FmRestoreSettingsC1ER12FmBkupEngine @ 56 NONAME - _ZN17FmRestoreSettingsC2ER12FmBkupEngine @ 57 NONAME - _ZN17FmRestoreSettingsD1Ev @ 58 NONAME - _ZN17FmRestoreSettingsD2Ev @ 59 NONAME - _ZNK12FmBkupEngine10metaObjectEv @ 60 NONAME - _ZNK12FmBkupEngine5errorEv @ 61 NONAME - _ZNK16FmBackupSettings10schedulingEv @ 62 NONAME - _ZNK16FmBackupSettings11targetDriveEv @ 63 NONAME - _ZNK16FmBackupSettings16contentsSelectedEv @ 64 NONAME - _ZNK16FmBackupSettings20availableTargetDriveEv @ 65 NONAME - _ZNK16FmBackupSettings4timeEv @ 66 NONAME - _ZNK16FmBackupSettings7contentEv @ 67 NONAME - _ZNK16FmBackupSettings7weekdayEv @ 68 NONAME - _ZNK17FmRestoreSettings13GetSelectionLER5QListI13FmRestoreInfoE @ 69 NONAME - _ZTI12FmBkupEngine @ 70 NONAME - _ZTV12FmBkupEngine @ 71 NONAME - diff -r b9588eb601eb -r e28107efca85 filemanager/src/eabi/fmfiledialogu.def --- a/filemanager/src/eabi/fmfiledialogu.def Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -EXPORTS - _ZN12FmFileDialog11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME - _ZN12FmFileDialog11qt_metacastEPKc @ 2 NONAME - _ZN12FmFileDialog15getOpenFileNameEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 3 NONAME - _ZN12FmFileDialog15getSaveFileNameEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 4 NONAME - _ZN12FmFileDialog16staticMetaObjectE @ 5 NONAME DATA 16 - _ZN12FmFileDialog19getStaticMetaObjectEv @ 6 NONAME - _ZN12FmFileDialog20getExistingDirectoryEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 7 NONAME - _ZN12FmFileDialog4execEv @ 8 NONAME - _ZN12FmFileDialogC1EP13QGraphicsItem @ 9 NONAME - _ZN12FmFileDialogC2EP13QGraphicsItem @ 10 NONAME - _ZN12FmFileDialogD0Ev @ 11 NONAME - _ZN12FmFileDialogD1Ev @ 12 NONAME - _ZN12FmFileDialogD2Ev @ 13 NONAME - _ZNK12FmFileDialog10metaObjectEv @ 14 NONAME - _ZTI12FmFileDialog @ 15 NONAME - _ZTV12FmFileDialog @ 16 NONAME - _ZThn16_N12FmFileDialogD0Ev @ 17 NONAME - _ZThn16_N12FmFileDialogD1Ev @ 18 NONAME - _ZThn8_N12FmFileDialogD0Ev @ 19 NONAME - _ZThn8_N12FmFileDialogD1Ev @ 20 NONAME - _ZN12FmFileDialog12dialogClosedEP8HbAction @ 21 NONAME - diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/burconfig.xml --- a/filemanager/src/filemanager/burconfig.xml Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/burconfig.xml Thu Jul 22 16:30:56 2010 +0100 @@ -51,6 +51,8 @@ 0x1000484b 0x100058db 0x100058eb + 0x2001FE79 + 0x2002A542 0x10003a73 0x101f4cce 0x10003a5b @@ -73,6 +75,8 @@ 0x1000484b 0x100058db 0x100058eb + 0x2001FE79 + 0x2002A542 @@ -115,7 +119,7 @@ 0x2002bcc0 0x20029f80 0x1028246F - 0x10282475 + 0x200211DC 0x102033E6 diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/filemanager.pri --- a/filemanager/src/filemanager/filemanager.pri Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/filemanager.pri Thu Jul 22 16:30:56 2010 +0100 @@ -52,14 +52,14 @@ src/components/fmcombinedquery.h \ src/components/fmdlgutils.h \ src/components/fmtimequery.h \ - src/components/fmdatalistmodel.h \ src/components/fmsingletextquery.h \ src/components/fmmultitextquery.h \ src/components/fmviewdetailsdialog.h \ src/components/fmviewdetailsitem.h \ src/components/fmdrivedetailstype.h \ src/components/fmmessagebox.h \ - src/components/fmdialog.h + src/components/fmdialog.h \ + src/components/fmdrivequery.h SOURCES += src/main.cpp \ src/fmdriverlistwidget.cpp \ @@ -94,14 +94,14 @@ src/components/fmcombinedquery.cpp \ src/components/fmdlgutils.cpp \ src/components/fmtimequery.cpp \ - src/components/fmdatalistmodel.cpp \ src/components/fmsingletextquery.cpp \ src/components/fmmultitextquery.cpp \ src/components/fmviewdetailsdialog.cpp \ src/components/fmviewdetailsitem.cpp \ src/components/fmdrivedetailstype.cpp \ src/components/fmmessagebox.cpp \ - src/components/fmdialog.cpp + src/components/fmdialog.cpp \ + src/components/fmdrivequery.cpp win32 { SOURCES += src/operationservice/fmoperationformat_win.cpp diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/filemanager.pro --- a/filemanager/src/filemanager/filemanager.pro Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/filemanager.pro Thu Jul 22 16:30:56 2010 +0100 @@ -18,6 +18,7 @@ CONFIG += hb TEMPLATE = app TARGET = filemngr +ICON = resources/qtg_large_filemgr.svg RESOURCES += filemanager.qrc INCLUDEPATH += ../fmbkupenginewrapper/inc # remove this path when export plat header to app layer path @@ -32,7 +33,7 @@ LIBS += -lfmfiledialog symbian { - + SKINICON = qtg_large_filemgr LIBS += -lplatformenv \ -lapmime \ -lxqservice \ diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/resources/qtg_large_filemgr.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/resources/qtg_large_filemgr.svg Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -25,8 +25,6 @@ #include #include -#include - FmBackupConfigLoader::FmBackupConfigLoader(void) { diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -26,8 +26,6 @@ #include "fmcommon.h" #include "fmdlgutils.h" -#include - FmBackupRestoreHandler::FmBackupRestoreHandler( QObject *parent ) : QObject( parent ), mBackupConfigLoader( 0 ) { mBkupEngine = new FmBkupEngine( this ); @@ -38,7 +36,7 @@ connect( mBkupEngine, SIGNAL( notifyStart( bool, int) ), this, SLOT( onNotifyStart( bool, int ) ), Qt::QueuedConnection ); connect( mBkupEngine, SIGNAL( notifyUpdate(int) ), this, SLOT( onNotifyUpdate(int) ), Qt::QueuedConnection ); connect( mBkupEngine, SIGNAL( notifyFinish(int) ), - this, SLOT( onNotifyFinish(int) ), Qt::QueuedConnection ); + this, SLOT( onNotifyFinish(int) ), Qt::DirectConnection ); connect( mBkupEngine, SIGNAL( notifyMemoryLow(int, int& ) ), this, SLOT( onNotifyMemoryLow(int, int&) ) ); connect( mBkupEngine, SIGNAL( notifyBackupFilesExist( bool& )), this, SLOT( onNotifyBackupFilesExist( bool& ))); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupview.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmbackupview.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackupview.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -20,7 +20,7 @@ #include "fmbackupwidget.h" #include "fmviewmanager.h" #include "fmoperationbase.h" - +#include "fmdlgutils.h" #include @@ -28,12 +28,10 @@ #include #include #include -#include - FmBackupView::FmBackupView() : FmViewBase( EBackupView ) { - setTitle( tr( "Backup" ) ); + setTitle( hbTrId( "Backup" ) ); initToolBar(); initMainWidget(); @@ -97,19 +95,19 @@ case FmErrNone: break; case FmErrWrongParam: - HbMessageBox::information( QString( hbTrId("Operation canceled with wrong param!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation canceled with wrong param!") ) ); break; case FmErrAlreadyStarted: - HbMessageBox::information( QString( hbTrId("Operation canceled because already started!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation canceled because already started!") ) ); break; case FmErrPathNotFound: - HbMessageBox::information( QString( hbTrId("Operation canceled because can not find target path or drive is not available!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation canceled because can not find target path or drive is not available!") ) ); break; case FmErrAlreadyExists: - HbMessageBox::information( QString( hbTrId("backup canceled") ) ); + FmDlgUtils::information( QString( hbTrId("backup canceled") ) ); break; default: - HbMessageBox::information( QString( hbTrId("backup failed") ) ); + FmDlgUtils::information( QString( hbTrId("backup failed") ) ); break; } } @@ -140,7 +138,16 @@ toolBar()->removeAction( mToolBarAction ); } -void FmBackupView::refreshBackupView() +void FmBackupView::refreshBackupDate() { mMainWidget->updateBackupDate(); } + +void FmBackupView::refreshModel( const QString& path ) +{ + if( !path.isEmpty() ) { + // ignore non-empty refresh signal as it means change of folder/file, not drive. + return; + } + mMainWidget->refreshModel(); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupview.h --- a/filemanager/src/filemanager/src/backuprestore/fmbackupview.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackupview.h Thu Jul 22 16:30:56 2010 +0100 @@ -46,7 +46,9 @@ void removeToolBarAction(); public slots: - void refreshBackupView(); + void refreshBackupDate(); + void refreshModel( const QString& path ); + private slots: void on_leftAction_triggered(); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupviewitem.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmbackupviewitem.cpp Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* - * 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: - * - * - * Description: - * The source file of the back up view list item of file manager - */ - -#include "fmbackupviewitem.h" - -#include - -#include -#include -#include -#include - - -FmBackupViewItem::FmBackupViewItem( QGraphicsItem *parent ) - : mTitleLabel( 0 ), - //mTipsLabel( 0 ), - mTipsLineEdit( 0 ), - HbListViewItem( parent ) -{ - init(); -} - -FmBackupViewItem::~FmBackupViewItem() -{ -} - -void FmBackupViewItem::polish(HbStyleParameters& params) -{ - Q_UNUSED(params); -} - -HbAbstractViewItem *FmBackupViewItem::createItem() -{ - return new FmBackupViewItem( parentItem() ); -} - -void FmBackupViewItem::updateChildItems() -{ - QString string = modelIndex().data( Qt::DisplayRole ).toString(); - - QStringList stringList = string.split( '\t' ); - - if( stringList.count() == 0 ){ - return; - } - - mTitleLabel->setText( stringList.first() ); - - if( stringList.first() != stringList.last() ){ - //mTipsLabel->setText( stringList.last() ); - mTipsLineEdit->setText( stringList.last() ); - } -} - - -void FmBackupViewItem::init() -{ - QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout(); - vLayout->setOrientation( Qt::Vertical ); - - mTitleLabel = new HbLabel( "" ); - mTitleLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); - vLayout->addItem( mTitleLabel ); - vLayout->setAlignment( mTitleLabel, Qt::AlignLeft ); - - //mTipsLabel = new HbLabel( "" ); - //mTipsLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - //mTipsLabel->setAlignment( Qt::AlignHCenter ); - - //vLayout->addItem( mTipsLabel ); - //vLayout->setAlignment( mTipsLabel, Qt::AlignLeft ); - - mTipsLineEdit = new HbLineEdit( "" ); - mTipsLineEdit->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - //mTipsLineEdit->setAlignment( Qt::AlignHCenter ); - mTipsLineEdit->setReadOnly( true ); - - vLayout->addItem( mTipsLineEdit ); - vLayout->setAlignment( mTipsLineEdit, Qt::AlignLeft ); - - setLayout( vLayout ); -} - -//FmRestoreViewItem -FmRestoreViewItem::FmRestoreViewItem( QGraphicsItem *parent ) - : mRestoreContentLabel( 0 ), - mDateTimeLabel( 0 ), - mCheckBox( 0 ), - HbListViewItem( parent ) -{ - init(); -} - -FmRestoreViewItem::~FmRestoreViewItem() -{ -} - - -HbAbstractViewItem *FmRestoreViewItem::createItem() -{ - return new FmRestoreViewItem( parentItem() ); -} - -void FmRestoreViewItem::polish(HbStyleParameters& params) -{ - Q_UNUSED(params); -} - -void FmRestoreViewItem::updateChildItems() -{ - QString string = modelIndex().data( Qt::DisplayRole ).toString(); - - QStringList stringList = string.split( '\t' ); - - if( stringList.count() == 0 ){ - return; - } - - mRestoreContentLabel->setText( stringList.first() ); - - if( stringList.first() != stringList.last() ){ - mDateTimeLabel->setText( stringList.last() ); - } - -} - - -void FmRestoreViewItem::init() -{ - QGraphicsLinearLayout *hLayout = new QGraphicsLinearLayout(); - hLayout->setOrientation( Qt::Horizontal ); - - mCheckBox = new HbCheckBox( this ); - hLayout->addItem( mCheckBox ); - hLayout->setAlignment( mCheckBox, Qt::AlignVCenter ); - - QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout(); - vLayout->setOrientation( Qt::Vertical ); - - mRestoreContentLabel = new HbLabel(""); - mRestoreContentLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); - vLayout->addItem( mRestoreContentLabel ); - vLayout->setAlignment( mRestoreContentLabel, Qt::AlignLeft ); - - mDateTimeLabel = new HbLabel(""); - mDateTimeLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - vLayout->addItem( mDateTimeLabel ); - vLayout->setAlignment( mDateTimeLabel, Qt::AlignLeft ); - - HbWidget *textWidget = new HbWidget(); - textWidget->setLayout(vLayout); - - hLayout->addItem( textWidget ); - hLayout->setAlignment( textWidget, Qt::AlignVCenter ); - - setLayout( hLayout ); - -} - -void FmRestoreViewItem::setCheckBoxState() -{ - if ( mCheckBox->checkState() == Qt::Unchecked ){ - mCheckBox->setCheckState( Qt::Checked ); - setSelected( true ); - } - else if( mCheckBox->checkState() == Qt::Checked ){ - mCheckBox->setCheckState( Qt::Unchecked ); - setSelected( false ); - } -} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupviewitem.h --- a/filemanager/src/filemanager/src/backuprestore/fmbackupviewitem.h Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* - * 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: - * - * - * Description: - * The header file of the back up view list item of file manager - */ - -#ifndef FMBACKUPVIEWITEM_H -#define FMBACKUPVIEWITEM_H - -#include - -class HbLabel; -class HbCheckBox; -class HbLineEdit; - -class FmBackupViewItem : public HbListViewItem -{ - Q_OBJECT - -public: - FmBackupViewItem( QGraphicsItem *parent = 0 ); - ~FmBackupViewItem(); - -public: - virtual HbAbstractViewItem *createItem(); - virtual void updateChildItems(); -private: - virtual void polish(HbStyleParameters& params); - -private: - void init(); - -private: - HbLabel *mTitleLabel; - //HbLabel *mTipsLabel; - HbLineEdit *mTipsLineEdit; -}; - -//FmRestoreViewItem -class FmRestoreViewItem : public HbListViewItem -{ - Q_OBJECT - -public: - FmRestoreViewItem( QGraphicsItem *parent = 0 ); - ~FmRestoreViewItem(); - -public: - virtual HbAbstractViewItem *createItem(); - virtual void updateChildItems(); - void setCheckBoxState(); - -private: - virtual void polish(HbStyleParameters& params); - -private: - void init(); - -private: - HbLabel *mRestoreContentLabel; - HbLabel *mDateTimeLabel; - - HbCheckBox *mCheckBox; -}; - -#endif diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupwidget.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -49,30 +49,24 @@ void FmBackupWidget::on_list_released( const QModelIndex &index ) { - if( mListReleased == true ) { - return; - } - mListReleased = true; HbDataFormModelItem *item = mModel->itemFromIndex(index); if( item != mLastPressedItem || mDataForm->isScrolling() || mScrolled ) { mScrolled = false; - mListReleased = false; return; } mScrolled = false; if( item == mContentsItem ){ - ChangeContents(); + emit changeContents(); } else if( item == mTargetItem ){ - ChangeTargetDrive(); + emit changeTargetDrive(); } else if( item == mSchedulingItem ){ - ChangeScheduling(); + emit changeScheduling(); } else if( item == mWeekdayItem ){ - ChangeWeekday(); + emit changeWeekday(); } else if( item == mTimeItem ){ - ChangeTime(); + emit changeTime(); } - mListReleased = false; } void FmBackupWidget::on_list_pressed( const QModelIndex &index ) @@ -110,7 +104,13 @@ connect( this, SIGNAL( doModelRefresh() ), this, SLOT( refreshModel() ), Qt::QueuedConnection ); - + + connect( this, SIGNAL(changeContents()), this, SLOT(on_changeContents()), Qt::QueuedConnection); + connect( this, SIGNAL(changeScheduling()), this, SLOT(on_changeScheduling()), Qt::QueuedConnection); + connect( this, SIGNAL(changeWeekday()), this, SLOT(on_changeWeekday()), Qt::QueuedConnection); + connect( this, SIGNAL(changeTime()), this, SLOT(on_changeTime()), Qt::QueuedConnection); + connect( this, SIGNAL(changeTargetDrive()), this, SLOT(on_changeTargetDrive()), Qt::QueuedConnection); + //mBackupSettings = new FmBackupSettings(); mBackupSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL(); mBackupSettings->load(); @@ -147,7 +147,7 @@ void FmBackupWidget::initModel() { mContentsGroup = mModel->appendDataFormGroup( - QString( tr( "Contents" ) ), mModel->invisibleRootItem()); + QString( hbTrId( "Contents" ) ), mModel->invisibleRootItem()); mContentsItem = mModel->appendDataFormItem( HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup ); @@ -158,7 +158,7 @@ mTargetItem->setContentWidgetData( QString("readOnly"), QString("true") ); mSchedulingGroup = mModel->appendDataFormGroup( - QString( tr( "Scheduling" ) ), mModel->invisibleRootItem()); + QString( hbTrId( "Scheduling" ) ), mModel->invisibleRootItem()); mSchedulingItem = mModel->appendDataFormItem( HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup ); @@ -271,12 +271,10 @@ expandAllGroup(); } - - -void FmBackupWidget::ChangeContents() +void FmBackupWidget::on_changeContents() { - QString title = constFileManagerBackupSettingsTitleContents; + QString title = mContentsItem->label(); QStringList queryStringList; quint32 contentMask = FmBackupSettings::EFileManagerBackupContentAll; while ( contentMask <= FmBackupSettings::EFileManagerBackupContentLast) @@ -294,9 +292,9 @@ } -void FmBackupWidget::ChangeScheduling() +void FmBackupWidget::on_changeScheduling() { - QString title = constFileManagerBackupSettingsTitleScheduling; + QString title = mSchedulingItem->label(); QStringList queryStringList; FmBackupSettings::TFileManagerBackupSchedule schedule = FmBackupSettings::EFileManagerBackupScheduleNever; @@ -316,9 +314,9 @@ } } -void FmBackupWidget::ChangeWeekday() +void FmBackupWidget::on_changeWeekday() { - QString title = constFileManagerBackupSettingsTitleWeekday; + QString title = mWeekdayItem->label(); QStringList queryStringList; FmBackupSettings::TFileManagerBackupWeekday weekday = FmBackupSettings::EFileManagerBackupWeekdayMonday; @@ -338,9 +336,9 @@ } } -void FmBackupWidget::ChangeTime() +void FmBackupWidget::on_changeTime() { - QString title = constFileManagerBackupSettingsTitleTime; + QString title = mTimeItem->label(); QTime queryTime = mBackupSettings->time(); if( FmDlgUtils::showTimeSettingQuery( title, queryTime ) ) @@ -351,39 +349,13 @@ } -void FmBackupWidget::ChangeTargetDrive() +void FmBackupWidget::on_changeTargetDrive() { - QString title = constFileManagerBackupSettingsTitleTargetDrive; - QStringList queryStringList; - QStringList driveStringList; - - QStringList driveList; - //FmUtils::getDriveList( driveList, true ); - FmViewManager::viewManager()->operationService()->backupRestoreHandler()->getBackupDriveList( driveList ); - QString targetDrive = mBackupSettings->targetDrive(); - int selectIndex = -1; - - int currentIndex = 0; - for( QStringList::const_iterator it = driveList.begin(); it != driveList.end(); ++it ) - { - QString drive = (*it); - drive = FmUtils::removePathSplash( drive ); - QString driveWithVolume = FmUtils::fillDriveVolume( drive, true ); - - driveStringList.push_back( drive ); - queryStringList.push_back( driveWithVolume ); - - if( drive == targetDrive ) - { - // adjust index offset against drive. - selectIndex = currentIndex; - } - ++currentIndex; - } - - if( FmDlgUtils::showSingleSettingQuery( title, queryStringList, selectIndex ) ) - { - mBackupSettings->setTargetDrive( driveStringList.at( selectIndex ) ); + QString title = mTargetItem->label(); + QString drive = FmDlgUtils::showBackupDriveQuery( title ); + if( ( !drive.isEmpty() ) && + ( mBackupSettings->targetDrive().compare( drive, Qt::CaseInsensitive ) != 0 ) ) { + mBackupSettings->setTargetDrive( drive ); emit doModelRefresh(); } } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmbackupwidget.h --- a/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -39,25 +39,32 @@ signals: void doModelRefresh(); + void changeContents(); + void changeScheduling(); + void changeWeekday(); + void changeTime(); + void changeTargetDrive(); +public slots: + // refresh whole model immediately. + void refreshModel(); + private slots: void on_list_released( const QModelIndex &index ); void on_list_pressed( const QModelIndex &index ); void on_list_scrollingStarted(); - - void refreshModel(); + + void on_changeContents(); + void on_changeScheduling(); + void on_changeWeekday(); + void on_changeTime(); + void on_changeTargetDrive(); private: void initModel(); void init(); void expandAllGroup(); - - void ChangeContents(); - void ChangeScheduling(); - void ChangeWeekday(); - void ChangeTime(); - void ChangeTargetDrive(); private: diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -28,9 +28,6 @@ #include #include #include -#include - - FmDeleteBackupView::FmDeleteBackupView() : FmViewBase( EDeleteBackupView ) { @@ -38,8 +35,7 @@ initMainWidget(); initToolBar(); - initMenu(); - adjustActions(); + initMenu(); mOperationService = FmViewManager::viewManager()->operationService(); QMetaObject::connectSlotsByName( this ); @@ -64,6 +60,7 @@ mDeleteAction->setObjectName( "deleteAction" ); mDeleteAction->setText( hbTrId( "Delete backups" ) ); menu()->addAction( mDeleteAction ); + mDeleteAction->setEnabled(false); } void FmDeleteBackupView::initMainWidget() @@ -71,22 +68,31 @@ mDeleteBackupWidget = new FmDeleteBackupWidget( this ); mDeleteBackupWidget->setObjectName( "deleteBackupWidget" ); setWidget( mDeleteBackupWidget ); + connect(mDeleteBackupWidget, SIGNAL(stateChanged(int)), this, SLOT(on_deleteBackupWidget_stateChanged(int))); } +void FmDeleteBackupView::on_deleteBackupWidget_stateChanged(int state) +{ + Q_UNUSED(state); + QList items = mDeleteBackupWidget->selectionIndexes(); + if (items.count() > 0) { + mLeftAction->setEnabled(true); + mDeleteAction->setEnabled(true); + } else { + mLeftAction->setEnabled(false); + mDeleteAction->setEnabled(false); + } +} + void FmDeleteBackupView::initToolBar() { mLeftAction = new HbAction( this ); mLeftAction->setObjectName( "leftAction" ); mLeftAction->setText( hbTrId( "delete" ) ); toolBar()->addAction( mLeftAction ); - + mLeftAction->setEnabled(false); toolBar()->setOrientation( Qt::Horizontal ); - - //action = new HbAction( this ); - //action->setObjectName( "rightAction" ); - //action->setText( tr( "" ) ); - //toolBar()->addAction( action ); } void FmDeleteBackupView::on_leftAction_triggered() @@ -109,7 +115,7 @@ void FmDeleteBackupView::on_deleteAction_triggered() { QList items = mDeleteBackupWidget->selectionIndexes(); - if( items.count() <= 0 || !FmDlgUtils::question( tr("Confirm Deletion?" ) ) ){ + if( items.count() <= 0 || !FmDlgUtils::question( hbTrId("Confirm Deletion?" ) ) ){ return; } @@ -121,18 +127,7 @@ mOperationService->syncDeleteBackup( selection ); mDeleteBackupWidget->refresh(); - adjustActions(); -} - -void FmDeleteBackupView::adjustActions() -{ - if( mDeleteBackupWidget->backupDataCount() > 0 ) { - mDeleteAction->setDisabled( false ); - mLeftAction->setDisabled( false ); - } else { - mDeleteAction->setDisabled( true ); - mLeftAction->setDisabled( true ); - } + on_deleteBackupWidget_stateChanged(0); } void FmDeleteBackupView::removeToolBarAction() @@ -140,3 +135,7 @@ toolBar()->removeAction( mLeftAction ); } +void FmDeleteBackupView::refreshDeleteBackupView() +{ + mDeleteBackupWidget->refresh(); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.h --- a/filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupview.h Thu Jul 22 16:30:56 2010 +0100 @@ -34,10 +34,12 @@ public: FmDeleteBackupView(); ~FmDeleteBackupView(); - + private slots: void on_leftAction_triggered(); void on_deleteAction_triggered(); + void on_deleteBackupWidget_stateChanged(int state); + void refreshDeleteBackupView(); #ifdef FM_CHANGE_ORIENT_ENABLE void on_rotateAction_triggered(); #endif @@ -45,9 +47,7 @@ private: void initMenu(); void initMainWidget(); - void initToolBar(); - void adjustActions(); - + void initToolBar(); void removeToolBarAction(); private: diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -20,7 +20,6 @@ #include "fmrestoreviewitem.h" #include "fmoperationservice.h" #include "fmviewmanager.h" - #include "fmbackupconfigloader.h" #include "fmbkupengine.h" #include "fmbackuprestorehandler.h" @@ -28,7 +27,6 @@ #include #include #include - #include FmDeleteBackupWidget::FmDeleteBackupWidget( HbWidget *parent ) @@ -47,8 +45,16 @@ { mListView->setModel( 0 ); loadData(); - mListView->setModel( mModel ); + mListView->setModel( mModel ); + for (int i = 0; i < mModel->rowCount(); ++i) { + QModelIndex index = mModel->index(i); + FmRestoreViewItem* restoreViewItem = static_cast< FmRestoreViewItem* > + (mListView->itemByIndex(index)); + connect(restoreViewItem, SIGNAL(stateChanged(int)), this, SIGNAL(stateChanged(int))); + } + emit stateChanged(0); } + QList FmDeleteBackupWidget::selectionIndexes() { QList selectionList; @@ -84,19 +90,20 @@ it != retoreEntryList.end(); ++it ){ QString string = ( *it )->text(); QDateTime datetime = ( *it )->restoreInfo().dateTime(); + QString drive = ( *it )->restoreInfo().drive(); string.append( '\t' ); string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") ); - QVariant variant( string ); - + string.append( '\t' ); + string.append( drive ); + QVariant variant( string ); mModel->setData( mModel->index( index ), variant, Qt::DisplayRole ); - ++index; } } void FmDeleteBackupWidget::init() -{ +{ QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this ); vLayout->setOrientation( Qt::Vertical ); @@ -112,6 +119,7 @@ mListView->setModel( mModel ); mListView->setItemPrototype( new FmRestoreViewItem( this ) ); + } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.h --- a/filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmdeletebackupwidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -25,6 +25,7 @@ class QStringListModel; class FmRestoreSettings; class FmBackupConfigLoader; +class FmRestoreViewItem; class FmDeleteBackupWidget : public HbWidget { @@ -37,6 +38,8 @@ void refresh(); QList selectionIndexes(); int backupDataCount(); +signals: + void stateChanged(int state); private: void loadData(); void init(); @@ -50,7 +53,7 @@ QStringListModel *mModel; FmRestoreSettings *mRestoreSettings; - FmBackupConfigLoader *mBackupConfigLoader; + FmBackupConfigLoader *mBackupConfigLoader; }; #endif diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmrestoreview.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmrestoreview.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreview.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -20,6 +20,7 @@ #include "fmrestorewidget.h" #include "fmviewmanager.h" #include "fmoperationbase.h" +#include "fmdlgutils.h" #include @@ -27,9 +28,6 @@ #include #include #include -#include - - FmRestoreView::FmRestoreView(): FmViewBase( ERestoreView ) { @@ -37,8 +35,7 @@ initMainWidget(); initToolBar(); - initMenu(); - adjustActions(); + initMenu(); mOperationService = FmViewManager::viewManager()->operationService(); QMetaObject::connectSlotsByName( this ); @@ -63,6 +60,7 @@ mRestoreAction->setObjectName( "restoreAction" ); mRestoreAction->setText( hbTrId( "Restore data" ) ); menu()->addAction( mRestoreAction ); + mRestoreAction->setEnabled(false); } void FmRestoreView::initMainWidget() @@ -70,6 +68,7 @@ mRestoreWigdet = new FmRestoreWigdet( this ); setWidget( mRestoreWigdet ); + connect(mRestoreWigdet, SIGNAL(stateChanged(int)), this, SLOT(onCheckBoxStateChange())); } @@ -79,7 +78,7 @@ mLeftAction->setObjectName( "leftAction" ); mLeftAction->setText( hbTrId( "Restore" ) ); toolBar()->addAction( mLeftAction ); - + mLeftAction->setEnabled(false); toolBar()->setOrientation( Qt::Horizontal ); } @@ -98,13 +97,13 @@ case FmErrNone: break; case FmErrWrongParam: - HbMessageBox::information( QString( hbTrId("Operation canceled with wrong param!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation canceled with wrong param!") ) ); break; case FmErrAlreadyStarted: - HbMessageBox::information( QString( hbTrId("Operation canceled because already started!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation canceled because already started!") ) ); break; default: - HbMessageBox::information(tr("restore failed")); + FmDlgUtils::information(hbTrId("restore failed")); break; } } @@ -126,19 +125,24 @@ on_leftAction_triggered(); } -void FmRestoreView::adjustActions() -{ - if( mRestoreWigdet->backupDataCount() > 0 ) { - mRestoreAction->setDisabled( false ); - mLeftAction->setDisabled( false ); - } else { - mRestoreAction->setDisabled( true ); - mLeftAction->setDisabled( true ); - } -} - void FmRestoreView::removeToolBarAction() { toolBar()->removeAction( mLeftAction ); } +void FmRestoreView::onCheckBoxStateChange() +{ + QList items = mRestoreWigdet->selectionIndexes(); + if (items.count() > 0) { + mLeftAction->setEnabled(true); + mRestoreAction->setEnabled(true); + } else { + mLeftAction->setEnabled(false); + mRestoreAction->setEnabled(false); + } +} + +void FmRestoreView::refreshRestoreView() +{ + mRestoreWigdet->refresh(); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmrestoreview.h --- a/filemanager/src/filemanager/src/backuprestore/fmrestoreview.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreview.h Thu Jul 22 16:30:56 2010 +0100 @@ -37,6 +37,8 @@ private slots: void on_leftAction_triggered(); void on_restoreAction_triggered(); + void onCheckBoxStateChange(); + void refreshRestoreView(); #ifdef FM_CHANGE_ORIENT_ENABLE void on_rotateAction_triggered(); #endif @@ -44,9 +46,7 @@ private: void initMenu(); void initMainWidget(); - void initToolBar(); - void adjustActions(); - + void initToolBar(); void removeToolBarAction(); private: diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -16,9 +16,9 @@ * The source file of the restore view list item of file manager */ #include "fmrestoreviewitem.h" - +#include "fmfileiconprovider.h" #include - +#include #include #include #include @@ -29,10 +29,11 @@ : HbListViewItem( parent ), mRestoreContentLabel( 0 ), mDateTimeLabel( 0 ), - mCheckBox( 0 ) - + mCheckBox( 0 ), + hLayout( 0 ), + mParentWidget((HbWidget *)parent) { - init(); + //init(); } FmRestoreViewItem::~FmRestoreViewItem() @@ -42,7 +43,7 @@ HbAbstractViewItem *FmRestoreViewItem::createItem() { - return new FmRestoreViewItem( parentItem() ); + return new FmRestoreViewItem( *this ); } void FmRestoreViewItem::polish(HbStyleParameters& params) @@ -52,6 +53,9 @@ void FmRestoreViewItem::updateChildItems() { + if( !hLayout ) { + init(); + } QString string = modelIndex().data( Qt::DisplayRole ).toString(); QStringList stringList = string.split( '\t' ); @@ -60,57 +64,70 @@ return; } - mRestoreContentLabel->setPlainText( stringList.first() ); + mRestoreContentLabel->setPlainText(stringList.first()); - if( stringList.first() != stringList.last() ){ - mDateTimeLabel->setPlainText( stringList.last() ); - } + if (stringList.size() > 0) + { + mDateTimeLabel->setPlainText(stringList.at(1)); + } + if (stringList.size() > 1) + { + QIcon icon = mIconProvider->icon(QFileInfo(stringList.at(2))); + // FmFileIconProvider already handle null icon issue + mIconLabel->setIcon(HbIcon(icon)); + } + + connect(this, SIGNAL(stateChanged(int)), mParentWidget, + SIGNAL(stateChanged(int))); } - void FmRestoreViewItem::init() { - QGraphicsLinearLayout *hLayout = new QGraphicsLinearLayout(); - hLayout->setOrientation( Qt::Horizontal ); + mIconProvider = new FmFileIconProvider(); + hLayout = new QGraphicsLinearLayout(); + hLayout->setOrientation(Qt::Horizontal); + hLayout->addItem(layout()); - mCheckBox = new HbCheckBox( this ); - hLayout->addItem( mCheckBox ); - hLayout->setAlignment( mCheckBox, Qt::AlignVCenter ); + mCheckBox = new HbCheckBox(this); + hLayout->addItem(mCheckBox); + hLayout->setAlignment(mCheckBox, Qt::AlignVCenter); - QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout(); - vLayout->setOrientation( Qt::Vertical ); + QGraphicsGridLayout *vLayout = new QGraphicsGridLayout(); + + mRestoreContentLabel = new HbLabel(""); + mRestoreContentLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary)); + + mIconLabel = new HbLabel(); - mRestoreContentLabel = new HbLabel(""); - mRestoreContentLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); - vLayout->addItem( mRestoreContentLabel ); - vLayout->setAlignment( mRestoreContentLabel, Qt::AlignLeft ); + mDateTimeLabel = new HbLabel(""); + mDateTimeLabel->setFontSpec(HbFontSpec(HbFontSpec::Secondary)); + + vLayout->addItem(mRestoreContentLabel, 0, 0); + vLayout->addItem(mIconLabel, 0, 1); + vLayout->addItem(mDateTimeLabel, 1, 0); - mDateTimeLabel = new HbLabel(""); - mDateTimeLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - vLayout->addItem( mDateTimeLabel ); - vLayout->setAlignment( mDateTimeLabel, Qt::AlignLeft ); + HbWidget *textWidget = new HbWidget(); + textWidget->setLayout(vLayout); - HbWidget *textWidget = new HbWidget(); - textWidget->setLayout(vLayout); - - hLayout->addItem( textWidget ); - hLayout->setAlignment( textWidget, Qt::AlignVCenter ); - - setLayout( hLayout ); - + hLayout->addItem(textWidget); + hLayout->setAlignment(textWidget, Qt::AlignVCenter); + + connect(mCheckBox, SIGNAL(stateChanged(int)), this, + SIGNAL(stateChanged(int))); + setLayout(hLayout); } void FmRestoreViewItem::setCheckBoxState() { if ( mCheckBox->checkState() == Qt::Unchecked ){ mCheckBox->setCheckState( Qt::Checked ); - setSelected( true ); + setSelected( true ); } else if( mCheckBox->checkState() == Qt::Checked ){ mCheckBox->setCheckState( Qt::Unchecked ); setSelected( false ); - } + } } bool FmRestoreViewItem::getCheckBoxState() @@ -121,3 +138,4 @@ return true; } } + diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.h --- a/filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestoreviewitem.h Thu Jul 22 16:30:56 2010 +0100 @@ -24,7 +24,9 @@ class HbLabel; class HbCheckBox; class HbLineEdit; - +class QGraphicsLinearLayout; +class HbWidget; +class FmFileIconProvider; //FmRestoreViewItem class FmRestoreViewItem : public HbListViewItem { @@ -32,13 +34,16 @@ public: FmRestoreViewItem( QGraphicsItem *parent = 0 ); - ~FmRestoreViewItem(); + ~FmRestoreViewItem(); public: virtual HbAbstractViewItem *createItem(); virtual void updateChildItems(); void setCheckBoxState(); bool getCheckBoxState(); +signals: + void stateChanged(int); + private: virtual void polish(HbStyleParameters& params); @@ -48,9 +53,13 @@ private: HbLabel *mRestoreContentLabel; - HbLabel *mDateTimeLabel; + HbLabel *mDateTimeLabel; HbCheckBox *mCheckBox; + QGraphicsLinearLayout *hLayout; + HbWidget *mParentWidget; + HbLabel *mIconLabel; + FmFileIconProvider *mIconProvider; }; #endif diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -17,6 +17,7 @@ */ #include "fmrestorewidget.h" #include "fmrestoresettings.h" +#include "fmbackupsettings.h" #include "fmrestoreviewitem.h" #include "fmoperationservice.h" #include "fmviewmanager.h" @@ -72,10 +73,12 @@ vLayout->addItem( mListView ); mModel = new QStringListModel(); - mListView->setModel( mModel ); - + mListView->setModel( mModel ); mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL(); mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader(); + + // load backup settings to refresh default target drive + FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL()->load(); mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() ); int index = 0; @@ -89,6 +92,9 @@ QDateTime datetime = ( *it )->restoreInfo().dateTime(); string.append( '\t' ); string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") ); + QString drive = ( *it )->restoreInfo().drive(); + string.append( '\t' ); + string.append( drive ); QVariant variant( string ); mModel->setData( mModel->index( index ), variant, Qt::DisplayRole ); @@ -96,8 +102,7 @@ ++index; } - mListView->setItemPrototype( new FmRestoreViewItem( this ) ); - + mListView->setItemPrototype( new FmRestoreViewItem(this) ); } void FmRestoreWigdet::on_list_activated( const QModelIndex &index ) @@ -105,11 +110,51 @@ FmRestoreViewItem *restoreViewItem = static_cast< FmRestoreViewItem* > ( mListView->itemByIndex( index ) ); - restoreViewItem->setCheckBoxState(); - emit checkStatusChanged(); + restoreViewItem->setCheckBoxState(); } int FmRestoreWigdet::backupDataCount() { return mModel->rowCount(); } + +void FmRestoreWigdet::refresh() +{ + mListView->setModel( 0 ); + if( !mModel ) { + mModel = new QStringListModel(); + } + mModel->removeRows( 0, mModel->rowCount() ); + + mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL(); + mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader(); + mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() ); + + int index = 0; + QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList(); + mModel->insertRows( 0, retoreEntryList.count() ); + for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin(); + it != retoreEntryList.end(); ++it ){ + QString string = ( *it )->text(); + QDateTime datetime = ( *it )->restoreInfo().dateTime(); + QString drive = ( *it )->restoreInfo().drive(); + string.append( '\t' ); + string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") ); + string.append( '\t' ); + string.append( drive ); + QVariant variant( string ); + mModel->setData( mModel->index( index ), variant, Qt::DisplayRole ); + ++index; + } + mListView->setModel( mModel ); + mListView->setItemPrototype( new FmRestoreViewItem( this ) ); + + for (int i = 0; i < mModel->rowCount(); ++i) { + QModelIndex index = mModel->index(i); + FmRestoreViewItem* restoreViewItem = static_cast< FmRestoreViewItem* > + (mListView->itemByIndex(index)); + connect(restoreViewItem, SIGNAL(stateChanged(int)), this, SIGNAL(stateChanged(int))); + } + emit stateChanged(0); + +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/backuprestore/fmrestorewidget.h --- a/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -36,11 +36,12 @@ QList selectionIndexes(); int backupDataCount(); + void refresh(); private: void init(); -signals: - void checkStatusChanged(); +signals: + void stateChanged(int state); private slots: void on_list_activated( const QModelIndex &index ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdatalistmodel.cpp --- a/filemanager/src/filemanager/src/components/fmdatalistmodel.cpp Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* - * 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: - * - * - * Description: - * The source file of the data list model of file manager - */ - -#include "fmdatalistmodel.h" - - -FmDataListModel::FmDataListModel( QObject *parent ) - : QAbstractListModel( parent ) -{ -} - -int FmDataListModel::rowCount( const QModelIndex &parent ) const -{ - if (parent.isValid()) - return 0; - - return mDisplayLst.count(); -} - -QVariant FmDataListModel::data( const QModelIndex &index, int role ) const -{ - if ( index.row() < 0 || index.row() >= mDisplayLst.size() ) - return QVariant(); - - if ( role == Qt::DisplayRole || role == Qt::EditRole ) - return mDisplayLst.at( index.row() ); - - if ( role == Qt::UserRole ) - return mUserDataLst.at( index.row() ); - - return QVariant(); -} - -Qt::ItemFlags FmDataListModel::flags( const QModelIndex &index ) const -{ - if ( !index.isValid() ) - return QAbstractItemModel::flags( index ) | Qt::ItemIsDropEnabled; - - return QAbstractItemModel::flags( index ) | Qt::ItemIsEditable; -} - -bool FmDataListModel::setData( const QModelIndex &index, const QVariant &value, int role ) -{ - if ( index.row() >= 0 && index.row() < mDisplayLst.size() - && ( role == Qt::EditRole || role == Qt::DisplayRole ) ){ - mDisplayLst.replace( index.row(), value.toString() ); - emit dataChanged( index, index ); - return true; - } - - if ( index.row() >= 0 && index.row() < mUserDataLst.size() - && ( role == Qt::UserRole ) ) { - mUserDataLst.replace( index.row(), value.toString() ); - emit dataChanged( index, index ); - return true; - } - return false; -} - -bool FmDataListModel::insertRows( int row, int count, const QModelIndex &parent ) -{ - if ( count < 1 || row < 0 || row > rowCount( parent ) ) - return false; - - beginInsertRows( QModelIndex(), row, row + count - 1 ); - - for ( int r = 0; r < count; ++r ) - { - mDisplayLst.insert( row, QString() ); - mUserDataLst.insert( row, QString() ); - } - - endInsertRows(); - - return true; -} - -bool FmDataListModel::removeRows( int row, int count, const QModelIndex &parent ) -{ - if ( count <= 0 || row < 0 || ( row + count ) > rowCount( parent ) ) - return false; - - beginRemoveRows( QModelIndex(), row, row + count - 1 ); - - for ( int r = 0; r < count; ++r ) - { - mDisplayLst.removeAt( row ); - mUserDataLst.removeAt( row ); - } - - endRemoveRows(); - return true; -} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdatalistmodel.h --- a/filemanager/src/filemanager/src/components/fmdatalistmodel.h Fri Jun 11 16:23:39 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* - * 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: - * - * - * Description: - * The header file of the data list model of file manager - */ - -#ifndef FMDATALISTMODEL_H -#define FMDATALISTMODEL_H - -#include "fmcommon.h" - -#include -#include - -class FmDataListModel : public QAbstractListModel -{ - Q_OBJECT -public: - FmDataListModel(QObject *parent = 0); - - /** - * Return row count - * @param parent ModelIndex - * @return row count - */ - int rowCount(const QModelIndex &parent = QModelIndex()) const; - - /** - * Return data of designated role - * @param index ModelIndex - * @param role role of data, DisplayRole for show and UserRole for data - * @return data - */ - QVariant data(const QModelIndex &index, int role) const; - - /** - * Set data of designated role - * @param index ModelIndex - * @param role role of data, DisplayRole for show and UserRole for data - * @return if operation succeed - */ - bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::DisplayRole); - - /** - * Get flags - * @param index ModelIndex - * @return flags - */ - Qt::ItemFlags flags(const QModelIndex &index) const; - - /** - * Insert count rows into the model before the given row. - * @param row the given row, - * @param count count of rows - * @param parent parent ModelIndex - * @return if operation succeed - */ - bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); - - /** - * Remove count rows from the model at the given row. - * @param row the given row, - * @param count count of rows - * @param parent parent ModelIndex - * @return if operation succeed - */ - bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - -private: - QStringList mDisplayLst; - QStringList mUserDataLst; -}; - -#endif // FMDATALISTMODEL_H diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdialog.cpp --- a/filemanager/src/filemanager/src/components/fmdialog.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmdialog.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -36,3 +36,52 @@ mRetAction = action; mEventLoop.exit(); } + +HbAction *FmDialog::primaryAction() const +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() > 0) { + return (HbAction *)(actionList.at(0)); + } else { + return 0; + } + +} + +void FmDialog::setPrimaryAction( HbAction *action ) +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() == 0) { + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 1) { + actionList.clear(); + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 2) { + actionList.removeAt(0); + actionList.insert(0, action); + } +} + +HbAction *FmDialog::secondaryAction() const +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() > 1) { + return (HbAction *)(actionList.at(1)); + } else { + return 0; + } +} + +void FmDialog::setSecondaryAction( HbAction *action ) +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() == 0) { + QGraphicsWidget::addAction(new HbAction(hbTrId("Ok"))); + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 1) { + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 2) { + actionList.removeAt(1); + actionList.insert(1, action); + } +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdialog.h --- a/filemanager/src/filemanager/src/components/fmdialog.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmdialog.h Thu Jul 22 16:30:56 2010 +0100 @@ -20,16 +20,21 @@ #define FMDIALOG_H #include -#include #include - -#include "hbmenu.h" +#include +#include class FmDialog : public HbDialog { Q_OBJECT public: explicit FmDialog( QGraphicsItem *parent = 0 ); HbAction *exec(); + + HbAction *primaryAction() const; + void setPrimaryAction( HbAction *action ); + + HbAction *secondaryAction() const; + void setSecondaryAction( HbAction *action ); public slots: void dialogClosed(HbAction *action); private: diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdlgutils.cpp --- a/filemanager/src/filemanager/src/components/fmdlgutils.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmdlgutils.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -24,6 +24,7 @@ #include "fmutils.h" #include "fmviewmanager.h" #include "fmmessagebox.h" +#include "fmdrivequery.h" #include #include @@ -82,8 +83,8 @@ cQuery->setMarkedListItem( selectedIndex ); } - QString sk1 ( tr ( "ok" ) ); - QString sk2 ( tr ("cancel" ) ); + QString sk1 ( hbTrId( "txt_common_button_ok" ) ); + QString sk2 ( hbTrId("txt_common_button_cancel" ) ); if( !sk1.isEmpty() ) { HbAction *primary = new HbAction( sk1 ); @@ -158,8 +159,8 @@ } - QString sk1 ( hbTrId( "ok" ) ); - QString sk2 ( hbTrId( "cancel" ) ); + QString sk1 ( hbTrId( "txt_common_button_ok" ) ); + QString sk2 ( hbTrId( "txt_common_button_cancel" ) ); if( !sk1.isEmpty() ) { HbAction *primary = new HbAction( sk1 ); @@ -212,8 +213,8 @@ cQuery->setHeadingWidget( new HbLabel( title ) ); cQuery->setTime( time ); - QString sk1 ( hbTrId( "ok" ) ); - QString sk2 ( hbTrId( "cancel" ) ); + QString sk1 ( hbTrId( "txt_common_button_ok" ) ); + QString sk2 ( hbTrId( "txt_common_button_cancel" ) ); if( !sk1.isEmpty() ) { HbAction *primary = new HbAction( sk1 ); @@ -261,8 +262,8 @@ } cQuery->setHeadingWidget( new HbLabel( title ) ); - QString sk1 ( hbTrId ( "ok" ) ); - QString sk2 ( hbTrId ( "cancel" ) ); + QString sk1 ( hbTrId ( "txt_common_button_ok" ) ); + QString sk2 ( hbTrId ( "txt_common_button_cancel" ) ); if( !sk1.isEmpty() ) { HbAction *primary = new HbAction( sk1 ); @@ -313,8 +314,8 @@ } cQuery->setHeadingWidget( new HbLabel( title ) ); - QString sk1 ( tr ("ok" ) ); - QString sk2 ( tr ("cancel" ) ); + QString sk1 ( hbTrId("txt_common_button_ok" ) ); + QString sk2 ( hbTrId("txt_common_button_cancel" ) ); if( !sk1.isEmpty() ) { HbAction *primary = new HbAction( sk1 ); @@ -352,8 +353,8 @@ cQuery->setFirstLabelText( firstLabel ); cQuery->setSecondLabelText( secondLabel ); - QString sk1 = ( hbTrId( "ok" ) ); - QString sk2 = ( hbTrId( "cancel" ) ); + QString sk1 = ( hbTrId( "txt_common_button_ok" ) ); + QString sk2 = ( hbTrId( "txt_common_button_cancel" ) ); if( !sk1.isEmpty() ) { HbAction *primary = new HbAction( sk1 ); @@ -389,3 +390,28 @@ FmMessageBox msgBox; return msgBox.question( questionText, primaryButtonText, secondaryButtonText ); } + +void FmDlgUtils::information( const QString &informationText ) +{ + FmMessageBox msgBox; + return msgBox.information( informationText ); +} + +QString FmDlgUtils::showBackupDriveQuery( const QString& title ) +{ + QString ret; + + FmDriveQuery *cQuery = new FmDriveQuery(); + cQuery->setHeadingWidget( new HbLabel( title ) ); + + QString sk = ( hbTrId( "txt_common_button_cancel" ) ); + + HbAction *primary = new HbAction( sk ); + cQuery->setPrimaryAction( primary ); + + executeDialog( cQuery, QString() ); + ret = cQuery->selectedDrive(); + + delete cQuery; + return ret; +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdlgutils.h --- a/filemanager/src/filemanager/src/components/fmdlgutils.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmdlgutils.h Thu Jul 22 16:30:56 2010 +0100 @@ -25,6 +25,8 @@ #include #include +#include + class FmDialog; class HbAction; @@ -86,8 +88,18 @@ const QString &firstLabel, const QString &secondLabel, QString &pwd, int maxLength = -1, const QString &associatedDrives = QString() ); - static bool question( const QString &questionText, const QString &primaryButtonText = tr("Yes"), - const QString &secondaryButtonText = tr("No") ); + static bool question( const QString &questionText, const QString &primaryButtonText = QString( hbTrId("Yes") ), + const QString &secondaryButtonText = QString( hbTrId("No") ) ); + + static void information( const QString &informationText ); + + /** + * Query drive for backup + * + * @param title Title for query dialog + * @return selected drive name. empty for cancel. + */ + static QString showBackupDriveQuery( const QString& title ); ~FmDlgUtils(void); private: diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdrivedetailstype.cpp --- a/filemanager/src/filemanager/src/components/fmdrivedetailstype.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmdrivedetailstype.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -44,7 +44,8 @@ typeFilters.append( QString( "*.ico" ) ); typeFilters.append( QString( "*.vcf" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupImages, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupImages, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); typeFilters.clear(); typeFilters.append( QString( "*.aac" ) ); @@ -64,31 +65,36 @@ typeFilters.append( QString( "*.ott" ) ); typeFilters.append( QString( "*.mxmf" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupSoundFiles, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupSoundFiles, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); typeFilters.clear(); typeFilters.append( QString( "*.jad" ) ); typeFilters.append( QString( "*.jar" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupMidpJava, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupMidpJava, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); typeFilters.clear(); typeFilters.append( QString( "*.sis" ) ); typeFilters.append( QString( "*.sisx" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupNativeApps, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupNativeApps, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); typeFilters.clear(); typeFilters.append( QString( "*.3gp" ) ); typeFilters.append( QString( "*.mp4" ) ); typeFilters.append( QString( "*.nim" ) ); - typeFilters.append( QString( "*.rm" ) ); - typeFilters.append( QString( "*.rv" ) ); + typeFilters.append( QString( "*.rm" ) ); + typeFilters.append( QString( "*.rv" ) ); typeFilters.append( QString( "*.wmv" ) ); typeFilters.append( QString( "*.3g2" ) ); - typeFilters.append( QString( "*.rmvb" ) ); + typeFilters.append( QString( "*.rmvb") ); + typeFilters.append( QString( "*.mkv" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupVideos, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupVideos, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); typeFilters.clear(); typeFilters.append( QString( "*.doc" ) ); @@ -98,22 +104,63 @@ typeFilters.append( QString( "*.txt" ) ); typeFilters.append( QString( "*.xls" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupDocuments, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupDocuments, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); typeFilters.clear(); typeFilters.append( QString( "*.vcs" ) ); - dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupCalendar, typeFilters )); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupCalendar, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); + // Add absolute path and use EDataRecognizeAbsolutePath method for Contacts + typeFilters.clear(); + typeFilters.append( QString( FmViewDetail_Contacts ) ); + dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupContacts, + typeFilters, FmDriveDetailsDataGroup::EDataRecognizeAbsolutePath )); return dataGroupList; } int FmDriveDetailsContent::querySizeofContent( const QString &driveName, QList &detailsSizeList, volatile bool *isStopped ) -{ - quint64 totalSize = 0; - +{ + int err = FmErrNone; + QList< FmDriveDetailsDataGroup* > dataGroupList = queryDetailsContent(); + detailsSizeList.clear(); + for( QList< FmDriveDetailsDataGroup* >::iterator it = dataGroupList.begin(); + it!= dataGroupList.end(); ++it ) { + if ( *isStopped ){ + return FmErrCancel; + } + FmDriveDetailsDataGroup* driveDetailsDataGroup = *it; + + switch( (*it)->dataRecognizeType() ) + { + case FmDriveDetailsDataGroup::EDataRecognizeExtName: + err = getDataSizeByExtName(driveName, driveDetailsDataGroup, detailsSizeList, isStopped) ; + break; + case FmDriveDetailsDataGroup::EDataRecognizeAbsolutePath: + err = getDataSizeByAbsolutePath(driveName, driveDetailsDataGroup, detailsSizeList, isStopped); + break; + default: + Q_ASSERT_X( false, "querySizeofContent", "please handle all recognize methods "); + break; + } + + // return if error occur. + if( err != FmErrNone ) { + return err; + } + } + return FmErrNone; +} + +int FmDriveDetailsContent::getDataSizeByExtName( const QString &driveName, + const FmDriveDetailsDataGroup* const dataGroup, + QList &detailsSizeList, volatile bool *isStopped ) +{ + quint64 totalSize = 0; QString path; path.clear(); @@ -122,54 +169,57 @@ } else{ path = driveName; - } - - QList< FmDriveDetailsDataGroup* > dataGroupList = queryDetailsContent(); + } + QStringList typeFilter = dataGroup->typeFilters(); + QList dirs; + dirs.append( QDir( path ) ); + while (!dirs.isEmpty()) { + QFileInfoList infoList = dirs.first().entryInfoList( QDir::NoDotAndDotDot | QDir::AllEntries ); + QFileInfoList filterInforList = dirs.first().entryInfoList( typeFilter, QDir::NoDotAndDotDot | QDir::Files ); + + for ( QFileInfoList::Iterator it = filterInforList.begin(); it != filterInforList.end(); ++it ) { + if ( *isStopped ){ + return FmErrCancel; + } + if ( it->isFile() ) { + totalSize += it->size(); + } + } + for ( QFileInfoList::Iterator it = infoList.begin(); it != infoList.end(); ++it ) { + if ( *isStopped ){ + return FmErrCancel; + } + if ( it->isDir() ) { + dirs.append( QDir( it->absoluteFilePath() ) ); + } + } + dirs.removeFirst(); + } + detailsSizeList.append( new FmDriveDetailsSize( dataGroup->dataGroups(), totalSize ) ); + return FmErrNone; + +} + +int FmDriveDetailsContent::getDataSizeByAbsolutePath( const QString &driveName, + const FmDriveDetailsDataGroup* const dataGroup, + QList &detailsSizeList, volatile bool *isStopped ) +{ + quint64 totalSize = 0; + QStringList typeFilter = dataGroup->typeFilters(); - QStringList typeFilter; - detailsSizeList.clear(); - QDir dir( path ); - - for( QList< FmDriveDetailsDataGroup* >::iterator it = dataGroupList.begin(); - it!= dataGroupList.end(); ++it ){ + for( QStringList::iterator it = typeFilter.begin(); + it!= typeFilter.end(); ++it ) { if ( *isStopped ){ return FmErrCancel; + } + QString driver(FmUtils::removePathSplash(FmUtils::getDriveNameFromPath(driveName))); + QFileInfo fileInfo(QString(driver + (*it))); + if (fileInfo.exists()) { + totalSize += fileInfo.size(); } - totalSize = 0; - typeFilter = ( *it )->typeFilters(); - - QList dirs; - dirs.append( QDir( path ) ); - - while (!dirs.isEmpty()) { - QFileInfoList infoList = dirs.first().entryInfoList( QDir::NoDotAndDotDot | QDir::AllEntries ); - QFileInfoList filterInforList = dirs.first().entryInfoList( typeFilter, QDir::NoDotAndDotDot | QDir::Files ); - - for ( QFileInfoList::Iterator it = filterInforList.begin(); it != filterInforList.end(); ++it ) { - if ( *isStopped ){ - return FmErrCancel; - } - - if ( it->isFile() ) { - totalSize += it->size(); - } - } - - for ( QFileInfoList::Iterator it = infoList.begin(); it != infoList.end(); ++it ) { - if ( *isStopped ){ - return FmErrCancel; - } - - if ( it->isDir() ) { - dirs.append( QDir( it->absoluteFilePath() ) ); - } - } - - dirs.removeFirst(); - } - - detailsSizeList.append( new FmDriveDetailsSize( ( *it )->dataGroups(), totalSize ) ); } + + detailsSizeList.append( new FmDriveDetailsSize( dataGroup->dataGroups(), totalSize ) ); return FmErrNone; } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdrivedetailstype.h --- a/filemanager/src/filemanager/src/components/fmdrivedetailstype.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmdrivedetailstype.h Thu Jul 22 16:30:56 2010 +0100 @@ -26,6 +26,12 @@ class FmDriveDetailsDataGroup { public: + // used to identify recognize method + enum TDataRecognizeType{ + EDataRecognizeExtName = 0, // recognize data by extension of filename + EDataRecognizeAbsolutePath // recognize data by ablsolute file path + }; + enum TDataGroups{ EGroupImages = 0, EGroupSoundFiles, @@ -40,8 +46,13 @@ }; public: - FmDriveDetailsDataGroup( TDataGroups dataGroups, QStringList typeFilters ) - : mDataGroups( dataGroups ), mTypeFilters( typeFilters ) {} + FmDriveDetailsDataGroup( TDataGroups dataGroups, + QStringList typeFilters, + TDataRecognizeType recognizeType ) + : mDataGroups( dataGroups ), mTypeFilters( typeFilters ), + mDataRecognizeType( recognizeType ) + { + } FmDriveDetailsDataGroup( const FmDriveDetailsDataGroup &other ) { *this = other; @@ -56,10 +67,12 @@ TDataGroups dataGroups() const { return mDataGroups; } QStringList typeFilters() const { return mTypeFilters; } + TDataRecognizeType dataRecognizeType() const { return mDataRecognizeType; } private: TDataGroups mDataGroups; QStringList mTypeFilters; + TDataRecognizeType mDataRecognizeType; }; class FmDriveDetailsSize @@ -93,7 +106,27 @@ static QList queryDetailsContent(); static int querySizeofContent( const QString &driveName, QList &detailsSizeList, volatile bool *isStopped ); - + /** + * Gets data size for single FmDriveDetailsDataGroup, the method is scan files for extension. + * @param driveName which drive is searching + * @param dataGroup which dataGroup is searching, for example, EGroupImages, EGroupSoundFiles... + * @param detailsSizeList if got result, new FmDriveDetailsSize will be appended to detailsSizeList + * @param isStopped isStopped will be set as true if user cancel this operation + * @return Filemanage wide error. Please refer to fmdefine.h + */ + static int getDataSizeByExtName( const QString &driveName, const FmDriveDetailsDataGroup* const dataGroup, + QList &detailsSizeList, volatile bool *isStopped ); + + /** + * Gets data size for single FmDriveDetailsDataGroup, the method is find file of absolute path + * @param driveName which drive is searching + * @param dataGroup which dataGroup is searching, for example, EGroupContacts... + * @param detailsSizeList if got result, new FmDriveDetailsSize will be appended to detailsSizeList + * @param isStopped isStopped will be set as true if user cancel this operation + * @return Filemanage wide error. Please refer to fmdefine.h + */ + static int getDataSizeByAbsolutePath( const QString &driveName, const FmDriveDetailsDataGroup* const dataGroup, + QList &detailsSizeList, volatile bool *isStopped ); }; class FmFolderDetails diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdrivequery.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/src/components/fmdrivequery.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,93 @@ +/* + * 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: + * + * + * Description: + * The source file of backup drive query of file manager + */ + +#include "fmdrivequery.h" +#include "fmviewmanager.h" +#include "fmbackuprestorehandler.h" + +#include +#include "hblistview.h" + +FmDriveQuery::FmDriveQuery( QGraphicsItem *parent ) : FmDialog( parent ) +{ + mContentWidget = new QGraphicsWidget(); + setContentWidget(mContentWidget); + + QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout(); + vLayout->setOrientation( Qt::Vertical ); + + mListView = new HbListView(); + vLayout->addItem( mListView ); + + mListView->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); + + this->setTimeout( NoTimeout ); + mContentWidget->setLayout( vLayout ); + + connect( mListView, SIGNAL( activated ( const QModelIndex& ) ), this, SLOT( activated( const QModelIndex& ) ) ); + this->setDismissPolicy( NoDismiss ); + + + mDriveModel = new FmDriveModel( this, + FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume, this ); + mListView->setModel( mDriveModel ); + + // connect refreshModel signal of viewmanager for drive insert/remove event. + connect( FmViewManager::viewManager(), SIGNAL( refreshModel( QString ) ), + this, SLOT( refreshModel( QString ) ) ); +} + +FmDriveQuery::~FmDriveQuery(void) +{ + delete mDriveModel; + mDriveModel = 0; +} + +void FmDriveQuery::getDriveList( QStringList &driveList ) +{ + // provide drive list which is got from backup engine wrapper. + FmViewManager::viewManager()->operationService()->backupRestoreHandler()->getBackupDriveList( driveList ); +} + +void FmDriveQuery::activated( const QModelIndex &index ) +{ + QString driveName( mDriveModel->driveName( index ) ); + + // if drive is not available, ignore activate signal. + FmDriverInfo driveInfo = FmUtils::queryDriverInfo( driveName ); + if( !( driveInfo.driveState() & FmDriverInfo::EDriveAvailable ) ) { + return; + } + + mSelectedDrive = driveName; + close(); +} + +QString FmDriveQuery::selectedDrive() const +{ + return mSelectedDrive; +} + +void FmDriveQuery::refreshModel( QString path ) +{ + if( !path.isEmpty() ) { + // ignore non-empty refresh signal as it means change of folder/file, not drive. + return; + } + mDriveModel->refresh(); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmdrivequery.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/src/components/fmdrivequery.h Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,60 @@ +/* + * 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: + * + * + * Description: + * The header file of backup drive query of of file manager + */ +#ifndef FMDRIVEQUERY_H +#define FMDRIVEQUERY_H + +#include "fmcommon.h" +#include "fmdialog.h" +#include "fmdrivemodel.h" + +#include +#include +#include +#include + +class HbListView; +class QGraphicsWidget; + +// CLASS DECLARATION +/** + * This class is used for drive select query dialog + * + */ +class FmDriveQuery : public FmDialog, public FmDriveListProvider +{ + Q_OBJECT +public: + FmDriveQuery( QGraphicsItem *parent = 0 ); + ~FmDriveQuery(); + QString selectedDrive() const; + + // from FmDriveListProvider + virtual void getDriveList( QStringList &driveList ); + +public slots: + void activated(const QModelIndex &index); + void refreshModel( QString path ); +private: + QGraphicsWidget *mContentWidget; /// Content widget of popup dialog + HbListView *mListView; /// list view + FmDriveModel *mDriveModel; /// drive model + + QString mSelectedDrive; +}; + +#endif //FMDRIVEQUERY_H diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmmessagebox.cpp --- a/filemanager/src/filemanager/src/components/fmmessagebox.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmmessagebox.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -19,6 +19,13 @@ #include "fmmessagebox.h" #include +void FmMessageBox::information( const QString &informationText ) +{ + HbMessageBox::information ( informationText, + this, SLOT(dialogClosed(HbAction*)) ); + mEventLoop.exec(); +} + bool FmMessageBox::question( const QString &questionText, const QString &primaryButtonText, const QString &secondaryButtonText ) { diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmmessagebox.h --- a/filemanager/src/filemanager/src/components/fmmessagebox.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmmessagebox.h Thu Jul 22 16:30:56 2010 +0100 @@ -33,6 +33,8 @@ ~FmMessageBox() { } + void information( const QString &informationText ); + bool question( const QString &questionText, const QString &primaryButtonText, const QString &secondaryButtonText ); public slots: diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmviewdetailsdialog.cpp --- a/filemanager/src/filemanager/src/components/fmviewdetailsdialog.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmviewdetailsdialog.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -19,13 +19,14 @@ #include "fmviewdetailsdialog.h" #include "fmutils.h" #include "fmviewdetailsitem.h" -#include "fmdatalistmodel.h" #include "fmdrivedetailstype.h" #include "fmviewmanager.h" -#include #include #include +#include +#include +#include #include #include @@ -42,7 +43,8 @@ mSizeofJava( 0 ), mSizeofNativeFiles( 0 ), mSizeofDocument( 0 ), - mSizeofCalendar( 0 ) + mSizeofCalendar( 0 ), + mSizeofContacts( 0 ) { init(); @@ -55,11 +57,6 @@ mListView->setModel( 0 ); delete mListView; } - - if( mDirModel ){ - delete mDirModel; - } - } void FmViewDetailsDialog::init() @@ -70,20 +67,20 @@ mListView = new HbListView( this ); setContentWidget( mListView ); - mDataListModel = new FmDataListModel(); + // init QStardardItemModel as 0 row and 1 column + mDataListModel = new QStandardItemModel( 0, 1 ); mListView->setModel( mDataListModel ); - mListView->setItemPrototype( new FmViewDetailsItem( this ) ); + mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape); mOkAction = new HbAction( this ); - mOkAction->setText( tr("ok") ); + mOkAction->setText( hbTrId("txt_common_button_ok") ); setPrimaryAction( mOkAction ); - - mDirModel = new QDirModel(); } void FmViewDetailsDialog::setDriveDetails( const QString &driverName ) { const QString dataDir = "C:\\data"; + QStringList dataList; mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_memory_details" ) ); quint64 sizeOfOthers = 0; @@ -94,132 +91,85 @@ mDataListModel->removeRows( 0, mDataListModel->rowCount() ); mDataListModel->insertRows( 0, EDriveDetailEntryEnd ); - detailString.append( hbTrId ( "txt_fmgr_dblist_memory_name" ) ); - QVariant variant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryName ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::fillDriveVolume( driverInfo.name(), true ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryName ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_memory_name" ); + dataList << FmUtils::fillDriveVolume( driverInfo.name(), true ) ; + mDataListModel->setData( mDataListModel->index( EMemoryName, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_size_memory" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemorySize ), variant, Qt::DisplayRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_size_memory" ); + dataList << FmUtils::formatStorageSize( driverInfo.size() ) ; + mDataListModel->setData( mDataListModel->index( EMemorySize, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( driverInfo.size() ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemorySize ), variant, Qt::UserRole ); - - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_free_memory" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryFree ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( driverInfo.freeSize() ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryFree ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_free_memory" ); + dataList << FmUtils::formatStorageSize( driverInfo.freeSize() ); + mDataListModel->setData( mDataListModel->index( EMemoryFree, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers = driverInfo.size() - driverInfo.freeSize(); // getContentDetails( dataDir ); - detailString.clear(); - detailString.append( hbTrId ( "Images:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryImages ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofImage ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryImages ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Images:" ) ; + dataList << FmUtils::formatStorageSize( mSizeofImage ); + mDataListModel->setData( mDataListModel->index( EMemoryImages, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofImage; - detailString.clear(); - detailString.append( hbTrId ( "Sounds:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemorySounds ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofSounds ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemorySounds ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Sounds:" ); + dataList << FmUtils::formatStorageSize( mSizeofSounds ); + mDataListModel->setData( mDataListModel->index( EMemorySounds, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofSounds; - detailString.clear(); - detailString.append( hbTrId ( "Video:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryVideos ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofVideo ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryVideos ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Video:" ); + dataList << FmUtils::formatStorageSize( mSizeofVideo ); + mDataListModel->setData( mDataListModel->index( EMemoryVideos, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofVideo; - detailString.clear(); - detailString.append( hbTrId ( "Java Files:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryMidpJava ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofJava ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryMidpJava ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Java Files:" ); + dataList << FmUtils::formatStorageSize( mSizeofJava ); + mDataListModel->setData( mDataListModel->index( EMemoryMidpJava, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofJava; - detailString.clear(); - detailString.append( hbTrId ( "Sis files:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryNativeApps ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofNativeFiles ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryNativeApps ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Sis files:" ); + dataList << FmUtils::formatStorageSize( mSizeofNativeFiles ); + mDataListModel->setData( mDataListModel->index( EMemoryNativeApps, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofNativeFiles; - detailString.clear(); - detailString.append( hbTrId ( "Documents:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryDocuments ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofDocument ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryDocuments ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Documents:" ); + dataList << FmUtils::formatStorageSize( mSizeofDocument ); + mDataListModel->setData( mDataListModel->index( EMemoryDocuments, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofDocument; - detailString.clear(); - detailString.append( hbTrId ( "Calendars:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryCalendar ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofCalendar ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryCalendar ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "Calendars:" ); + dataList << FmUtils::formatStorageSize( mSizeofCalendar ); + mDataListModel->setData( mDataListModel->index( EMemoryCalendar, 0 ), dataList, Qt::DisplayRole ); sizeOfOthers -= mSizeofCalendar; - detailString.clear(); - detailString.append( hbTrId ( "Others:" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EMemoryOthers ), variant, Qt::DisplayRole ); + dataList.clear(); + dataList << hbTrId ( "Contacts:" ); + dataList << FmUtils::formatStorageSize( mSizeofContacts ); + mDataListModel->setData( mDataListModel->index( EMemoryContacts, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( sizeOfOthers ) ); - variant = QVariant( detailString );; - mDataListModel->setData( mDataListModel->index( EMemoryOthers ), variant, Qt::UserRole ); + sizeOfOthers -= mSizeofContacts; + + dataList.clear(); + dataList << hbTrId ( "Others:" ); + dataList << FmUtils::formatStorageSize( sizeOfOthers ); + mDataListModel->setData( mDataListModel->index( EMemoryOthers, 0 ), dataList, Qt::DisplayRole ); } void FmViewDetailsDialog::setFolderDetails( const QString &folderPath ) @@ -227,75 +177,44 @@ mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_folder_details" ) ); QString detailString( "" ); - - QModelIndex modelIndex = mDirModel->index( folderPath ); - + QStringList dataList; + QFileInfo fileInfo( folderPath ); + mDataListModel->removeRows( 0, mDataListModel->rowCount() ); mDataListModel->insertRows( 0, EFolderDetailEntryEnd ); - detailString.append( hbTrId ( "txt_fmgr_dblist_name_folder" ) ); - QVariant variant( detailString ); - mDataListModel->setData( mDataListModel->index( EFolderName ), variant, Qt::DisplayRole ); + dataList << hbTrId ( "txt_fmgr_dblist_name_folder" ); + dataList << fileInfo.fileName(); + mDataListModel->setData( mDataListModel->index( EFolderName, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( mDirModel->fileName( modelIndex ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFolderName ), variant, Qt::UserRole ); - - QFileInfo fileInfo = mDirModel->fileInfo( mDirModel->index( folderPath ) ); QDateTime modifiedDateTime = fileInfo.lastModified (); QDate modifiedDate = modifiedDateTime.date(); QTime modifiedTime = modifiedDateTime.time(); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_date_folder" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EModifiedDate ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( modifiedDate.toString() ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EModifiedDate ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_date_folder" ); + dataList << modifiedDate.toString(); + mDataListModel->setData( mDataListModel->index( EModifiedDate, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_time_folder" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EModifiedTime ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( modifiedTime.toString() ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EModifiedTime ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_time_folder" ); + dataList << modifiedTime.toString(); + mDataListModel->setData( mDataListModel->index( EModifiedTime, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_size_folder" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFolderSize ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( mSizeofFolder ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFolderSize ), variant, Qt::UserRole ); - - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_subfolders" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( ENumofSubFolders ), variant, Qt::DisplayRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_size_folder" ); + dataList << FmUtils::formatStorageSize( mSizeofFolder ); + mDataListModel->setData( mDataListModel->index( EFolderSize, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString = QString::number( mNumofSubFolers ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( ENumofSubFolders ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_subfolders" ); + dataList << QString::number( mNumofSubFolers ); + mDataListModel->setData( mDataListModel->index( ENumofSubFolders, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_files" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( ENumofFiles ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString = QString::number( mNumofFiles ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( ENumofFiles ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_files" ); + dataList << QString::number( mNumofFiles ); + mDataListModel->setData( mDataListModel->index( ENumofFiles, 0 ), dataList, Qt::DisplayRole ); } void FmViewDetailsDialog::setFileDetails( const QString &filePath ) @@ -303,70 +222,47 @@ mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_file_details") ); QString detailString( "" ); - - QModelIndex modelIndex = mDirModel->index( filePath ); + QStringList dataList; + + QFileInfo fileInfo( filePath ); mDataListModel->removeRows( 0, mDataListModel->rowCount() ); mDataListModel->insertRows( 0, EFileDetailEntryEnd ); - detailString.append( hbTrId ( "txt_fmgr_dblist_name_file" ) ); - QVariant variant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileName ), variant, Qt::DisplayRole ); + dataList << hbTrId ( "txt_fmgr_dblist_name_file" ); + dataList << fileInfo.fileName(); + mDataListModel->setData( mDataListModel->index( EFileName, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( mDirModel->fileName( modelIndex ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileName ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_type_file" ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_type_file" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileType ), variant, Qt::DisplayRole ); - QFileInfo fileInfo = mDirModel->fileInfo( mDirModel->index( filePath ) ); QString fileType = FmUtils::getFileType( filePath ); if( fileType.isEmpty() ){ fileType.append( fileInfo.suffix() ); } - detailString.clear(); - detailString.append( fileType ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileType ), variant, Qt::UserRole ); + dataList << fileType; + mDataListModel->setData( mDataListModel->index( EFileType, 0 ), dataList, Qt::DisplayRole ); QDateTime modifiedDateTime = fileInfo.lastModified (); QDate modifiedDate = modifiedDateTime.date(); QTime modifiedTime = modifiedDateTime.time(); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_date_file" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileModifiedDate ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( modifiedDate.toString() ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileModifiedDate ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_date_file" ); + dataList << modifiedDate.toString(); + mDataListModel->setData( mDataListModel->index( EFileModifiedDate, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_time_file" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileModifiedTime ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( modifiedTime.toString() ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileModifiedTime ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_time_file" ); + dataList << modifiedTime.toString(); + mDataListModel->setData( mDataListModel->index( EFileModifiedTime, 0 ), dataList, Qt::DisplayRole ); - detailString.clear(); - detailString.append( hbTrId ( "txt_fmgr_dblist_size_file" ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileSize ), variant, Qt::DisplayRole ); - - detailString.clear(); - detailString.append( FmUtils::formatStorageSize( fileInfo.size() ) ); - variant = QVariant( detailString ); - mDataListModel->setData( mDataListModel->index( EFileSize ), variant, Qt::UserRole ); + dataList.clear(); + dataList << hbTrId ( "txt_fmgr_dblist_size_file" ); + dataList << FmUtils::formatStorageSize( fileInfo.size() ); + mDataListModel->setData( mDataListModel->index( EFileSize, 0 ), dataList, Qt::DisplayRole ); } void FmViewDetailsDialog::setNumofSubfolders( int numofSubFolders, int numofFiles, quint64 sizeofFolder ) @@ -388,7 +284,8 @@ mSizeofJava = 0; mSizeofNativeFiles = 0; mSizeofDocument = 0; - mSizeofCalendar = 0; + mSizeofCalendar = 0; + mSizeofContacts = 0; for( QList< FmDriveDetailsSize* >::iterator it = detailsSizeList.begin(); it!= detailsSizeList.end(); ++it ){ @@ -396,44 +293,47 @@ switch( ( *it )->dataGroups() ){ case FmDriveDetailsDataGroup::EGroupImages: { - mSizeofImage = ( *it )->size(); + mSizeofImage = ( *it )->size(); + break; } - break; case FmDriveDetailsDataGroup::EGroupSoundFiles: { - mSizeofSounds = ( *it )->size(); + mSizeofSounds = ( *it )->size(); + break; } - break; case FmDriveDetailsDataGroup::EGroupMidpJava: { - mSizeofJava = ( *it )->size(); + mSizeofJava = ( *it )->size(); + break; } - break; case FmDriveDetailsDataGroup::EGroupNativeApps: { - mSizeofNativeFiles = ( *it )->size(); + mSizeofNativeFiles = ( *it )->size(); + break; } - break; case FmDriveDetailsDataGroup::EGroupVideos: { - mSizeofVideo = ( *it )->size(); + mSizeofVideo = ( *it )->size(); + break; } - break; case FmDriveDetailsDataGroup::EGroupDocuments: { - mSizeofDocument = ( *it )->size(); + mSizeofDocument = ( *it )->size(); + break; } - break; case FmDriveDetailsDataGroup::EGroupCalendar: { - mSizeofCalendar = ( *it )->size(); + mSizeofCalendar = ( *it )->size(); + break; } + case FmDriveDetailsDataGroup::EGroupContacts: + { + mSizeofContacts = ( *it )->size(); break; + } default: break; - } - } } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmviewdetailsdialog.h --- a/filemanager/src/filemanager/src/components/fmviewdetailsdialog.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmviewdetailsdialog.h Thu Jul 22 16:30:56 2010 +0100 @@ -22,8 +22,7 @@ #include "fmcommon.h" #include "fmdialog.h" -class FmDataListModel; -class QDirModel; +class QStandardItemModel; class HbListView; class HbLabel; class HbAction; @@ -45,6 +44,7 @@ EMemoryNativeApps, EMemoryDocuments, EMemoryCalendar, + EMemoryContacts, EMemoryOthers, EDriveDetailEntryEnd }; @@ -95,20 +95,20 @@ HbLabel *mHeaderLabel; HbAction *mOkAction; - FmDataListModel *mDataListModel; - QDirModel *mDirModel; + QStandardItemModel *mDataListModel; QString mDrive; int mNumofSubFolers; int mNumofFiles; - int mSizeofFolder; - int mSizeofImage; - int mSizeofSounds; - int mSizeofVideo; - int mSizeofJava; - int mSizeofNativeFiles; - int mSizeofDocument; - int mSizeofCalendar; + quint64 mSizeofFolder; + quint64 mSizeofImage; + quint64 mSizeofSounds; + quint64 mSizeofVideo; + quint64 mSizeofJava; + quint64 mSizeofNativeFiles; + quint64 mSizeofDocument; + quint64 mSizeofCalendar; + quint64 mSizeofContacts; }; #endif /* FMVIEWDETAILSDIALOG_H_ */ diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmviewdetailsitem.cpp --- a/filemanager/src/filemanager/src/components/fmviewdetailsitem.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmviewdetailsitem.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -26,10 +26,10 @@ FmViewDetailsItem::FmViewDetailsItem( QGraphicsItem *parent ) : HbListViewItem( parent ), mDetailsContentLabel( 0 ), - mDetailsLabel( 0 ) + mDetailsLabel( 0 ), + mLayout( 0 ) { - init(); } FmViewDetailsItem::~FmViewDetailsItem() @@ -38,7 +38,7 @@ HbAbstractViewItem *FmViewDetailsItem::createItem() { - return new FmViewDetailsItem( parentItem() ); + return new FmViewDetailsItem( *this ); } bool FmViewDetailsItem::canSetModelIndex( const QModelIndex &index ) const @@ -54,6 +54,9 @@ void FmViewDetailsItem::updateChildItems() { + if( !mLayout ) { + init(); + } QString string = modelIndex().data( Qt::DisplayRole ).toString(); mDetailsContentLabel->setPlainText( string ); @@ -66,25 +69,25 @@ void FmViewDetailsItem::init() { - QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(); + mLayout = new QGraphicsLinearLayout(); if( FmViewManager::viewManager()->orientation() == Qt::Vertical ){ - layout->setOrientation( Qt::Vertical ); + mLayout->setOrientation( Qt::Vertical ); } else{ - layout->setOrientation( Qt::Horizontal ); + mLayout->setOrientation( Qt::Horizontal ); } mDetailsContentLabel = new HbLabel(""); mDetailsContentLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); - layout->addItem( mDetailsContentLabel ); - layout->setAlignment( mDetailsContentLabel, Qt::AlignLeft ); + mLayout->addItem( mDetailsContentLabel ); + mLayout->setAlignment( mDetailsContentLabel, Qt::AlignLeft ); mDetailsLabel = new HbLabel(""); mDetailsLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - layout->addItem( mDetailsLabel ); - layout->setAlignment( mDetailsLabel, Qt::AlignLeft ); + mLayout->addItem( mDetailsLabel ); + mLayout->setAlignment( mDetailsLabel, Qt::AlignLeft ); - setLayout( layout ); + setLayout( mLayout ); } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/components/fmviewdetailsitem.h --- a/filemanager/src/filemanager/src/components/fmviewdetailsitem.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/components/fmviewdetailsitem.h Thu Jul 22 16:30:56 2010 +0100 @@ -22,6 +22,7 @@ #include class HbLabel; +class QGraphicsLinearLayout; class FmViewDetailsItem : public HbListViewItem { @@ -45,6 +46,8 @@ private: HbLabel *mDetailsContentLabel; HbLabel *mDetailsLabel; + + QGraphicsLinearLayout *mLayout; }; #endif /* FMVIEWDETAILSITEM_H */ diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmdriverlistwidget.cpp --- a/filemanager/src/filemanager/src/fmdriverlistwidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmdriverlistwidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -25,20 +25,19 @@ #include "fmdrivemodel.h" #include "fmfiledialog.h" -#include +#include #include #include #include #include #include -#include #include FmDriverListWidget::FmDriverListWidget( QGraphicsItem *parent ) -: HbWidget( parent ), - mCurrentItem( 0 ), - mOperationService( 0 ), mListLongPressed( false ) +: HbWidget( parent ), mListView(0), mModel(0), + mCurrentItem(0), mSearchPanel(0), mOperationService(0), + mFileSystemWatcher(0), mLayout(0), mContextMenu(0), mListLongPressed( false ) { init(); mOperationService = FmViewManager::viewManager()->operationService(); @@ -52,6 +51,9 @@ FmDriverListWidget::~FmDriverListWidget() { + if (mContextMenu) { + mContextMenu->deleteLater(); + } } void FmDriverListWidget::on_list_activated( const QModelIndex &index ) @@ -86,7 +88,7 @@ mSearchPanel->hide(); // mLayout->addItem( mSearchPanel ); - mListView->setItemPrototype( new DiskListViewItem() ); + mListView->setItemPrototype( new DiskListViewItem(this) ); connect( mListView, SIGNAL( activated( const QModelIndex & ) ), this, SLOT( on_list_activated( const QModelIndex & ) ) ); connect( mListView, SIGNAL( pressed( const QModelIndex & ) ), @@ -96,7 +98,7 @@ this, SLOT( on_list_longPressed( HbAbstractViewItem *, const QPointF & ) ) ); connect( mSearchPanel, SIGNAL( searchOptionsClicked() ), - this, SLOT( on_searchPanel_searchOptionsClicked() ) ); + this, SLOT( on_searchPanel_searchOptionsClicked() ), Qt::QueuedConnection ); connect( mSearchPanel, SIGNAL( criteriaChanged( const QString & ) ), this, SLOT( on_searchPanel_criteriaChanged( const QString & ) ) ); @@ -119,22 +121,25 @@ mListLongPressed = true; mCurrentItem = item; QString diskName = mModel->driveName( mCurrentItem->modelIndex() ); - - FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName ); + + if( !mContextMenu ) { + mContextMenu = new HbMenu(); + } else { + mContextMenu->clearActions(); + } + FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName ); FmDriverInfo::DriveState state = driverInfo.driveState(); if( !( state & FmDriverInfo::EDriveNotPresent ) ) { - HbMenu *contextMenu = new HbMenu(); - if( state & FmDriverInfo::EDriveAvailable ) { HbAction *viewAction = new HbAction(); viewAction->setObjectName( "viewAction" ); viewAction->setText( hbTrId( "txt_fmgr_menu_view_details_memory" ) ); - contextMenu->addAction( viewAction ); + mContextMenu->addAction( viewAction ); //state = 0x210; connect( viewAction, SIGNAL( triggered() ), - this, SLOT( on_viewAction_triggered() ) ); + this, SLOT( on_viewAction_triggered() ), Qt::QueuedConnection ); } if( ( state & FmDriverInfo::EDriveAvailable ) && ( state & FmDriverInfo::EDriveRemovable ) && !( state & FmDriverInfo::EDriveMassStorage ) ){ @@ -143,45 +148,45 @@ HbAction *renameAction = new HbAction(); renameAction->setObjectName( "renameAction" ); renameAction->setText( hbTrId( "txt_fmgr_menu_rename" ) ); - contextMenu->addAction( renameAction ); + mContextMenu->addAction( renameAction ); connect( renameAction, SIGNAL( triggered() ), - this, SLOT( on_renameAction_triggered() ) ); + this, SLOT( on_renameAction_triggered() ), Qt::QueuedConnection ); } else{ HbAction *nameAction = new HbAction(); nameAction->setObjectName( "nameAction" ); nameAction->setText( hbTrId( "txt_fmgr_menu_name" ) ); - contextMenu->addAction( nameAction ); + mContextMenu->addAction( nameAction ); connect( nameAction, SIGNAL( triggered() ), - this, SLOT( on_nameAction_triggered() ) ); + this, SLOT( on_nameAction_triggered() ), Qt::QueuedConnection ); } if( !( state & FmDriverInfo::EDriveUsbMemory ) ) { // MMC if( state & FmDriverInfo::EDrivePasswordProtected ){ HbAction *changePwdAction = new HbAction(); changePwdAction->setObjectName( "changePwdAction" ); changePwdAction->setText( hbTrId( "txt_fmgr_menu_change_password" ) ); - contextMenu->addAction( changePwdAction ); + mContextMenu->addAction( changePwdAction ); HbAction *removePwdAction = new HbAction(); removePwdAction->setObjectName( "removePwdAction" ); removePwdAction->setText( hbTrId( "txt_fmgr_menu_remove_password" ) ); - contextMenu->addAction( removePwdAction ); + mContextMenu->addAction( removePwdAction ); connect( changePwdAction, SIGNAL( triggered() ), - this, SLOT( on_changePwdAction_triggered() ) ); + this, SLOT( on_changePwdAction_triggered() ), Qt::QueuedConnection ); connect( removePwdAction, SIGNAL( triggered() ), - this, SLOT( on_removePwdAction_triggered() ) ); + this, SLOT( on_removePwdAction_triggered() ), Qt::QueuedConnection ); } else{ HbAction *setPwdAction = new HbAction(); setPwdAction->setObjectName( "setPwdAction" ); setPwdAction->setText( hbTrId( "txt_fmgr_menu_set_password" ) ); - contextMenu->addAction( setPwdAction ); + mContextMenu->addAction( setPwdAction ); connect( setPwdAction, SIGNAL( triggered() ), - this, SLOT( on_setPwdAction_triggered() ) ); + this, SLOT( on_setPwdAction_triggered() ), Qt::QueuedConnection ); } } } @@ -190,10 +195,10 @@ HbAction *ejectAction = new HbAction(); ejectAction->setObjectName( "ejectAction" ); ejectAction->setText( hbTrId( "txt_fmgr_menu_eject" ) ); - contextMenu->addAction( ejectAction ); + mContextMenu->addAction( ejectAction ); connect( ejectAction, SIGNAL( triggered() ), - this, SLOT( on_ejectAction_triggered() ) ); + this, SLOT( on_ejectAction_triggered() ), Qt::QueuedConnection ); } #ifndef _DEBUG_ENABLE_FORMATMENU_ @@ -203,10 +208,10 @@ HbAction *formatAction = new HbAction(); formatAction->setObjectName( "formatAction" ); formatAction->setText( hbTrId( "txt_fmgr_menu_format" ) ); - contextMenu->addAction( formatAction ); + mContextMenu->addAction( formatAction ); connect( formatAction, SIGNAL( triggered() ), - this, SLOT( on_formatAction_triggered() ) ); + this, SLOT( on_formatAction_triggered() ), Qt::QueuedConnection ); #ifndef _DEBUG_ENABLE_FORMATMENU_ } #endif @@ -215,15 +220,18 @@ HbAction *unLockedAction = new HbAction(); unLockedAction->setObjectName( "unLockedAction" ); unLockedAction->setText( hbTrId( "Unlock" ) ); - contextMenu->addAction( unLockedAction ); + mContextMenu->addAction( unLockedAction ); connect( unLockedAction, SIGNAL( triggered() ), - this, SLOT( on_unLockedAction_triggered() ) ); + this, SLOT( on_unLockedAction_triggered() ), Qt::QueuedConnection ); } - contextMenu->setPreferredPos( coords ); - contextMenu->open(); } - + if( mContextMenu->actions().count() > 0 ) { + mContextMenu->setPreferredPos( coords ); + mContextMenu->open(); + } else { + emit activated( diskName ); + } } void FmDriverListWidget::on_list_pressed( const QModelIndex & index ) @@ -245,24 +253,24 @@ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName ); if ( state & FmDriverInfo::EDriveWriteProtected ){ - HbMessageBox::information( hbTrId( "Unable to perform operation. Memory card is read only." ) ); + FmDlgUtils::information( hbTrId( "Unable to perform operation. Memory card is read only." ) ); return; } - QString title( tr( "Drive name ") ); + QString title( hbTrId( "Drive name ") ); QString volumeName = driverInfo.volumeName(); QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) ); while( FmDlgUtils::showTextQuery( title, volumeName, false, FmMaxLengthofDriveName, associatedDrives ) ){ int err = FmUtils::renameDrive( diskName, volumeName ); if ( err == FmErrNone ){ - HbMessageBox::information( hbTrId( "The name has been changed!" ) ); + FmDlgUtils::information( hbTrId( "The name has been changed!" ) ); mModel->refresh(); break; } else if( err == FmErrBadName ) { - HbMessageBox::information( hbTrId( "Illegal characters! Use only letters and numbers." ) ); + FmDlgUtils::information( hbTrId( "Illegal characters! Use only letters and numbers." ) ); } else{ - HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) ); + FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) ); break; } } @@ -288,18 +296,18 @@ QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) ); if( FmDlgUtils::showMultiPasswordQuery( firstLabel, secondLabel, newPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) { if ( FmUtils::setDrivePwd( diskName, oldPwd, newPwd ) == 0 ){ - HbMessageBox::information( hbTrId( "The password has been set!" ) ); + FmDlgUtils::information( hbTrId( "The password has been set!" ) ); } else{ - HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) ); + FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) ); } } } void FmDriverListWidget::on_changePwdAction_triggered() { - QString title( hbTrId( "Password: ") ); - QString firstLabel( hbTrId( "New Password: ") ); + QString title( hbTrId( "txt_common_dialog_password") ); + QString firstLabel( hbTrId( "txt_common_dialog_new_password") ); QString secondLabel( hbTrId( "Confirm new Password: ") ); QString oldPwd; @@ -312,9 +320,9 @@ if ( FmUtils::checkDrivePwd( diskName, oldPwd ) == 0 ){ if( FmDlgUtils::showMultiPasswordQuery( firstLabel, secondLabel, newPwd ) ){ if ( FmUtils::setDrivePwd( diskName, oldPwd, newPwd ) == 0 ){ - HbMessageBox::information( hbTrId( "The password has been changed!" ) ); + FmDlgUtils::information( hbTrId( "The password has been changed!" ) ); } else { - HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) ); + FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) ); } break; } else { @@ -322,7 +330,7 @@ break; } } else { - HbMessageBox::information( hbTrId( "The password is incorrect, try again!" ) ); + FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) ); } } @@ -335,21 +343,20 @@ QString oldPwd; QString diskName = mModel->driveName( mCurrentItem->modelIndex() ); - //QString password( tr( "a ") ); - if( FmDlgUtils::question( tr( "Do you want to remove the password? Memory card becomes unlocked." ) ) ){ + if( FmDlgUtils::question( hbTrId( "Do you want to remove the password? Memory card becomes unlocked." ) ) ){ QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) ); while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) { if ( FmUtils::checkDrivePwd( diskName, oldPwd ) == 0 ) { if ( FmUtils::removeDrivePwd( diskName, oldPwd ) == 0 ){ - HbMessageBox::information( hbTrId( "The password has been removed!" ) ); + FmDlgUtils::information( hbTrId( "The password has been removed!" ) ); } else{ - HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) ); + FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) ); } break; } else { - HbMessageBox::information( hbTrId( "The password is incorrect, try again!" ) ); + FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) ); } } @@ -368,18 +375,18 @@ while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd ) ) { int err = FmUtils::unlockDrive( diskName, oldPwd ); if( err == FmErrNone ) { - HbMessageBox::information( hbTrId( "The memory is unlocked!" ) ); + FmDlgUtils::information( hbTrId( "The memory is unlocked!" ) ); break; } else if ( err == FmErrAccessDenied ) { - HbMessageBox::information( hbTrId( "The password is incorrect, try again!" ) ); + FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) ); } else if (err == FmErrAlreadyExists ) { - HbMessageBox::information( hbTrId( "The disk has already been unlocked!" ) ); + FmDlgUtils::information( hbTrId( "The disk has already been unlocked!" ) ); break; } else if( err == FmErrNotSupported ) { - HbMessageBox::information( hbTrId( "The media does not support password locking!" ) ); + FmDlgUtils::information( hbTrId( "The media does not support password locking!" ) ); break; } else { - HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) ); + FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) ); break; } } @@ -391,7 +398,7 @@ if( FmDlgUtils::question( hbTrId( "Format? Data will be deleted during formatting." ) ) ){ if( FmErrNone != mOperationService->asyncFormat( diskName ) ) - HbMessageBox::information( hbTrId( "Formatting failed." ) ); + FmDlgUtils::information( hbTrId( "Formatting failed." ) ); } } @@ -416,6 +423,9 @@ FmUtils::getDriveList( driveList, true ); if(driveList.count() > 0 ) { mFindTargetPath = driveList.first(); + if( FmUtils::isDriveC( mFindTargetPath ) ) { + mFindTargetPath = QString( Folder_C_Data ); + } } else { mFindTargetPath.clear(); } @@ -425,8 +435,8 @@ void FmDriverListWidget::on_searchPanel_searchOptionsClicked() { - mFindTargetPath = FmFileDialog::getExistingDirectory( 0, hbTrId( "Look in:" ), - QString(""), QStringList() ); + mFindTargetPath = FmUtils::fillPathWithSplash( FmFileDialog::getExistingDirectory( 0, hbTrId( "Look in:" ), + QString(""), QStringList() ) ); } void FmDriverListWidget::on_searchPanel_criteriaChanged( const QString &criteria ) diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmdriverlistwidget.h --- a/filemanager/src/filemanager/src/fmdriverlistwidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmdriverlistwidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -23,11 +23,12 @@ #include "fmoperationservice.h" #include -class QFileSystemWatcher; +class FmDriveModel; class HbListView; class HbAbstractViewItem; class HbSearchPanel; -class FmDriveModel; +class HbMenu; +class QFileSystemWatcher; class QGraphicsLinearLayout; @@ -80,6 +81,7 @@ QString mFindTargetPath; QGraphicsLinearLayout *mLayout; + HbMenu *mContextMenu; //used to avoid activate when long press list. bool mListLongPressed; diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmdriverview.cpp --- a/filemanager/src/filemanager/src/fmdriverview.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmdriverview.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -23,7 +23,6 @@ #include -#include #include #include #include @@ -82,7 +81,7 @@ { mDriverList = new FmDriverListWidget( this ); connect( mDriverList, SIGNAL( activated( const QString& ) ), - this, SLOT( activated( const QString& ) ) ); + this, SLOT( activated( const QString& ) ), Qt::QueuedConnection ); connect( mDriverList, SIGNAL( startSearch( const QString&, const QString& ) ), this, SLOT( startSearch( const QString&, const QString& ) ) ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfilebrowsewidget.cpp --- a/filemanager/src/filemanager/src/fmfilebrowsewidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfilebrowsewidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -24,9 +24,10 @@ #include "fmviewmanager.h" #include "fmfiledialog.h" #include "fmdlgutils.h" +#include "fmfileiconprovider.h" #include -#include +#include #include #include @@ -36,9 +37,14 @@ #include #include #include -#include #include +// These define comes from implementation of QFileSystemModel +#define QFileSystemSortName 0 +#define QFileSystemSortSize 1 +#define QFileSystemSortType 2 +#define QFileSystemSortTime 3 + FmFileBrowseWidget::FmFileBrowseWidget( HbWidget *parent, FmFileBrowseWidget::Style style ) : HbWidget( parent ), mTreeView( 0 ), @@ -71,19 +77,11 @@ //since there is a thread running in background //if the model destroy later, the thread might not quit properly. - if( mStyle == ListStyle || mStyle == TreeStyle ) { - QFileInfo oldFileInfo = mModel->fileInfo( mListView->rootIndex() ); - if( oldFileInfo.exists() ) { - FmViewManager *viewManager = FmViewManager::viewManager(); - if( viewManager ) { - viewManager->removeWatchPath( oldFileInfo.absoluteFilePath() ); - } - } - } - mTreeView->setModel( 0 ); mListView->setModel( 0 ); delete mModel; + + delete mFileIconProvider; } QFileInfo FmFileBrowseWidget::currentPath() const @@ -124,18 +122,35 @@ QString logString = "FmFileBrowseWidget::setRootPath(" + pathName + ')'; FmLogger::log( logString ); - if( checkPathAndSetStyle( pathName ) ) { - mListView->setModel(0); - mTreeView->setModel(0); - delete mModel; - mModel = new QDirModel(this); - mListView->setModel(mModel); - mTreeView->setModel(mModel); - - mListView->setRootIndex( mModel->index( pathName ) ); - mTreeView->setRootIndex( mModel->index( pathName ) ); - FmViewManager::viewManager()->addWatchPath( pathName ); - } + int err = checkPathAndSetStyle( pathName ); + switch( err ) + { + case FmErrNone: + { + mListView->setRootIndex( mModel->setRootPath( pathName ) ); + emit currentPathChanged( pathName ); + break; + } + case FmErrPathNotExist: + { + FmDlgUtils::information( hbTrId( "Path is not exist" ) ); + break; + } + case FmErrDriveNotAvailable: + { + // do not take any action as widget set note in label already. + break; + } + case FmErrDriveDenied: + case FmErrPathDenied: + { + FmDlgUtils::information( hbTrId( "Can not access" ) ); + break; + } + default: + Q_ASSERT_X( false, "setRootPath", "please handle all error from isPathAccessabel" ); + break; + } mCurrentDrive = pathName.left( 3 ); } @@ -208,14 +223,6 @@ bool FmFileBrowseWidget::rename( const QString &oldName, const QString &newName ) { return QFile::rename( oldName, newName ); - /* - if (QFile::rename( oldName, newName )) { - QModelIndex index = mModel->index( newName ); - mModel->refresh( index ); - index = mModel->index( oldName ); - mModel->refresh( index ); - } - */ } @@ -223,11 +230,11 @@ bool FmFileBrowseWidget::cdUp() { - if (mStyle == ListStyle) { - QModelIndex index = mListView->rootIndex().parent(); - mModel->refresh(index); - if (index.isValid()) { - changeRootIndex( index ); + if (mStyle == ListStyle) { + QModelIndex parentIndex = mListView->rootIndex().parent(); + // QFileSystemModel will auto refresh for file/folder change + if (parentIndex.isValid()) { + changeRootIndex( parentIndex ); return true; } } @@ -283,7 +290,7 @@ contextMenu->addAction( viewAction ); connect( viewAction, SIGNAL( triggered() ), - this, SLOT( on_viewAction_triggered() ) ); + this, SLOT( on_viewAction_triggered() ), Qt::QueuedConnection ); //copy HbAction *copyAction = new HbAction(); @@ -292,7 +299,7 @@ contextMenu->addAction( copyAction ); connect( copyAction, SIGNAL( triggered() ), - this, SLOT( on_copyAction_triggered() ) ); + this, SLOT( on_copyAction_triggered() ), Qt::QueuedConnection ); QString filePath( mModel->filePath( item->modelIndex() ) ); @@ -307,7 +314,7 @@ contextMenu->addAction( moveAction ); connect( moveAction, SIGNAL( triggered() ), - this, SLOT( on_moveAction_triggered() ) ); + this, SLOT( on_moveAction_triggered() ), Qt::QueuedConnection ); //Delete HbAction *deleteAction = new HbAction(); @@ -316,7 +323,7 @@ contextMenu->addAction( deleteAction ); connect( deleteAction, SIGNAL( triggered() ), - this, SLOT( on_deleteAction_triggered() ) ); + this, SLOT( on_deleteAction_triggered() ), Qt::QueuedConnection ); //rename HbAction *renameAction = new HbAction(); @@ -325,7 +332,7 @@ contextMenu->addAction( renameAction ); connect( renameAction, SIGNAL( triggered() ), - this, SLOT( on_renameAction_triggered() ) ); + this, SLOT( on_renameAction_triggered() ), Qt::QueuedConnection ); } // if( fileInfo.isFile() ){ @@ -381,6 +388,8 @@ this, SLOT( on_list_activated( const QModelIndex& ) ) ); connect( this, SIGNAL( listActivated() ), this, SLOT( on_listActivated() ), Qt::QueuedConnection ); + connect( mListView, SIGNAL( pressed( const QModelIndex & ) ), + this, SLOT( on_list_pressed( const QModelIndex & ) ) ); connect( mListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ), this, SLOT( on_list_longPressed( HbAbstractViewItem *, const QPointF & ) ) ); } @@ -399,9 +408,11 @@ void FmFileBrowseWidget::initFileModel() { - mModel = new QDirModel( this ); + mModel = new QFileSystemModel( this ); mModel->setReadOnly( false ); - disconnect( mModel, SIGNAL( rowsInserted( const QModelIndex &, int, int ) ), 0 ,0 ); + + mFileIconProvider = new FmFileIconProvider(); + mModel->setIconProvider( mFileIconProvider ); } void FmFileBrowseWidget::initLayout() @@ -421,7 +432,7 @@ mSearchPanel->hide(); connect( mSearchPanel, SIGNAL( searchOptionsClicked() ), - this, SLOT( on_searchPanel_searchOptionsClicked() ) ); + this, SLOT( on_searchPanel_searchOptionsClicked() ), Qt::QueuedConnection ); connect( mSearchPanel, SIGNAL( criteriaChanged( const QString & ) ), this, SLOT( on_searchPanel_criteriaChanged( const QString & ) ) ); @@ -440,19 +451,8 @@ void FmFileBrowseWidget::changeRootIndex( const QModelIndex &index ) { - QFileInfo oldFileInfo = mModel->fileInfo( mListView->rootIndex() ); - FmViewManager::viewManager()->removeWatchPath( oldFileInfo.absoluteFilePath() ); - - mModel->refresh(index); - if ( mStyle == ListStyle ) { - mListView->setRootIndex( index ); - } else if ( mStyle == TreeStyle ) { - mTreeView->setRootIndex( index ); - } - QFileInfo fileInfo = mModel->fileInfo( mListView->rootIndex() ); - QString string = fileInfo.absoluteFilePath(); - emit currentPathChanged( string ); - FmViewManager::viewManager()->addWatchPath( string ); + QString filePath = mModel->fileInfo( index ).absoluteFilePath(); + setRootPath( filePath ); } bool FmFileBrowseWidget::isDriver(const QModelIndex &index) const @@ -478,77 +478,90 @@ void FmFileBrowseWidget::refreshModel( const QString& path ) { FmLogger::log( "FmFileBrowseWidget::refreshModel start" ); + // This slot will be triggered when drive inserted/ejected + // Because filemanger do not notify dir/files changed yet( QFileSystem will auto refresh.) QString currPath( currentPath().absoluteFilePath() ); - QString refreshPath( path ); + + if( currPath.isEmpty() ) { + // label style and no data shown( dirve is not present or locked, or corrupt ) - if( !currPath.isEmpty() ) { - if( refreshPath.isEmpty() ) { - refreshPath = currPath; - } - if( !FmUtils::isPathEqual( refreshPath, currPath ) ) { - // no need refresh other path - return; + //set path as drive root, cause refresh, so that data can be shown when insert MMC in device. + setRootPath( mCurrentDrive ); + // update title + } else { + // display drive data normally + // ignore path refresh event as QFileSystemModel will auto refresh. + + // Handle drive refresh event as drive may be ejected. + if( path.isEmpty() ) { // path is empty means drive is changed. + checkPathAndSetStyle( currPath ); } - if( checkPathAndSetStyle( refreshPath ) ) { - mModel->refresh( mModel->index( refreshPath ) ); - } else { - FmViewManager *viewManager = FmViewManager::viewManager(); - if( viewManager ) { - viewManager->removeWatchPath( currentPath().absoluteFilePath() ); - } - } - } else { - // current path is empty, so change root path to Drive root. - refreshPath = mCurrentDrive; - setRootPath( refreshPath ); - emit setTitle( FmUtils::fillDriveVolume( mCurrentDrive, true ) ); } + emit setTitle( FmUtils::fillDriveVolume( mCurrentDrive, true ) ); FmLogger::log( "FmFileBrowseWidget::refreshModel end" ); } -bool FmFileBrowseWidget::checkPathAndSetStyle( const QString& path ) +int FmFileBrowseWidget::checkPathAndSetStyle( const QString& path ) { - if( !FmUtils::isPathAccessabel( path ) ){ - QString driveName = FmUtils::getDriveNameFromPath( path ); - FmDriverInfo::DriveState state = FmUtils::queryDriverInfo( driveName ).driveState(); - - if( state & FmDriverInfo::EDriveLocked ) { - mEmptyTipLabel->setPlainText( hbTrId( "Drive is locked" ) ); - } else if( state & FmDriverInfo::EDriveNotPresent ) { - mEmptyTipLabel->setPlainText( hbTrId( "Drive is not present" ) ); - } else if( state & FmDriverInfo::EDriveCorrupted ) { - mEmptyTipLabel->setPlainText( hbTrId( "Drive is Corrupted" ) ); - } else { - mEmptyTipLabel->setPlainText( hbTrId( "Drive can not be opened " ) ); + int err = FmUtils::isPathAccessabel( path ); + switch( err ) + { + case FmErrNone: + { + setStyle( mFileBrowseStyle ); + emit setEmptyMenu( false ); + break; + } + case FmErrDriveNotAvailable: + { + QString driveName = FmUtils::getDriveNameFromPath( path ); + FmDriverInfo::DriveState state = FmUtils::queryDriverInfo( driveName ).driveState(); + + if( state & FmDriverInfo::EDriveLocked ) { + mEmptyTipLabel->setPlainText( hbTrId( "Drive is locked" ) ); + } else if( state & FmDriverInfo::EDriveNotPresent ) { + mEmptyTipLabel->setPlainText( hbTrId( "Drive is not present" ) ); + } else if( state & FmDriverInfo::EDriveCorrupted ) { + mEmptyTipLabel->setPlainText( hbTrId( "Drive is Corrupted" ) ); + } else { + mEmptyTipLabel->setPlainText( hbTrId( "Drive can not be opened " ) ); + } + setStyle( LabelStyle ); + emit setEmptyMenu( true ); + break; + } + case FmErrPathNotExist: + case FmErrDriveDenied: + case FmErrPathDenied: + { + // do not tack any action, error note shoule be shown by invoker. + // checkPathAndSetStyle just check path and set style. + break; + } + default: + Q_ASSERT_X( false, "checkPathAndSetStyle", "please handle all error from isPathAccessabel" ); + break; } - setStyle( LabelStyle ); - emit setEmptyMenu( true ); - return false; - } else { - setStyle( mFileBrowseStyle ); - emit setEmptyMenu( false ); - return true; - } - + return err; } void FmFileBrowseWidget::sortFiles( TSortType sortType ) { switch( sortType ){ case ESortByName:{ - mModel->setSorting( QDir::Name ); + mModel->sort( QFileSystemSortName ); } break; case ESortByTime:{ - mModel->setSorting( QDir::Time ); + mModel->sort( QFileSystemSortTime ); } break; case ESortBySize:{ - mModel->setSorting( QDir::Size ); + mModel->sort( QFileSystemSortSize ); } break; case ESortByType:{ - mModel->setSorting( QDir::Type | QDir::DirsFirst ); + mModel->sort( QFileSystemSortType ); } break; default: @@ -565,8 +578,8 @@ void FmFileBrowseWidget::on_searchPanel_searchOptionsClicked() { - mFindTargetPath = FmFileDialog::getExistingDirectory( 0, hbTrId( "Look in:" ), QString(""), - QStringList() ); + mFindTargetPath = FmUtils::fillPathWithSplash( FmFileDialog::getExistingDirectory( 0, hbTrId( "Look in:" ), QString(""), + QStringList() ) ); } void FmFileBrowseWidget::on_searchPanel_criteriaChanged( const QString &criteria ) @@ -619,13 +632,13 @@ break; case FmErrAlreadyStarted: // last operation have not finished - HbMessageBox::information( hbTrId( "Operatin already started!" ) ); + FmDlgUtils::information( hbTrId( "Operatin already started!" ) ); break; case FmErrWrongParam: - HbMessageBox::information( hbTrId( "Wrong parameters!" ) ); + FmDlgUtils::information( hbTrId( "Wrong parameters!" ) ); break; default: - HbMessageBox::information( hbTrId( "Operation fail to start!" ) ); + FmDlgUtils::information( hbTrId( "Operation fail to start!" ) ); } } } @@ -648,13 +661,13 @@ break; case FmErrAlreadyStarted: // last operation have not finished - HbMessageBox::information( hbTrId( "Operatin already started!" ) ); + FmDlgUtils::information( hbTrId( "Operatin already started!" ) ); break; case FmErrWrongParam: - HbMessageBox::information( hbTrId( "Wrong parameters!" ) ); + FmDlgUtils::information( hbTrId( "Wrong parameters!" ) ); break; default: - HbMessageBox::information( hbTrId( "Operation fail to start!" ) ); + FmDlgUtils::information( hbTrId( "Operation fail to start!" ) ); } } @@ -665,7 +678,7 @@ QStringList fileList; fileList.push_back( mModel->filePath( mCurrentItem->modelIndex() ) ); - QString targetPathName = FmFileDialog::getExistingDirectory( 0, tr( "move to" ), + QString targetPathName = FmFileDialog::getExistingDirectory( 0, hbTrId( "move to" ), QString(""), QStringList() ); if( !targetPathName.isEmpty() ) { @@ -678,13 +691,13 @@ break; case FmErrAlreadyStarted: // last operation have not finished - HbMessageBox::information( hbTrId( "Operatin already started!" ) ); + FmDlgUtils::information( hbTrId( "Operatin already started!" ) ); break; case FmErrWrongParam: - HbMessageBox::information( hbTrId( "Wrong parameters!" ) ); + FmDlgUtils::information( hbTrId( "Wrong parameters!" ) ); break; default: - HbMessageBox::information( hbTrId( "Operation fail to start!" ) ); + FmDlgUtils::information( hbTrId( "Operation fail to start!" ) ); } } } @@ -694,21 +707,31 @@ { QString filePath = mModel->filePath( mCurrentItem->modelIndex() ); QFileInfo fileInfo = mModel->fileInfo( mCurrentItem->modelIndex() ); - + int maxFileNameLength = FmUtils::getMaxFileNameLength(); + QString oldSuffix( fileInfo.suffix() ); QString newName( fileInfo.fileName() ); - - while( FmDlgUtils::showTextQuery( hbTrId( "Enter new name for %1" ).arg( newName ), newName, true ) ){ + while( FmDlgUtils::showTextQuery( hbTrId( "Enter new name for %1" ).arg( newName ), newName, true, + maxFileNameLength, QString() , true ) ){ + // remove whitespace from the start and the end. + newName = newName.trimmed(); QString newTargetPath = FmUtils::fillPathWithSplash( fileInfo.absolutePath() ) + newName; QFileInfo newFileInfo( newTargetPath ); - if( newFileInfo.exists() ) { - HbMessageBox::information( hbTrId( "%1 already exist!" ).arg( newName ) ); + QString errString; + // check if name/path is available for use + if( !FmUtils::checkNewFolderOrFile( newTargetPath, errString ) ) { + FmDlgUtils::information( errString ); continue; } - if( !rename( fileInfo.absoluteFilePath(), newTargetPath ) ) { - HbMessageBox::information( hbTrId("Rename failed!") ); + FmDlgUtils::information( hbTrId("Rename failed!") ); + } + else { + if ( oldSuffix != newFileInfo.suffix() ) { + FmDlgUtils::information( hbTrId( "File may become unusable when file name extension is changed" ) ); + } } break; - } + } } + diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfilebrowsewidget.h --- a/filemanager/src/filemanager/src/fmfilebrowsewidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfilebrowsewidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -28,7 +28,7 @@ #include #include -class QDirModel; +class QFileSystemModel; class QGraphicsLinearLayout; class HbListView; class HbTreeView; @@ -36,6 +36,8 @@ class HbSearchPanel; class HbLabel; +class FmFileIconProvider; + class FmFileBrowseWidget : public HbWidget { Q_OBJECT @@ -69,7 +71,7 @@ bool rename( const QString &oldName, const QString &newName ); void setModelFilter( QDir::Filters filters ); - bool checkPathAndSetStyle( const QString& path ); + int checkPathAndSetStyle( const QString& path ); void refreshModel( const QString& path ); void sortFiles( TSortType sortType ); void activeSearchPanel(); @@ -83,7 +85,7 @@ void on_searchPanel_exitClicked(); signals: - void currentPathChanged( QString& ); + void currentPathChanged( const QString& ); void startSearch( const QString &targetPath, const QString &criteria ); void setEmptyMenu( bool isMenuEmpty ); void setTitle( const QString &title ); @@ -119,7 +121,7 @@ HbTreeView *mTreeView; HbListView *mListView; QGraphicsLinearLayout *mLayout; - QDirModel *mModel; + QFileSystemModel *mModel; bool mSelectable; @@ -140,6 +142,9 @@ //used to avoid activate when long press list. bool mListLongPressed; QModelIndex mActivatedModelIndex; + + // provide iocn from filemanger + FmFileIconProvider *mFileIconProvider; }; #endif diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfileview.cpp --- a/filemanager/src/filemanager/src/fmfileview.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfileview.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -34,7 +34,6 @@ #include #include #include -#include #include #include @@ -109,33 +108,44 @@ menu()->addAction( action ); #endif - mStyleAction = new HbAction( this ); - mStyleAction->setObjectName( "switchStyle" ); +// mStyleAction = new HbAction(); +// mStyleAction->setObjectName( "switchStyle" ); // menu()->addAction( mStyleAction ); - mSelectableAction = new HbAction( this ); + mSelectableAction = new HbAction(); mSelectableAction->setObjectName( "setSelectable" ); menu()->addAction( mSelectableAction ); + connect( mSelectableAction, SIGNAL( triggered() ), + this, SLOT( on_setSelectable_triggered() ), Qt::QueuedConnection ); - action = new HbAction( this ); + + action = new HbAction(); action->setObjectName( "delete" ); action->setText( hbTrId( "txt_fmgr_menu_delete" ) ); menu()->addAction( action ); + connect( action, SIGNAL( triggered() ), + this, SLOT( on_delete_triggered() ), Qt::QueuedConnection ); - action = new HbAction( this ); + action = new HbAction(); action->setObjectName( "copy" ); action->setText( hbTrId( "txt_fmgr_menu_copy" ) ); menu()->addAction( action ); + connect( action, SIGNAL( triggered() ), + this, SLOT( on_copy_triggered() ), Qt::QueuedConnection ); - action = new HbAction( this ); + action = new HbAction(); action->setObjectName( "move" ); action->setText( hbTrId( "txt_fmgr_menu_move" ) ); menu()->addAction( action ); + connect( action, SIGNAL( triggered() ), + this, SLOT( on_move_triggered() ), Qt::QueuedConnection ); - action = new HbAction( this ); + action = new HbAction(); action->setObjectName( "newFolder" ); - action->setText( hbTrId( "New Folder" ) ); + action->setText( hbTrId( "txt_fmgr_opt_new_folder" ) ); menu()->addAction( action ); + connect( action, SIGNAL( triggered() ), + this, SLOT( on_newFolder_triggered() ), Qt::QueuedConnection ); HbMenu *subMenu = new HbMenu( hbTrId( "Sort" ) ); HbAction *sortNameAction = new HbAction( subMenu ); @@ -161,13 +171,13 @@ menu()->addMenu( subMenu ); connect( sortNameAction, SIGNAL( triggered() ), - this, SLOT( on_sortNameAction_triggered() ) ); + this, SLOT( on_sortNameAction_triggered() ), Qt::QueuedConnection ); connect( sortTimeAction, SIGNAL( triggered() ), - this, SLOT( on_sortTimeAction_triggered() ) ); + this, SLOT( on_sortTimeAction_triggered() ), Qt::QueuedConnection ); connect( sortSizeAction, SIGNAL( triggered() ), - this, SLOT( on_sortSizeAction_triggered() ) ); + this, SLOT( on_sortSizeAction_triggered() ), Qt::QueuedConnection ); connect( sortTypeAction, SIGNAL( triggered() ), - this, SLOT( on_sortTypeAction_triggered() ) ); + this, SLOT( on_sortTypeAction_triggered() ), Qt::QueuedConnection ); mMenu = takeMenu(); } @@ -215,18 +225,19 @@ connect( mFindAction, SIGNAL( triggered() ), this, SLOT( on_leftAction_triggered() ) ); connect( mToolBarRightAction, SIGNAL( triggered() ), - this, SLOT( on_rightAction_triggered() ) ); + this, SLOT( on_rightAction_triggered() ), Qt::QueuedConnection ); } void FmFileView::setStyle( FmFileBrowseWidget::Style style ) { + /* if ( style == FmFileBrowseWidget::ListStyle ) { mStyleAction->setText( hbTrId("Tree") ); } else if ( style == FmFileBrowseWidget::TreeStyle ) { mStyleAction->setText( hbTrId("List") ); } - + */ mWidget->setStyle( style ); } @@ -243,7 +254,7 @@ void FmFileView::infoNoFileSelected() { - HbMessageBox::information( tr("No File/Folder selected" ) ); + FmDlgUtils::information( hbTrId("No File/Folder selected" ) ); } #ifdef FM_CHANGE_ORIENT_ENABLE @@ -278,7 +289,7 @@ if (files.size() == 0) { infoNoFileSelected(); } else { - if (FmDlgUtils::question( tr("Confirm Deletion?" ) )) { + if (FmDlgUtils::question( hbTrId("Confirm Deletion?" ) )) { QStringList fileList; for (int i = 0; i < files.size(); ++i) { fileList.push_back( files[i].absoluteFilePath() ); @@ -290,13 +301,13 @@ break; case FmErrAlreadyStarted: // last operation have not finished - HbMessageBox::information( hbTrId( "Operatin already started!" ) ); + FmDlgUtils::information( hbTrId( "Operatin already started!" ) ); break; case FmErrWrongParam: - HbMessageBox::information( hbTrId( "Wrong parameters!" ) ); + FmDlgUtils::information( hbTrId( "Wrong parameters!" ) ); break; default: - HbMessageBox::information( hbTrId( "Operation fail to start!" ) ); + FmDlgUtils::information( hbTrId( "Operation fail to start!" ) ); } setSelectable( false ); } @@ -328,13 +339,13 @@ break; case FmErrAlreadyStarted: // last operation have not finished - HbMessageBox::information( hbTrId( "Operatin already started!" ) ); + FmDlgUtils::information( hbTrId( "Operatin already started!" ) ); break; case FmErrWrongParam: - HbMessageBox::information( hbTrId( "Wrong parameters!" ) ); + FmDlgUtils::information( hbTrId( "Wrong parameters!" ) ); break; default: - HbMessageBox::information( hbTrId( "Operation fail to start!" ) ); + FmDlgUtils::information( hbTrId( "Operation fail to start!" ) ); } setSelectable( false ); } @@ -349,7 +360,7 @@ if (files.size() == 0) { infoNoFileSelected(); } else { - QString targetPathName = FmFileDialog::getExistingDirectory( 0, tr( "move to" ), + QString targetPathName = FmFileDialog::getExistingDirectory( 0, hbTrId( "move to" ), QString(""), QStringList() ); if( !targetPathName.isEmpty() && files.size() > 0 ) { @@ -366,13 +377,13 @@ break; case FmErrAlreadyStarted: // last operation have not finished - HbMessageBox::information( tr( "Operatin already started!" ) ); + FmDlgUtils::information( hbTrId( "Operatin already started!" ) ); break; case FmErrWrongParam: - HbMessageBox::information( tr( "Wrong parameters!" ) ); + FmDlgUtils::information( hbTrId( "Wrong parameters!" ) ); break; default: - HbMessageBox::information( tr( "Operation fail to start!" ) ); + FmDlgUtils::information( hbTrId( "Operation fail to start!" ) ); } setSelectable( false ); } @@ -383,35 +394,29 @@ { int maxFileNameLength = FmUtils::getMaxFileNameLength(); QString associatedDrive = FmUtils::getDriveLetterFromPath( mWidget->currentPath().absoluteFilePath() ); + QString path = FmUtils::fillPathWithSplash( mWidget->currentPath().absoluteFilePath() ); + QString dirName = createDefaultFolderName( path ); - QString dirName( hbTrId( "New folder" ) ); - QString path = FmUtils::fillPathWithSplash( mWidget->currentPath().absoluteFilePath() ); - QDir dir( path ); + QDir dir( path ); if( dir.exists() ) { - while( FmDlgUtils::showTextQuery( hbTrId( "Enter name for " ), dirName, - true, maxFileNameLength, associatedDrive , false ) ){ - QString newTargetPath = FmUtils::fillPathWithSplash( - dir.absolutePath() ) + dirName; - QFileInfo newFileInfo( newTargetPath ); - if( !FmUtils::checkFolderFileName( dirName ) ) { - HbMessageBox::information( hbTrId( "Invalid file or folder name!" ) ); - continue; - } - if( !FmUtils::checkMaxPathLength( newTargetPath ) ) { - HbMessageBox::information( hbTrId( "the path you specified is too long!" ) ); - continue; - } - if( newFileInfo.exists() ) { - HbMessageBox::information( hbTrId( "%1 already exist!" ).arg( dirName ) ); - continue; - } - - if( !dir.mkdir( dirName ) ) { - HbMessageBox::information( hbTrId("Operation failed!") ); - } - refreshModel( path ); - break; + while( FmDlgUtils::showTextQuery( hbTrId( "txt_fmgr_title_new_folder" ), dirName, + true, maxFileNameLength, associatedDrive , false ) ){ + // remove whitespace from the start and the end. + dirName = dirName.trimmed(); + QString newTargetPath = FmUtils::fillPathWithSplash( + dir.absolutePath() ) + dirName; + QString errString; + // check if name/path is available for use + if( !FmUtils::checkNewFolderOrFile( newTargetPath, errString ) ) { + FmDlgUtils::information( errString ); + continue; } + if( !dir.mkdir( dirName ) ) { + FmDlgUtils::information( hbTrId("Operation failed!") ); + } + refreshModel( path ); + break; + } } } @@ -423,13 +428,6 @@ void FmFileView::on_leftAction_triggered() { -// FmFindDialog findDialog; -// QString keyword; -// QString findFolder; -// bool ret = findDialog.exec( keyword, findFolder ); -// -// if ( ret && !keyword.isEmpty() && !findFolder.isEmpty() ) -// FmViewManager::viewManager()->createFindView( keyword, findFolder ); mWidget->activeSearchPanel(); } @@ -506,3 +504,26 @@ { this->setTitle( title ); } + +QString FmFileView::createDefaultFolderName( const QString &path ) +{ + // create new folder name, for example, New folder(01), New folder(02) + QString checkedPath( FmUtils::fillPathWithSplash( path ) ); + QString dirName( hbTrId( "txt_fmgr_dialog_entry_new_folder" ) ); + QString dirAbsolutePath( checkedPath + dirName ); + QFileInfo fileInfo( dirAbsolutePath ); + int i = 0; + while ( fileInfo.exists() ) { + ++i; + QString numName; + if ( i < 10 ) { + numName.append( QString::number(0) ); + } + numName.append( QString::number(i) ); + // txt_fmgr_dialog_entry_new_folder_l1 is not available now. use actual text instead of it. + dirName = hbTrId( "New folder (%L1)" ).arg( numName ); + dirAbsolutePath = checkedPath + dirName; + fileInfo.setFile( dirAbsolutePath ); + } + return dirName; +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfileview.h --- a/filemanager/src/filemanager/src/fmfileview.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfileview.h Thu Jul 22 16:30:56 2010 +0100 @@ -82,6 +82,14 @@ void infoNoFileSelected(); void removeToolBarAction(); + /** + * Create Default folder name while create folder. + * + * @param path Current path. + * @return Default folder name for new folder. + */ + QString createDefaultFolderName( const QString &path ); + private: FmFileBrowseWidget *mWidget; HbPushButton *mUpButton; diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfindresultmodel.cpp --- a/filemanager/src/filemanager/src/fmfindresultmodel.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfindresultmodel.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -18,9 +18,11 @@ #include "fmfindresultmodel.h" #include "fmfindthread.h" +#include "fmfileiconprovider.h" #include -#include + +#include FmFindResultModel::FmFindResultModel( QObject *parent ) : QAbstractListModel( parent ) @@ -93,10 +95,10 @@ return QVariant(); switch (section) { - case 0: return tr("Name"); - case 1: return tr("Size"); - case 2: return tr("Type"); - case 3: return tr("Date Modified"); + case 0: return hbTrId("Name"); + case 1: return hbTrId("Size"); + case 2: return hbTrId("Type"); + case 3: return hbTrId("Date Modified"); default: return QVariant(); } } @@ -171,7 +173,6 @@ mFindThread->setLastResult( mFindResult ); } removeRows( 0, mFindResult.size() ); - emit modelCountChanged( mFindResult.size() ); mFindThread->start(); } @@ -188,8 +189,10 @@ void FmFindResultModel::on_findThread_found( int count ) { - int size = mFindResult.size(); - insertRows( mFindResult.size() - count, count ); + if( count > 0 ) { + int size = mFindResult.size(); + insertRows( mFindResult.size() - count, count ); + } emit modelCountChanged( mFindResult.size() ); } @@ -203,7 +206,7 @@ { mFindThread = new FmFindThread( &mFindResult, this ); mFindThread->setObjectName( "findThread" ); - mIconProvider = new QFileIconProvider(); + mIconProvider = new FmFileIconProvider(); } bool FmFindResultModel::caseNameLessThan(const QString &s1, const QString &s2) @@ -250,21 +253,26 @@ // emit layoutAboutToBeChanged(); + QStringList lst( mFindResult ); + removeRows( 0, mFindResult.size() ); + switch( ( SortFlag )column ) { case Name: - qSort( mFindResult.begin(), mFindResult.end(), caseNameLessThan ); + qSort( lst.begin(), lst.end(), caseNameLessThan ); break; case Time: - qSort( mFindResult.begin(), mFindResult.end(), caseTimeLessThan ); + qSort( lst.begin(), lst.end(), caseTimeLessThan ); break; case Size: - qSort( mFindResult.begin(), mFindResult.end(), caseSizeLessThan ); + qSort( lst.begin(), lst.end(), caseSizeLessThan ); break; case Type: - qSort( mFindResult.begin(), mFindResult.end(), caseTypeLessThan ); + qSort( lst.begin(), lst.end(), caseTypeLessThan ); break; - } -// emit layoutChanged(); - emit refresh(); + } + + mFindResult = lst; + insertRows( 0, mFindResult.size() ); + emit modelCountChanged( mFindResult.size() ); } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfindresultmodel.h --- a/filemanager/src/filemanager/src/fmfindresultmodel.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfindresultmodel.h Thu Jul 22 16:30:56 2010 +0100 @@ -26,7 +26,7 @@ #include class FmFindThread; -class QFileIconProvider; +class FmFileIconProvider; class FmFindResultModel : public QAbstractListModel { @@ -79,7 +79,6 @@ // pass modelCountChanged signal to parent widget // so parent widget could change contentWiget between emptyTipsWidget and listWidget void modelCountChanged( int count ); - void refresh(); private slots: void on_findThread_found( int count ); @@ -90,7 +89,7 @@ FmFindThread *mFindThread; QStringList mFindResult; - QFileIconProvider *mIconProvider; + FmFileIconProvider *mIconProvider; }; #endif diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfindthread.cpp --- a/filemanager/src/filemanager/src/fmfindthread.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfindthread.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -23,6 +23,7 @@ FmFindThread::FmFindThread( QStringList *r, QObject *parent ) : QThread( parent ) { + setPriority( LowPriority ); mResult = r; } @@ -58,7 +59,6 @@ void FmFindThread::run() { mStop = false; - setPriority( LowPriority ); if (findPattern.isEmpty() || !findPattern.isValid()) return; @@ -105,9 +105,7 @@ findDirs.removeFirst(); } - if( count > 0 ) { - emitFound(); - } + emitFound(); } void FmFindThread::emitFound() @@ -125,7 +123,7 @@ void FmFindThread::findInResult() { if( mFindPath.isEmpty() ){ - int count = mLastResult.count(); + int count = mResult->count(); for (QStringList::Iterator it = mLastResult.begin(); it != mLastResult.end(); ++it) { if (mStop){ return; @@ -144,4 +142,5 @@ } } } + emitFound(); } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfindwidget.cpp --- a/filemanager/src/filemanager/src/fmfindwidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfindwidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -75,8 +75,6 @@ void FmFindWidget::on_resultModel_finished() { emit finished(); - //Since layout problem is found, refresh it - on_resultModel_refresh(); } void FmFindWidget::on_resultModel_modelCountChanged( int count ) @@ -140,9 +138,6 @@ connect( mModel, SIGNAL( modelCountChanged( int )), this, SLOT( on_resultModel_modelCountChanged( int )) ); - connect( mModel, SIGNAL( refresh()), - this, SLOT( on_resultModel_refresh()) ); - mListView = new HbListView( this ); mListView->setModel( mModel ); @@ -204,11 +199,5 @@ } -void FmFindWidget::on_resultModel_refresh() -{ - mListView->setModel( 0 ); - mListView->setModel( mModel ); -} - diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmfindwidget.h --- a/filemanager/src/filemanager/src/fmfindwidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmfindwidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -65,8 +65,7 @@ void on_resultModel_finished(); void on_resultModel_modelCountChanged( int count ); - void on_resultModel_refresh(); - + private: void init(); void initSearchPanel(); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmsplitview.cpp --- a/filemanager/src/filemanager/src/fmsplitview.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmsplitview.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -21,7 +21,6 @@ #include "fmdriverlistwidget.h" #include -#include #include #include #include diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmviewmanager.cpp --- a/filemanager/src/filemanager/src/fmviewmanager.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmviewmanager.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -29,9 +29,9 @@ #include "fmoperationbase.h" #include "fmdrivewatcher.h" #include "fmdialog.h" +#include "fmdlgutils.h" #include -#include #include #include @@ -153,11 +153,17 @@ void FmViewManager::on_operationService_notifyFinish( FmOperationBase *operationBase ) { + if( !operationBase ){ + Q_ASSERT_X( false, "FmViewManager", + "NULL is not accepted in on_operationService_notifyFinish()" ); + return; + } + if( operationBase->operationType() == FmOperationService::EOperationTypeBackup ) { - emit refreshBackupView(); + // after finish backup, we need refresh backup date in backup view. + emit refreshBackupDate(); } - } @@ -186,13 +192,13 @@ QString checkedPath = FmUtils::checkDriveToFolderFilter( absolutePath ); if( FmUtils::isDriveAvailable( path ) ) { - if( !FmUtils::isPathAccessabel( checkedPath ) ) { + if( FmErrNone != FmUtils::isPathAccessabel( checkedPath ) ) { checkedPath.clear(); } } if( checkedPath.isEmpty() ) { - HbMessageBox::information( QString( hbTrId("Path: %1 is unavailable!").arg( path )) ); + FmDlgUtils::information( QString( hbTrId("Path: %1 is unavailable!").arg( path )) ); return; } @@ -238,8 +244,10 @@ mMainWindow->addView( backupView ); mMainWindow->setCurrentView( backupView ); - connect( this, SIGNAL( refreshBackupView() ), backupView, SLOT( refreshBackupView() ) ); - + connect( this, SIGNAL( refreshModel( QString ) ), //emit when need refresh models + backupView, SLOT( refreshModel( QString ) ) ); + connect( this, SIGNAL( refreshBackupDate() ), //emit when need refresh backup date + backupView, SLOT( refreshBackupDate() ) ); } void FmViewManager::createRestoreView() @@ -248,6 +256,7 @@ mMainWindow->addView( restoreView ); mMainWindow->setCurrentView( restoreView ); + connect( this, SIGNAL( refreshRestoreView() ), restoreView, SLOT( refreshRestoreView() ) ); } @@ -257,6 +266,7 @@ mMainWindow->addView( deleteBackupView ); mMainWindow->setCurrentView( deleteBackupView ); + connect( this, SIGNAL( refreshDeleteBackupView() ), deleteBackupView, SLOT( refreshDeleteBackupView() ) ); } @@ -289,6 +299,8 @@ { FmLogger::log( QString( "FmViewManager::on_driveWatcher_driveAddedOrChanged start" ) ); emit refreshModel( QString("") ); + emit refreshDeleteBackupView(); + emit refreshRestoreView(); checkDlgCloseUnit(); FmLogger::log( QString( "FmViewManager::on_driveWatcher_driveAddedOrChanged end" ) ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/fmviewmanager.h --- a/filemanager/src/filemanager/src/fmviewmanager.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/fmviewmanager.h Thu Jul 22 16:30:56 2010 +0100 @@ -99,7 +99,9 @@ void on_operationService_notifyFinish( FmOperationBase *operationBase ); signals: void refreshModel( const QString &path ); - void refreshBackupView(); + void refreshBackupDate(); + void refreshDeleteBackupView(); + void refreshRestoreView(); private: /// create view will push current view to stack diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/listviewitems.cpp --- a/filemanager/src/filemanager/src/listviewitems.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/listviewitems.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -20,7 +20,6 @@ #include "listviewitems.h" #include "fmutils.h" -#include #include #include @@ -32,8 +31,8 @@ : HbListViewItem( parent ), mIconLabel( 0 ), mDiskNameLabel( 0 ), - mSizeLabel( 0 ), - mFreeLabel( 0 ), + mFirstLabel( 0 ), + mSecondLabel( 0 ), mCheckBox( 0 ), hLayout( 0 ) @@ -70,10 +69,7 @@ } QVariant variant = modelIndex().data( Qt::DecorationRole ); QIcon icon = qvariant_cast( variant ); - if( icon.isNull() ) { - QFileIconProvider fileIconProvider; - icon = fileIconProvider.icon( QFileIconProvider::Drive ); - } + // FmFileIconProvider in FmDriveModel already handle null icon issue QString displayString = modelIndex().data( Qt::DisplayRole ).toString(); QString diskName = modelIndex().data( Qt::UserRole ).toString(); @@ -84,8 +80,19 @@ FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName ); mDiskNameLabel->setPlainText( displayString ); - mSizeLabel->setPlainText( hbTrId ( "Size: " ) + FmUtils::formatStorageSize( driverInfo.size() ) ); - mFreeLabel->setPlainText( hbTrId ( "Free: " ) + FmUtils::formatStorageSize( driverInfo.freeSize() ) ); + if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) { + mFirstLabel->setPlainText( hbTrId ( "Size: " ) + FmUtils::formatStorageSize( driverInfo.size() ) ); + mSecondLabel->setPlainText( hbTrId ( "Free: " ) + FmUtils::formatStorageSize( driverInfo.freeSize() ) ); + } else if( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) { + mFirstLabel->setPlainText( hbTrId ( "Locked" ) ); + mSecondLabel->setPlainText( QString(" ") ); + } else if( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) { + mFirstLabel->setPlainText( hbTrId ( "Corrupted" ) ); + mSecondLabel->setPlainText( QString(" ") ); + } else if( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent ) { + mFirstLabel->setPlainText( hbTrId ( "Not Ready" ) ); + mSecondLabel->setPlainText( QString(" ") ); + } // mCheckBox->setCheckState( checkState() ); } @@ -116,15 +123,15 @@ vLayout->addItem( mDiskNameLabel ); vLayout->setAlignment( mDiskNameLabel, Qt::AlignLeft ); - mSizeLabel = new HbLabel(); - mSizeLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - vLayout->addItem( mSizeLabel ); - vLayout->setAlignment( mSizeLabel, Qt::AlignLeft ); + mFirstLabel = new HbLabel(); + mFirstLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); + vLayout->addItem( mFirstLabel ); + vLayout->setAlignment( mFirstLabel, Qt::AlignLeft ); - mFreeLabel = new HbLabel(); - mFreeLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); - vLayout->addItem( mFreeLabel ); - vLayout->setAlignment( mFreeLabel, Qt::AlignLeft ); + mSecondLabel = new HbLabel(); + mSecondLabel->setFontSpec( HbFontSpec( HbFontSpec::Secondary ) ); + vLayout->addItem( mSecondLabel ); + vLayout->setAlignment( mSecondLabel, Qt::AlignLeft ); HbWidget *labelsWidget = new HbWidget(); labelsWidget->setLayout(vLayout); @@ -134,88 +141,3 @@ setLayout( hLayout ); } - -//file list item, not used. -/* -FileListViewItem::FileListViewItem( QGraphicsItem *parent ) - : HbListViewItem( parent ), - mIconLabel( 0 ), - mNameLabel( 0 ), - mCheckBox( 0 ) -{ - init(); -} - -FileListViewItem::~FileListViewItem() -{ -} - -void FileListViewItem::polish(HbStyleParameters& params) -{ - Q_UNUSED(params); -} - -bool FileListViewItem::canSetModelIndex( const QModelIndex &index ) const -{ - Q_UNUSED( index ); - return true; - -// do not used -// const QFileSystemModel *model = dynamic_cast(index.model()); -// QFileInfo info = model->fileInfo( index ); -// QString path = info.path(); - -// return (path.right(1) != ":"); - -} - - -HbAbstractViewItem *FileListViewItem::createItem() -{ - return new FileListViewItem( parentItem() ); -} - -void FileListViewItem::updateChildItems() -{ - QVariant variant = modelIndex().data( Qt::DecorationRole ); - QIcon icon = qvariant_cast( variant ); - QString diskName = modelIndex().data( Qt::DisplayRole ).toString(); - - QString debugString = "updateChindItems: diskName = " + diskName; - FmLogger::log(debugString); - mIconLabel->setIcon( HbIcon( icon ) ); - mNameLabel->setPlainText( diskName ); - mCheckBox->setCheckState( checkState() ); -} - -void FileListViewItem::setCheckedState( int state ) -{ - HbAbstractViewItem::setCheckState( static_cast(state) ); -} - -void FileListViewItem::init() -{ - QGraphicsLinearLayout *hLayout = new QGraphicsLinearLayout(); - hLayout->setOrientation( Qt::Horizontal ); - - mIconLabel = new HbLabel(); - mIconLabel->setMinimumWidth(32); - hLayout->addItem( mIconLabel ); - hLayout->setAlignment( mIconLabel, Qt::AlignTop ); - hLayout->setStretchFactor( mIconLabel, 1 ); - - mNameLabel = new HbLabel(); - mNameLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); - mNameLabel->setAlignment( Qt::AlignVCenter ); - hLayout->addItem( mNameLabel ); - hLayout->setAlignment( mNameLabel, Qt::AlignLeft ); - hLayout->setStretchFactor( mNameLabel, 20 ); - - mCheckBox = new HbCheckBox( this ); - connect( mCheckBox, SIGNAL(stateChanged(int)), this, SLOT(setCheckedState(int)) ); - hLayout->addItem( mCheckBox ); - hLayout->setAlignment( mCheckBox, Qt::AlignLeft ); - - setLayout( hLayout ); -} -*/ diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/listviewitems.h --- a/filemanager/src/filemanager/src/listviewitems.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/listviewitems.h Thu Jul 22 16:30:56 2010 +0100 @@ -50,8 +50,8 @@ HbLabel *mIconLabel; HbLabel *mDiskNameLabel; - HbLabel *mSizeLabel; - HbLabel *mFreeLabel; + HbLabel *mFirstLabel; + HbLabel *mSecondLabel; HbCheckBox *mCheckBox; QGraphicsLinearLayout *hLayout; }; diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/main.cpp --- a/filemanager/src/filemanager/src/main.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/main.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -31,7 +31,6 @@ { FmLogger::log( "main start" ); HbApplication app( argc, argv ); - app.setApplicationName( "filemanager" ); QTranslator translator; QString lang = QLocale::system().name(); @@ -39,6 +38,8 @@ translator.load( path + "filemanager_" + lang ); app.installTranslator(&translator); + app.setApplicationName( hbTrId("txt_fmgr_title_file_manager") ); + FmLogger::log( "main_createMainwindow start" ); FmMainWindow mw; FmLogger::log( "main_createMainwindow end" ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationbase.cpp --- a/filemanager/src/filemanager/src/operationservice/fmoperationbase.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationbase.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -17,6 +17,8 @@ */ #include "fmoperationbase.h" +#include "fmdrivedetailstype.h" +#include FmOperationBase::FmOperationBase( QObject *parent, FmOperationService::TOperationType operationType ) : QObject( parent ), mOperationType( operationType ) @@ -56,6 +58,7 @@ } FmOperationDriveDetails::~FmOperationDriveDetails() { + qDeleteAll(mDetailsSizeList); } QString FmOperationDriveDetails::driverName() diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationcopy.cpp --- a/filemanager/src/filemanager/src/operationservice/fmoperationcopy.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationcopy.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -19,6 +19,7 @@ #include "fmcommon.h" #include "fmoperationbase.h" #include "fmdrivedetailstype.h" +#include "fmutils.h" #include #include @@ -96,7 +97,7 @@ } destFi.setFile( destFi.absoluteFilePath() ); } else { - emit askForRename( destFi.absoluteFilePath(), &newName ); + queryForRename( destFi.absoluteFilePath(), &newName ); if( newName.isEmpty() ) { ret = FmErrCancel; break; @@ -106,7 +107,7 @@ } } else{ // destination is dir - emit askForRename( destFi.absoluteFilePath(), &newName ); + queryForRename( destFi.absoluteFilePath(), &newName ); if( newName.isEmpty() ) { ret = FmErrCancel; break; @@ -155,7 +156,7 @@ *mErrString = source; ret = FmErrCannotCopy; } else { - IncreaseProgress( fileSize ); + increaseProgress( fileSize ); } } else if (fi.isDir()) { ret = copyDirInsideContent( source, newName ); @@ -171,18 +172,21 @@ int FmOperationCopy::copyDirInsideContent( const QString &srcPath, const QString &destPath ) { - if( destPath.contains( srcPath, Qt::CaseInsensitive ) ) { + QFileInfo srcInfo( srcPath ); + QFileInfo destInfo( destPath ); + + QString destUpPath = FmUtils::fillPathWithSplash( destInfo.absolutePath() ); + if( destUpPath.contains( srcPath, Qt::CaseInsensitive ) ) { *mErrString = destPath; return FmErrCopyDestToSubFolderInSrc; } - QFileInfo srcInfo( srcPath ); + if( !srcInfo.isDir() || !srcInfo.exists() ) { *mErrString = srcPath; return FmErrSrcPathDoNotExist; } - - QFileInfo destInfo( destPath ); + if( !destInfo.exists() ) { if( !destInfo.dir().mkdir( destInfo.absoluteFilePath() ) ) { *mErrString = destPath; @@ -210,7 +214,7 @@ *mErrString = fileInfo.absoluteFilePath(); return FmErrCannotCopy; } - IncreaseProgress( fileInfo.size() ); + increaseProgress( fileInfo.size() ); } else if( fileInfo.isDir() ) { //makedir QString newDirPath = destPath + fileInfo.absoluteFilePath().mid( srcPath.length() ); @@ -235,7 +239,7 @@ return FmErrNone; } -void FmOperationCopy::IncreaseProgress( quint64 size ) +void FmOperationCopy::increaseProgress( quint64 size ) { if( mTotalSize <=0 ) { return; @@ -247,3 +251,8 @@ emit notifyProgress( mCurrentStep ); } } + +void FmOperationCopy::queryForRename( const QString &srcFile, QString *destFile ) +{ + emit askForRename( srcFile, destFile ); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationcopy.h --- a/filemanager/src/filemanager/src/operationservice/fmoperationcopy.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationcopy.h Thu Jul 22 16:30:56 2010 +0100 @@ -36,6 +36,7 @@ signals: void askForRename( const QString &srcFile, QString *destFile ); void askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted ); + void showNote( const char *note ); void notifyPreparing( bool cancelable ); void notifyStart( bool cancelable, int maxSteps ); void notifyProgress( int currentStep ); @@ -43,7 +44,8 @@ private: int copy( const QString &source, const QString &targetPath, const QString &newTargetName = QString() ); int copyDirInsideContent( const QString &srcPath, const QString &destPath ); - void IncreaseProgress( quint64 size ); + void increaseProgress( quint64 size ); + void queryForRename( const QString &srcFile, QString *destFile ); private: QStringList mSourceList; diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationmove.cpp --- a/filemanager/src/filemanager/src/operationservice/fmoperationmove.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationmove.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -95,7 +95,7 @@ } destFi.setFile( destFi.absoluteFilePath() ); } else { - emit askForRename( destFi.absoluteFilePath(), &newName ); + queryForRename( destFi.absoluteFilePath(), &newName ); if( newName.isEmpty() ) { ret = FmErrCancel; break; @@ -105,7 +105,7 @@ } } else{ // destination is dir - emit askForRename( destFi.absoluteFilePath(), &newName ); + queryForRename( destFi.absoluteFilePath(), &newName ); if( newName.isEmpty() ) { ret = FmErrCancel; break; @@ -155,7 +155,7 @@ *mErrString = source; ret = FmErrCannotRemove; } - IncreaseProgress( fileSize ); + increaseProgress( fileSize ); } else if (fi.isDir()) { if( FmUtils::isDefaultFolder( source ) ){ ret = FmErrRemoveDefaultFolder; @@ -180,18 +180,20 @@ } int FmOperationMove::moveDirInsideContent( const QString &srcPath, const QString &destPath ) { - if( destPath.contains( srcPath, Qt::CaseInsensitive ) ) { + QFileInfo srcInfo( srcPath ); + QFileInfo destInfo( destPath ); + + QString destUpPath = FmUtils::fillPathWithSplash( destInfo.absolutePath() ); + if( destUpPath.contains( srcPath, Qt::CaseInsensitive ) ) { *mErrString = destPath; return FmErrMoveDestToSubFolderInSrc; } - - QFileInfo srcInfo( srcPath ); + if( !srcInfo.isDir() || !srcInfo.exists() ) { *mErrString = srcPath; return FmErrSrcPathDoNotExist; } - - QFileInfo destInfo( destPath ); + if( !destInfo.exists() ) { if( !destInfo.dir().mkdir( destInfo.absoluteFilePath() ) ) { *mErrString = destPath; @@ -223,7 +225,7 @@ *mErrString = fileInfo.absoluteFilePath(); return FmErrCannotRemove; } - IncreaseProgress( fileSize ); + increaseProgress( fileSize ); } else if( fileInfo.isDir() ) { //makedir QString newDirPath = destPath + fileInfo.absoluteFilePath().mid( srcPath.length() ); @@ -256,7 +258,7 @@ return FmErrNone; } -void FmOperationMove::IncreaseProgress( quint64 size ) +void FmOperationMove::increaseProgress( quint64 size ) { if( mTotalSize <=0 ) { return; @@ -269,4 +271,7 @@ } } - +void FmOperationMove::queryForRename( const QString &srcFile, QString *destFile ) +{ + emit askForRename( srcFile, destFile ); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationmove.h --- a/filemanager/src/filemanager/src/operationservice/fmoperationmove.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationmove.h Thu Jul 22 16:30:56 2010 +0100 @@ -35,6 +35,7 @@ signals: void askForRename( const QString &srcFile, QString *destFile ); void askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted ); + void showNote( const QString ¬eString ); void notifyPreparing( bool cancelable ); void notifyStart( bool cancelable, int maxSteps ); void notifyProgress( int currentStep ); @@ -42,7 +43,8 @@ private: int move( const QString &source, const QString &targetPath, const QString &newTargetName = QString() ); int moveDirInsideContent( const QString &srcPath, const QString &destPath ); - void IncreaseProgress( quint64 size ); + void increaseProgress( quint64 size ); + void queryForRename( const QString &srcFile, QString *destFile ); private: QStringList mSourceList; diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.cpp --- a/filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -21,10 +21,11 @@ #include "fmviewdetailsdialog.h" #include "fmdlgutils.h" #include "fmutils.h" - +#include #include #include -#include +#include +#include FmOperationResultProcesser::FmOperationResultProcesser( FmOperationService *operationService ) : mOperationService( operationService ), mNote( 0 ) @@ -39,12 +40,31 @@ FmOperationBase* operationBase, const QString &srcFile, QString *destFile ) { Q_UNUSED( operationBase ); + int maxFileNameLength = FmUtils::getMaxFileNameLength(); QString questionText = QString( "file " ) + srcFile + QString( " already exist, please rename:" ); - QString value; - FmDlgUtils::showTextQuery( questionText, value, true ); - *destFile = value; + QString value; + QFileInfo fileInfo(srcFile); + bool ret = FmDlgUtils::showTextQuery( questionText, value, true, maxFileNameLength, QString(), false ); + while ( ret ) { + // remove whitespace from the start and the end. + value = value.trimmed(); + QString newTargetPath = FmUtils::fillPathWithSplash( + fileInfo.absolutePath() ) + value; + QString errString; + // check if name/path is available for use. + if( !FmUtils::checkNewFolderOrFile( newTargetPath, errString ) ) { + FmDlgUtils::information( errString ); + ret = FmDlgUtils::showTextQuery( questionText, value, true, maxFileNameLength, QString(), false ); + continue; + } else { + break; + } + } + if( ret ) { + *destFile = value; + } } void FmOperationResultProcesser::onAskForReplace( @@ -62,9 +82,14 @@ } } +void FmOperationResultProcesser::onShowNote( FmOperationBase* operationBase, const char *noteString ) +{ + FmDlgUtils::information(hbTrId(noteString)); +} + void FmOperationResultProcesser::onNotifyWaiting( FmOperationBase* operationBase, bool cancelable ) { - QString title = tr("Operation"); + QString title = hbTrId("Operation"); switch( operationBase->operationType() ) { case FmOperationService::EOperationTypeBackup: @@ -119,7 +144,7 @@ void FmOperationResultProcesser::onNotifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps ) { - QString title = tr("Operation"); + QString title = hbTrId("Operation"); switch( operationBase->operationType() ) { case FmOperationService::EOperationTypeBackup: @@ -179,9 +204,9 @@ } case FmOperationService::EOperationTypeFormat: { - HbMessageBox::information( QString( hbTrId("Format succeed!")) ); + FmDlgUtils::information( QString( hbTrId("Format succeed!")) ); FmOperationFormat *paramFormat = static_cast( operationBase ); - QString title( tr( "Drive name ") ); + QString title( hbTrId( "Drive name ") ); QString driveName( paramFormat->driverName() ); FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driveName ); FmDriverInfo::DriveState state = driverInfo.driveState(); @@ -192,13 +217,13 @@ while( FmDlgUtils::showTextQuery( title, volumeName, false, FmMaxLengthofDriveName ) ){ int err = FmUtils::renameDrive( driveName, volumeName ); if ( err == FmErrNone ){ - HbMessageBox::information( hbTrId( "The name has been changed!" ) ); + FmDlgUtils::information( hbTrId( "The name has been changed!" ) ); mOperationService->on_operationThread_refreshModel( driveName ); break; } else if( err == FmErrBadName ) { - HbMessageBox::information( hbTrId( "Illegal characters! Use only letters and numbers." ) ); + FmDlgUtils::information( hbTrId( "Illegal characters! Use only letters and numbers." ) ); } else{ - HbMessageBox::information( hbTrId( "Error occurred, operation cancelled!" ) ); + FmDlgUtils::information( hbTrId( "Error occurred, operation cancelled!" ) ); break; } } @@ -207,16 +232,16 @@ } case FmOperationService::EOperationTypeBackup: { - HbMessageBox::information( QString( hbTrId("Backup succeed!")) ); + FmDlgUtils::information( QString( hbTrId("Backup succeed!")) ); break; } case FmOperationService::EOperationTypeRestore: { - HbMessageBox::information( QString( hbTrId("Restore succeed!")) ); + FmDlgUtils::information( QString( hbTrId("Restore succeed!")) ); break; } default: - HbMessageBox::information( QString( hbTrId("Operation finished")) ); + FmDlgUtils::information( QString( hbTrId("Operation finished")) ); } } @@ -227,53 +252,56 @@ switch( error ) { case FmErrAlreadyStarted: - HbMessageBox::information( QString( hbTrId("Operation already started!")) ); + FmDlgUtils::information( QString( hbTrId("Operation already started!")) ); return; case FmErrLocked: - HbMessageBox::information( QString( hbTrId("Operation failed because drive is locked!")) ); + FmDlgUtils::information( QString( hbTrId("Operation failed because drive is locked!")) ); return; case FmErrPathNotFound: - HbMessageBox::information( QString( hbTrId("Operation failed because can not find target path or drive is not available!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation failed because can not find target path or drive is not available!") ) ); return; case FmErrCorrupt: - HbMessageBox::information( QString( hbTrId("Operation failed because target media is corrupted!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation failed because target media is corrupted!") ) ); return; - case FmErrNotReady: - HbMessageBox::information( QString( hbTrId("Operation failed because device is not ready!") ) ); + case FmErrNotReady: // Caused when MMC & OTG is not inserted when start backup + FmDlgUtils::information( QString( hbTrId("Operation failed because device is not ready!") ) ); + return; + case FmErrDisMounted: // Caused by eject MMC when preparing backup + FmDlgUtils::information( QString( hbTrId("Operation failed because device has been removed!") ) ); return; case FmErrDiskFull: - HbMessageBox::information( QString( hbTrId("Not enough space. Operation cancelled.!")) ); + FmDlgUtils::information( QString( hbTrId("Not enough space. Operation cancelled!")) ); return; case FmErrCopyDestToSubFolderInSrc: - HbMessageBox::information( QString( hbTrId("Can not copy to sub folder!")) ); + FmDlgUtils::information( QString( hbTrId("Can not copy to sub folder!")) ); return; case FmErrMoveDestToSubFolderInSrc: - HbMessageBox::information( QString( hbTrId("Can not move to sub folder!")) ); + FmDlgUtils::information( QString( hbTrId("Can not move to sub folder!")) ); return; case FmErrCannotRemove:{ if( operationBase->operationType() == FmOperationService::EOperationTypeCopy ) { // when copy a file/dir to same name destination, and delete dest fail, this error will occur - HbMessageBox::information( QString( hbTrId( "Can not copy because %1 can not be deleted!" ).arg( errString ) ) ); + FmDlgUtils::information( QString( hbTrId( "Can not copy because %1 can not be deleted!" ).arg( errString ) ) ); return; } else if( operationBase->operationType() == FmOperationService::EOperationTypeMove ) { // when move a file/dir to same name destination, and delete dest fail, this error will occur - HbMessageBox::information( QString( hbTrId( "Can not move because %1 can not be deleted!" ).arg( errString ) ) ); + FmDlgUtils::information( QString( hbTrId( "Can not move because %1 can not be deleted!" ).arg( errString ) ) ); return; } // when delete file/dir fail, this error will occur - HbMessageBox::information( QString( hbTrId( "Can not delete %1!" ).arg( errString ) ) ); + FmDlgUtils::information( QString( hbTrId( "Can not delete %1!" ).arg( errString ) ) ); return; } case FmErrRemoveDefaultFolder:{ if( operationBase->operationType() == FmOperationService::EOperationTypeMove ) { // when move a default folder - HbMessageBox::information( QString( hbTrId( "Could not move because the default folder %1 can not be deleted!" ).arg( errString ) ) ); + FmDlgUtils::information( QString( hbTrId( "Could not move because the default folder %1 can not be deleted!" ).arg( errString ) ) ); return; } else { // when delete the default folder - HbMessageBox::information( QString( hbTrId( "Could not remove the default folder %1 " ).arg( errString ) ) ); + FmDlgUtils::information( QString( hbTrId( "Could not remove the default folder %1 " ).arg( errString ) ) ); return; } } @@ -282,10 +310,10 @@ switch( operationBase->operationType() ) { case FmOperationService::EOperationTypeFormat: - HbMessageBox::information( QString( hbTrId("Format failed!")) ); + FmDlgUtils::information( QString( hbTrId("Format failed!")) ); break; default: - HbMessageBox::information( QString( hbTrId("Operation failed")) ); + FmDlgUtils::information( QString( hbTrId("Operation failed")) ); } } @@ -294,7 +322,7 @@ { Q_UNUSED( operationBase ); cancelProgress(); - HbMessageBox::information( QString( hbTrId("Operation Canceled!") ) ); + FmDlgUtils::information( QString( hbTrId("Operation Canceled!") ) ); } @@ -322,10 +350,15 @@ // mNote->setProgressDialogType( HbProgressDialog::WaitNote ); // } mNote->setText( title ); - if( !cancelable ) - mNote->primaryAction()->setDisabled( true ); - else - mNote->primaryAction()->setDisabled( false ); + QList actionList = mNote->actions(); + if (actionList.size() > 0) { + QAction *cancelAction = actionList.at(0); + if (!cancelable) { + cancelAction->setDisabled( true ); + } else { + cancelAction->setDisabled( false ); + } + } mNote->open(); } @@ -351,12 +384,15 @@ mNote->setMaximum( 65535 ); mNote->setProgressValue( 0 ); mNote->setText( title ); - if( !cancelable ){ - mNote->primaryAction()->setDisabled( true ); - } - else{ - mNote->primaryAction()->setDisabled( false ); - } + QList actionList = mNote->actions(); + if (actionList.size() > 0) { + QAction *cancelAction = actionList.at(0); + if (!cancelable) { + cancelAction->setDisabled( true ); + } else { + cancelAction->setDisabled( false ); + } + } mNote->open(); } @@ -383,14 +419,15 @@ mNote->setMaximum( maxValue ); mNote->setProgressValue( 0 ); - - if( !cancelable ){ - mNote->primaryAction()->setDisabled( true ); - } - else{ - mNote->primaryAction()->setDisabled( false ); - } - + QList actionList = mNote->actions(); + if (actionList.size() > 0) { + QAction *cancelAction = actionList.at(0); + if(!cancelable) { + cancelAction->setDisabled( true ); + } else { + cancelAction->setDisabled( false ); + } + } mNote->open(); } diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.h --- a/filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationresultprocesser.h Thu Jul 22 16:30:56 2010 +0100 @@ -33,6 +33,7 @@ void onAskForRename( FmOperationBase* operationBase, const QString &srcFile, QString *destFile ); void onAskForReplace( FmOperationBase* operationBase, const QString &srcFile, const QString &destFile, bool *isAccepted ); + void onShowNote( FmOperationBase* operationBase, const char *noteString ); void onNotifyWaiting( FmOperationBase* operationBase, bool cancelable ); void onNotifyPreparing( FmOperationBase* operationBase, bool cancelable ); void onNotifyStart( FmOperationBase* operationBase, bool cancelable, int maxSteps ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationservice.cpp --- a/filemanager/src/filemanager/src/operationservice/fmoperationservice.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationservice.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -29,7 +29,6 @@ #include "fmoperationformat.h" #include -#include FmOperationService::FmOperationService( QObject *parent ) : QObject( parent ), mCurrentOperation( 0 ) @@ -293,6 +292,10 @@ { emit refreshModel( mCurrentOperation, path ); } +void FmOperationService::on_operationThread_showNote( const char *noteString ) +{ + mOperationResultProcesser->onShowNote( mCurrentOperation, noteString ); +} void FmOperationService::on_operationThread_notifyWaiting( bool cancelable ) { mOperationResultProcesser->onNotifyWaiting( diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationservice.h --- a/filemanager/src/filemanager/src/operationservice/fmoperationservice.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationservice.h Thu Jul 22 16:30:56 2010 +0100 @@ -95,6 +95,7 @@ void on_operationThread_askForRename( const QString &srcFile, QString *destFile ); void on_operationThread_askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted ); void on_operationThread_refreshModel( const QString &path ); + void on_operationThread_showNote( const char *noteString ); void on_operationThread_notifyWaiting( bool cancelable ); void on_operationThread_notifyPreparing( bool cancelable ); void on_operationThread_notifyStart( bool cancelable, int maxSteps ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationthread.cpp --- a/filemanager/src/filemanager/src/operationservice/fmoperationthread.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationthread.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -51,6 +51,8 @@ this, SLOT( onAskForRename( QString, QString* )), Qt::BlockingQueuedConnection ); connect( mOperationBase, SIGNAL( askForReplace( QString, QString, bool* ) ), this, SLOT( onAskForReplace( QString, QString, bool* )), Qt::BlockingQueuedConnection ); + connect( mOperationBase, SIGNAL( showNote( QString ) ), + this, SLOT( onShowNote( QString )), Qt::BlockingQueuedConnection ); start(); return FmErrNone; @@ -69,6 +71,8 @@ this, SLOT( onAskForRename( QString, QString* )), Qt::BlockingQueuedConnection ); connect( mOperationBase, SIGNAL( askForReplace( QString, QString, bool* ) ), this, SLOT( onAskForReplace( QString, QString, bool* )), Qt::BlockingQueuedConnection ); + connect( mOperationBase, SIGNAL( showNote( QString ) ), + this, SLOT( onShowNote( QString )), Qt::BlockingQueuedConnection ); start(); @@ -144,6 +148,12 @@ { emit askForReplace( srcFile, destFile, isAccepted ); } + +void FmOperationThread::onShowNote( const char *noteString ) +{ + emit showNote( noteString ); +} + void FmOperationThread::on_operationElement_notifyPreparing( bool cancelable ) { emit notifyPreparing( cancelable ); @@ -167,6 +177,7 @@ { mErrString.clear(); FmOperationCopy *operationCopy = static_cast(mOperationBase); + QString refreshDestPath = QFileInfo( operationCopy->targetPath() ).dir().absolutePath(); int ret = operationCopy->start( &mStop, &mErrString ); switch( ret ) @@ -176,6 +187,7 @@ break; case FmErrNone: emit notifyFinish(); + emit refreshModel( refreshDestPath ); break; default: emit notifyError( ret, mErrString ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/filemanager/src/operationservice/fmoperationthread.h --- a/filemanager/src/filemanager/src/operationservice/fmoperationthread.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationthread.h Thu Jul 22 16:30:56 2010 +0100 @@ -55,6 +55,7 @@ void askForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted ); void refreshModel( const QString &path ); + void showNote(const char*); void notifyWaiting( bool cancelable ); void notifyPreparing( bool cancelable ); // this step could not be used if not needed. void notifyStart( bool cancelable, int maxSteps ); @@ -67,6 +68,7 @@ private slots: void onAskForRename( const QString &srcFile, QString *destFile ); void onAskForReplace( const QString &srcFile, const QString &destFile, bool *isAccepted ); + void onShowNote( const char *noteString ); void on_operationElement_notifyPreparing( bool cancelable ); void on_operationElement_notifyStart( bool cancelable, int maxSteps ); void on_operationElement_notifyProgress( int currentStep ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupengine/src/MMCScBkupSBEUtils.cpp --- a/filemanager/src/fmbkupengine/src/MMCScBkupSBEUtils.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupengine/src/MMCScBkupSBEUtils.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -230,20 +230,19 @@ { // Must first create a generic transfer type object... sigh... CSBGenericTransferType* transferType = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() ); - CleanupStack::PushL( transferType ); - switch(type) + CleanupStack::PushL( transferType ); + if ( ESIDTransferDerivedType == type ) { - case ESIDTransferDerivedType: ret = CSBSIDTransferType::NewL( transferType ); - break; - case EPackageTransferDerivedType: + } + else if ( EPackageTransferDerivedType == type ) + { ret = CSBPackageTransferType::NewL( transferType ); - break; - case EJavaTransferDerivedType: + } + // Type is EJavaTransferDerivedType + else + { ret = CSBJavaTransferType::NewL( transferType ); - break; - default: - break; } CleanupStack::PopAndDestroy( transferType ); } diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/bwins/fmbkupenginewrapperu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/fmbkupenginewrapper/bwins/fmbkupenginewrapperu.def Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,69 @@ +EXPORTS + ??0FmRestoreSettings@@QAE@AAVFmBkupEngine@@@Z @ 1 NONAME ; FmRestoreSettings::FmRestoreSettings(class FmBkupEngine &) + ?tr@FmBkupEngine@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString FmBkupEngine::tr(char const *, char const *) + ?getStaticMetaObject@FmBkupEngine@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & FmBkupEngine::getStaticMetaObject(void) + ?trUtf8@FmBkupEngine@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString FmBkupEngine::trUtf8(char const *, char const *, int) + ?error@FmBkupEngine@@QBEHXZ @ 5 NONAME ; int FmBkupEngine::error(void) const + ?availableTargetDrive@FmBackupSettings@@QBE?AVQString@@XZ @ 6 NONAME ; class QString FmBackupSettings::availableTargetDrive(void) const + ?GetSelectionL@FmRestoreSettings@@QBEXAAV?$QList@VFmRestoreInfo@@@@@Z @ 7 NONAME ; void FmRestoreSettings::GetSelectionL(class QList &) const + ?content@FmBackupSettings@@QBEIXZ @ 8 NONAME ; unsigned int FmBackupSettings::content(void) const + ?getBackupDriveList@FmBkupEngine@@QAEXAAVQStringList@@@Z @ 9 NONAME ; void FmBkupEngine::getBackupDriveList(class QStringList &) + ?resetAndDestoryRestoreEntry@FmRestoreSettings@@AAEXXZ @ 10 NONAME ; void FmRestoreSettings::resetAndDestoryRestoreEntry(void) + ?targetDriveToString@FmBackupSettings@@QAE?AVQString@@ABV2@@Z @ 11 NONAME ; class QString FmBackupSettings::targetDriveToString(class QString const &) + ?setScheduling@FmBackupSettings@@QAEXW4TFileManagerBackupSchedule@1@@Z @ 12 NONAME ; void FmBackupSettings::setScheduling(enum FmBackupSettings::TFileManagerBackupSchedule) + ?notifyFinish@FmBkupEngine@@IAEXH@Z @ 13 NONAME ; void FmBkupEngine::notifyFinish(int) + ?qt_metacast@FmBkupEngine@@UAEPAXPBD@Z @ 14 NONAME ; void * FmBkupEngine::qt_metacast(char const *) + ??0FmBackupSettings@@QAE@PAVFmBkupEngine@@@Z @ 15 NONAME ; FmBackupSettings::FmBackupSettings(class FmBkupEngine *) + ?SetSelection@FmRestoreSettings@@QAEXAB_K@Z @ 16 NONAME ; void FmRestoreSettings::SetSelection(unsigned long long const &) + ?startBackup@FmBkupEngine@@QAE_NV?$QList@PAVFmBkupDrivesAndOperation@@@@V?$QList@PAVFmBkupBackupCategory@@@@VQString@@I@Z @ 17 NONAME ; bool FmBkupEngine::startBackup(class QList, class QList, class QString, unsigned int) + ?notifyMemoryLow@FmBkupEngine@@IAEXHAAH@Z @ 18 NONAME ; void FmBkupEngine::notifyMemoryLow(int, int &) + ?CreateEntry@FmRestoreSettings@@AAEPAVFmRestoreEntry@@ABVFmRestoreInfo@@@Z @ 19 NONAME ; class FmRestoreEntry * FmRestoreSettings::CreateEntry(class FmRestoreInfo const &) + ?startRestore@FmBkupEngine@@QAE_NV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 20 NONAME ; bool FmBkupEngine::startRestore(class QList) + ?resetAndDestoryBackupEntry@FmBackupSettings@@AAEXXZ @ 21 NONAME ; void FmBackupSettings::resetAndDestoryBackupEntry(void) + ?weekdayToString@FmBackupSettings@@SA?AVQString@@W4TFileManagerBackupWeekday@1@@Z @ 22 NONAME ; class QString FmBackupSettings::weekdayToString(enum FmBackupSettings::TFileManagerBackupWeekday) + ?tr@FmBkupEngine@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString FmBkupEngine::tr(char const *, char const *, int) + ?contentToString@FmBackupSettings@@SA?AVQString@@I@Z @ 24 NONAME ; class QString FmBackupSettings::contentToString(unsigned int) + ?RestoreSettingsL@FmBkupEngine@@QAEPAVFmRestoreSettings@@XZ @ 25 NONAME ; class FmRestoreSettings * FmBkupEngine::RestoreSettingsL(void) + ?createBackupDateEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 26 NONAME ; class FmBackupEntry * FmBackupSettings::createBackupDateEntry(void) + ?GetRestoreInfoArray@FmBkupEngine@@QAEXAAV?$QList@PAVFmBkupDrivesAndOperation@@@@AAV?$QList@VFmRestoreInfo@@@@ABVQString@@@Z @ 27 NONAME ; void FmBkupEngine::GetRestoreInfoArray(class QList &, class QList &, class QString const &) + ?time@FmBackupSettings@@QBEABVQTime@@XZ @ 28 NONAME ; class QTime const & FmBackupSettings::time(void) const + ?createWeekdayEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 29 NONAME ; class FmBackupEntry * FmBackupSettings::createWeekdayEntry(void) + ?cancelBackup@FmBkupEngine@@QAEXXZ @ 30 NONAME ; void FmBkupEngine::cancelBackup(void) + ?notifyUpdate@FmBkupEngine@@IAEXH@Z @ 31 NONAME ; void FmBkupEngine::notifyUpdate(int) + ?save@FmBackupSettings@@QAEXXZ @ 32 NONAME ; void FmBackupSettings::save(void) + ??_EFmBkupEngine@@UAE@I@Z @ 33 NONAME ; FmBkupEngine::~FmBkupEngine(unsigned int) + ?restoreEntryList@FmRestoreSettings@@QAE?AV?$QList@PAVFmRestoreEntry@@@@XZ @ 34 NONAME ; class QList FmRestoreSettings::restoreEntryList(void) + ?createTimeEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 35 NONAME ; class FmBackupEntry * FmBackupSettings::createTimeEntry(void) + ?weekday@FmBackupSettings@@QBE?AW4TFileManagerBackupWeekday@1@XZ @ 36 NONAME ; enum FmBackupSettings::TFileManagerBackupWeekday FmBackupSettings::weekday(void) const + ?deleteBackup@FmBkupEngine@@QAEHV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 37 NONAME ; int FmBkupEngine::deleteBackup(class QList) + ??1FmBackupSettings@@QAE@XZ @ 38 NONAME ; FmBackupSettings::~FmBackupSettings(void) + ?setTime@FmBackupSettings@@QAEXABVQTime@@@Z @ 39 NONAME ; void FmBackupSettings::setTime(class QTime const &) + ?backupEntryList@FmBackupSettings@@QAE?AV?$QList@PAVFmBackupEntry@@@@XZ @ 40 NONAME ; class QList FmBackupSettings::backupEntryList(void) + ?contentsSelected@FmBackupSettings@@ABEHXZ @ 41 NONAME ; int FmBackupSettings::contentsSelected(void) const + ?refreshList@FmBackupSettings@@AAEXXZ @ 42 NONAME ; void FmBackupSettings::refreshList(void) + ?trUtf8@FmBkupEngine@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString FmBkupEngine::trUtf8(char const *, char const *) + ?CreateEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@ABVQString@@0W4TSettingType@2@@Z @ 44 NONAME ; class FmBackupEntry * FmBackupSettings::CreateEntry(class QString const &, class QString const &, enum FmBackupEntry::TSettingType) + ?targetDrive@FmBackupSettings@@QBE?AVQString@@XZ @ 45 NONAME ; class QString FmBackupSettings::targetDrive(void) const + ??0FmBkupEngine@@QAE@PAVQObject@@@Z @ 46 NONAME ; FmBkupEngine::FmBkupEngine(class QObject *) + ?notifyPreparing@FmBkupEngine@@IAEX_N@Z @ 47 NONAME ; void FmBkupEngine::notifyPreparing(bool) + ?load@FmRestoreSettings@@QAEXV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 48 NONAME ; void FmRestoreSettings::load(class QList) + ?setWeekday@FmBackupSettings@@QAEXW4TFileManagerBackupWeekday@1@@Z @ 49 NONAME ; void FmBackupSettings::setWeekday(enum FmBackupSettings::TFileManagerBackupWeekday) + ??1FmRestoreSettings@@QAE@XZ @ 50 NONAME ; FmRestoreSettings::~FmRestoreSettings(void) + ?createContentsEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 51 NONAME ; class FmBackupEntry * FmBackupSettings::createContentsEntry(void) + ?notifyBackupFilesExist@FmBkupEngine@@IAEXAA_N@Z @ 52 NONAME ; void FmBkupEngine::notifyBackupFilesExist(bool &) + ?updateBackupDate@FmBackupSettings@@QAEXXZ @ 53 NONAME ; void FmBackupSettings::updateBackupDate(void) + ?createSchedulingEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 54 NONAME ; class FmBackupEntry * FmBackupSettings::createSchedulingEntry(void) + ?metaObject@FmBkupEngine@@UBEPBUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const * FmBkupEngine::metaObject(void) const + ?createTargetDriveEntry@FmBackupSettings@@AAEPAVFmBackupEntry@@XZ @ 56 NONAME ; class FmBackupEntry * FmBackupSettings::createTargetDriveEntry(void) + ?load@FmBackupSettings@@QAEXXZ @ 57 NONAME ; void FmBackupSettings::load(void) + ??1FmBkupEngine@@UAE@XZ @ 58 NONAME ; FmBkupEngine::~FmBkupEngine(void) + ?BackupSettingsL@FmBkupEngine@@QAEPAVFmBackupSettings@@XZ @ 59 NONAME ; class FmBackupSettings * FmBkupEngine::BackupSettingsL(void) + ?setContent@FmBackupSettings@@QAEXI@Z @ 60 NONAME ; void FmBackupSettings::setContent(unsigned int) + ?schedulingToString@FmBackupSettings@@QAE?AVQString@@W4TFileManagerBackupSchedule@1@@Z @ 61 NONAME ; class QString FmBackupSettings::schedulingToString(enum FmBackupSettings::TFileManagerBackupSchedule) + ?setTargetDrive@FmBackupSettings@@QAEXABVQString@@@Z @ 62 NONAME ; void FmBackupSettings::setTargetDrive(class QString const &) + ?staticMetaObject@FmBkupEngine@@2UQMetaObject@@B @ 63 NONAME ; struct QMetaObject const FmBkupEngine::staticMetaObject + ?refreshList@FmRestoreSettings@@AAEXAAV?$QList@PAVFmBkupDrivesAndOperation@@@@@Z @ 64 NONAME ; void FmRestoreSettings::refreshList(class QList &) + ?notifyStart@FmBkupEngine@@IAEX_NH@Z @ 65 NONAME ; void FmBkupEngine::notifyStart(bool, int) + ?scheduling@FmBackupSettings@@QBE?AW4TFileManagerBackupSchedule@1@XZ @ 66 NONAME ; enum FmBackupSettings::TFileManagerBackupSchedule FmBackupSettings::scheduling(void) const + ?qt_metacall@FmBkupEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 67 NONAME ; int FmBkupEngine::qt_metacall(enum QMetaObject::Call, int, void * *) + diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/eabi/fmbkupenginewrapperu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/fmbkupenginewrapper/eabi/fmbkupenginewrapperu.def Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,73 @@ +EXPORTS + _ZN12FmBkupEngine11notifyStartEbi @ 1 NONAME + _ZN12FmBkupEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME + _ZN12FmBkupEngine11qt_metacastEPKc @ 3 NONAME + _ZN12FmBkupEngine11startBackupE5QListIP24FmBkupDrivesAndOperationES0_IP20FmBkupBackupCategoryE7QStringj @ 4 NONAME + _ZN12FmBkupEngine12cancelBackupEv @ 5 NONAME + _ZN12FmBkupEngine12deleteBackupE5QListIP24FmBkupDrivesAndOperationE @ 6 NONAME + _ZN12FmBkupEngine12notifyFinishEi @ 7 NONAME + _ZN12FmBkupEngine12notifyUpdateEi @ 8 NONAME + _ZN12FmBkupEngine12startRestoreE5QListIP24FmBkupDrivesAndOperationE @ 9 NONAME + _ZN12FmBkupEngine15BackupSettingsLEv @ 10 NONAME + _ZN12FmBkupEngine15notifyMemoryLowEiRi @ 11 NONAME + _ZN12FmBkupEngine15notifyPreparingEb @ 12 NONAME + _ZN12FmBkupEngine16RestoreSettingsLEv @ 13 NONAME + _ZN12FmBkupEngine16staticMetaObjectE @ 14 NONAME DATA 16 + _ZN12FmBkupEngine18getBackupDriveListER11QStringList @ 15 NONAME + _ZN12FmBkupEngine19GetRestoreInfoArrayER5QListIP24FmBkupDrivesAndOperationERS0_I13FmRestoreInfoERK7QString @ 16 NONAME + _ZN12FmBkupEngine19getStaticMetaObjectEv @ 17 NONAME + _ZN12FmBkupEngine22notifyBackupFilesExistERb @ 18 NONAME + _ZN12FmBkupEngineC1EP7QObject @ 19 NONAME + _ZN12FmBkupEngineC2EP7QObject @ 20 NONAME + _ZN12FmBkupEngineD0Ev @ 21 NONAME + _ZN12FmBkupEngineD1Ev @ 22 NONAME + _ZN12FmBkupEngineD2Ev @ 23 NONAME + _ZN16FmBackupSettings10setContentEj @ 24 NONAME + _ZN16FmBackupSettings10setWeekdayENS_25TFileManagerBackupWeekdayE @ 25 NONAME + _ZN16FmBackupSettings11CreateEntryERK7QStringS2_N13FmBackupEntry12TSettingTypeE @ 26 NONAME + _ZN16FmBackupSettings11refreshListEv @ 27 NONAME + _ZN16FmBackupSettings13setSchedulingENS_26TFileManagerBackupScheduleE @ 28 NONAME + _ZN16FmBackupSettings14setTargetDriveERK7QString @ 29 NONAME + _ZN16FmBackupSettings15backupEntryListEv @ 30 NONAME + _ZN16FmBackupSettings15contentToStringEj @ 31 NONAME + _ZN16FmBackupSettings15createTimeEntryEv @ 32 NONAME + _ZN16FmBackupSettings15weekdayToStringENS_25TFileManagerBackupWeekdayE @ 33 NONAME + _ZN16FmBackupSettings16updateBackupDateEv @ 34 NONAME + _ZN16FmBackupSettings18createWeekdayEntryEv @ 35 NONAME + _ZN16FmBackupSettings18schedulingToStringENS_26TFileManagerBackupScheduleE @ 36 NONAME + _ZN16FmBackupSettings19createContentsEntryEv @ 37 NONAME + _ZN16FmBackupSettings19targetDriveToStringERK7QString @ 38 NONAME + _ZN16FmBackupSettings21createBackupDateEntryEv @ 39 NONAME + _ZN16FmBackupSettings21createSchedulingEntryEv @ 40 NONAME + _ZN16FmBackupSettings22createTargetDriveEntryEv @ 41 NONAME + _ZN16FmBackupSettings26resetAndDestoryBackupEntryEv @ 42 NONAME + _ZN16FmBackupSettings4loadEv @ 43 NONAME + _ZN16FmBackupSettings4saveEv @ 44 NONAME + _ZN16FmBackupSettings7setTimeERK5QTime @ 45 NONAME + _ZN16FmBackupSettingsC1EP12FmBkupEngine @ 46 NONAME + _ZN16FmBackupSettingsC2EP12FmBkupEngine @ 47 NONAME + _ZN16FmBackupSettingsD1Ev @ 48 NONAME + _ZN16FmBackupSettingsD2Ev @ 49 NONAME + _ZN17FmRestoreSettings11CreateEntryERK13FmRestoreInfo @ 50 NONAME + _ZN17FmRestoreSettings11refreshListER5QListIP24FmBkupDrivesAndOperationE @ 51 NONAME + _ZN17FmRestoreSettings12SetSelectionERKy @ 52 NONAME + _ZN17FmRestoreSettings16restoreEntryListEv @ 53 NONAME + _ZN17FmRestoreSettings27resetAndDestoryRestoreEntryEv @ 54 NONAME + _ZN17FmRestoreSettings4loadE5QListIP24FmBkupDrivesAndOperationE @ 55 NONAME + _ZN17FmRestoreSettingsC1ER12FmBkupEngine @ 56 NONAME + _ZN17FmRestoreSettingsC2ER12FmBkupEngine @ 57 NONAME + _ZN17FmRestoreSettingsD1Ev @ 58 NONAME + _ZN17FmRestoreSettingsD2Ev @ 59 NONAME + _ZNK12FmBkupEngine10metaObjectEv @ 60 NONAME + _ZNK12FmBkupEngine5errorEv @ 61 NONAME + _ZNK16FmBackupSettings10schedulingEv @ 62 NONAME + _ZNK16FmBackupSettings11targetDriveEv @ 63 NONAME + _ZNK16FmBackupSettings16contentsSelectedEv @ 64 NONAME + _ZNK16FmBackupSettings20availableTargetDriveEv @ 65 NONAME + _ZNK16FmBackupSettings4timeEv @ 66 NONAME + _ZNK16FmBackupSettings7contentEv @ 67 NONAME + _ZNK16FmBackupSettings7weekdayEv @ 68 NONAME + _ZNK17FmRestoreSettings13GetSelectionLER5QListI13FmRestoreInfoE @ 69 NONAME + _ZTI12FmBkupEngine @ 70 NONAME + _ZTV12FmBkupEngine @ 71 NONAME + diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/fmbkupenginewrapper.pro --- a/filemanager/src/fmbkupenginewrapper/fmbkupenginewrapper.pro Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/fmbkupenginewrapper.pro Thu Jul 22 16:30:56 2010 +0100 @@ -14,6 +14,7 @@ # Description: The project file of FmBkupEngineWrapper # +CONFIG += hb TARGET = TEMPLATE = lib QT = core diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/inc/fmbackupsettings.h --- a/filemanager/src/fmbkupenginewrapper/inc/fmbackupsettings.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/inc/fmbackupsettings.h Thu Jul 22 16:30:56 2010 +0100 @@ -24,31 +24,7 @@ #include #include -const QString constFileManagerBackupWeekdayMonday = "Monday"; -const QString constFileManagerBackupWeekdayTuesday = "Tuesday"; -const QString constFileManagerBackupWeekdayWednesday = "Wednesday"; -const QString constFileManagerBackupWeekdayThursday = "Thursday"; -const QString constFileManagerBackupWeekdayFirday = "Friday"; -const QString constFileManagerBackupWeekdaySaturday = "Saturday"; -const QString constFileManagerBackupWeekdaySunday = "Sunday"; - -const QString constFileManagerBackupScheduleNever = "Never"; -const QString constFileManagerBackupScheduleDaily = "Daily"; -const QString constFileManagerBackupScheduleWeekly = "Weekly"; - -const QString constFileManagerBackupSettingsTitleContents = "Backup Contents"; -const QString constFileManagerBackupSettingsTitleScheduling = "Backup scheduling"; -const QString constFileManagerBackupSettingsTitleWeekday = "Weekday"; -const QString constFileManagerBackupSettingsTitleTime = "Time"; -const QString constFileManagerBackupSettingsTitleTargetDrive = "Backup destination"; - -const QString constFileManagerBackupSettingsContentAll = "All"; -const QString constFileManagerBackupSettingsContentSettings = "Settings"; -const QString constFileManagerBackupSettingsContentMessages = "Messages"; -const QString constFileManagerBackupSettingsContentContacts = "Contacts"; -const QString constFileManagerBackupSettingsContentCalendar = "Calendar entries"; -const QString constFileManagerBackupSettingsContentBookmarks = "Bookmarks"; -const QString constFileManagerBackupSettingsContentUserFiles = "Files"; +#include class FmBkupEngine; diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/private/symbian/fmbkupengine_p.cpp --- a/filemanager/src/fmbkupenginewrapper/private/symbian/fmbkupengine_p.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/private/symbian/fmbkupengine_p.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -435,6 +435,8 @@ return FmErrCorrupt; case KErrNotReady: return FmErrNotReady; + case KErrDisMounted: + return FmErrDisMounted; default: return FmErrUnKnown; } @@ -722,7 +724,7 @@ int s = iDateTime.Second(); int year = iDateTime.Year(); int month = iDateTime.Month() + 1; - int day = iDateTime.Day(); + int day = iDateTime.Day()+1; QTime time( h, m, s); QDate date( year, month, day ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.cpp --- a/filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -149,7 +149,7 @@ void FmBkupEnginePrivate::GetRestoreInfoArray( QList drivesAndOperationList, QList< FmRestoreInfo > &restoreInfoList, - const int aDrive ) + const QString& aDrive ) { restoreInfoList.clear(); QString debugString; @@ -162,7 +162,7 @@ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() ); QString drive = settings.value( "drive" ).toString(); settings.endGroup(); - if( content != 0 && ( DriverNameToNumber(drive) == aDrive || aDrive < 0 ) ) + if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) ) { FmRestoreInfo restoreInfo( content, dateTime, drive ); restoreInfoList.push_back( restoreInfo ); @@ -173,7 +173,7 @@ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() ); drive = settings.value( "drive" ).toString(); settings.endGroup(); - if( content != 0 && ( DriverNameToNumber(drive) == aDrive || aDrive < 0 ) ) + if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) ) { FmRestoreInfo restoreInfo( content, dateTime, drive ); restoreInfoList.push_back( restoreInfo ); @@ -184,7 +184,7 @@ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() ); drive = settings.value( "drive" ).toString(); settings.endGroup(); - if( content != 0 && ( DriverNameToNumber(drive) == aDrive || aDrive < 0 ) ) + if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) ) { FmRestoreInfo restoreInfo( content, dateTime, drive ); restoreInfoList.push_back( restoreInfo ); @@ -195,7 +195,7 @@ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() ); drive = settings.value( "drive" ).toString(); settings.endGroup(); - if( content != 0 && ( DriverNameToNumber(drive) == aDrive || aDrive < 0 ) ) + if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) ) { FmRestoreInfo restoreInfo( content, dateTime, drive ); restoreInfoList.push_back( restoreInfo ); @@ -206,7 +206,7 @@ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() ); drive = settings.value( "drive" ).toString(); settings.endGroup(); - if( content != 0 && ( DriverNameToNumber(drive) == aDrive || aDrive < 0 ) ) + if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) ) { FmRestoreInfo restoreInfo( content, dateTime, drive ); restoreInfoList.push_back( restoreInfo ); @@ -217,7 +217,7 @@ dateTime.setTime_t( settings.value( "dateTime" ).toUInt() ); drive = settings.value( "drive" ).toString(); settings.endGroup(); - if( content != 0 && ( DriverNameToNumber(drive) == aDrive || aDrive < 0 ) ) + if( content != 0 && ( drive.contains( aDrive, Qt::CaseInsensitive ) || aDrive.isEmpty() ) ) { FmRestoreInfo restoreInfo( content, dateTime, drive ); restoreInfoList.push_back( restoreInfo ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.h --- a/filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/private/win32/fmbkupengine_p.h Thu Jul 22 16:30:56 2010 +0100 @@ -56,7 +56,7 @@ bool StartRestoreL( QList drivesAndOperationList ); void GetRestoreInfoArray( QList drivesAndOperationList, QList< FmRestoreInfo > &restoreInfoList, - const int aDrive = 0 ); + const QString& aDrive ); void getBackupDriveList( QStringList &driveList ); private: int DriverNameToNumber( QString driverName ); @@ -66,10 +66,15 @@ signals: void notifyPreparing( bool cancelable ); - void notifyStart( bool cancelable, int totalCount ); - void notifyUpdate( int count ); - void notifyFinish( int err ); - void notifyMemoryLow( int memoryValue, int &userError ); + void notifyStart( bool cancelable, int totalCount ); + void notifyUpdate( int count ); + void notifyFinish( int err ); + void notifyMemoryLow( int memoryValue, int &userError ); + + // win32 source code is used to simulator backup action. + // add this signal in win32 to avoid warning when run test case + // though it is not used in win32 source code currently + void notifyBackupFilesExist( bool &isContinue ); public slots: void onNotifyPreparing( bool cancelable ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/src/fmbackupsettings.cpp --- a/filemanager/src/fmbkupenginewrapper/src/fmbackupsettings.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/src/fmbackupsettings.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -25,6 +25,8 @@ #include #include +#include + FmBackupSettings::FmBackupSettings( FmBkupEngine *aFmBkupEngine ) : mBkupEngine( aFmBkupEngine ) { @@ -130,7 +132,7 @@ QString title; QString tips; - title = constFileManagerBackupSettingsTitleContents; + title = hbTrId( "Backup Contents" ); int selected( contentsSelected() ); if ( !( mContent & EFileManagerBackupContentAll ) && selected > 1 ){ @@ -151,7 +153,7 @@ QString title; QString tips; - title = constFileManagerBackupSettingsTitleScheduling; + title = hbTrId( "Backup scheduling" ); tips = schedulingToString( mScheduling ); return CreateEntry( title, tips, FmBackupEntry::EScheduling ); @@ -162,7 +164,7 @@ QString title; QString tips; - title = constFileManagerBackupSettingsTitleWeekday; + title = hbTrId( "Weekday" ); tips = weekdayToString( mWeekday ); return CreateEntry( title, tips, FmBackupEntry::EWeekday ); @@ -173,7 +175,7 @@ QString title; QString tips; - title = constFileManagerBackupSettingsTitleTime; + title = hbTrId( "Time" ); tips = mTime.toString( "hh:mm" ); return CreateEntry( title, tips, FmBackupEntry::ETime ); @@ -184,7 +186,7 @@ QString title; QString tips; - title = constFileManagerBackupSettingsTitleTargetDrive; + title = hbTrId( "Backup destination" ); tips = targetDriveToString( mTargetDrive ); return CreateEntry( title, tips, FmBackupEntry::ETarget ); @@ -195,38 +197,38 @@ QString tips; if( mDate.isNull() ) { - tips = "No previous backups created" ; + tips = hbTrId( "No previous backups created"); } else { - tips = QString( "Backup Created " + mDate.toString( "dd.MM.yyyy" ) ); + tips = hbTrId( "Backup Created " ) + mDate.toString( "dd.MM.yyyy" ); } return CreateEntry( QString(""), tips, FmBackupEntry::EBackupdate); } QString FmBackupSettings::contentToString( const quint32 content ) { - QString ret( constFileManagerBackupSettingsContentAll ); + QString ret( hbTrId( "All" ) ); if ( content & EFileManagerBackupContentAll ){ - ret = constFileManagerBackupSettingsContentAll; + ret = hbTrId( "All" ); } else if ( content & EFileManagerBackupContentSettings ){ - ret = constFileManagerBackupSettingsContentSettings; + ret = hbTrId( "Settings" ); } else if ( content & EFileManagerBackupContentMessages ){ - ret = constFileManagerBackupSettingsContentMessages; + ret = hbTrId( "Messages" ); } else if ( content & EFileManagerBackupContentContacts ){ - ret = constFileManagerBackupSettingsContentContacts; + ret = hbTrId( "Contacts" ); } else if ( content & EFileManagerBackupContentCalendar ){ - ret = constFileManagerBackupSettingsContentCalendar; + ret = hbTrId( "Calendar" ); } else if ( content & EFileManagerBackupContentBookmarks ){ - ret = constFileManagerBackupSettingsContentBookmarks; + ret = hbTrId( "Bookmarks" ); } else if ( content & EFileManagerBackupContentUserFiles ){ - ret = constFileManagerBackupSettingsContentUserFiles; + ret = hbTrId( "Files" ); } return ret; } @@ -237,25 +239,25 @@ switch (weekday) { case EFileManagerBackupWeekdayMonday: - ret = constFileManagerBackupWeekdayMonday; + ret = hbTrId( "Monday" ); break; case EFileManagerBackupWeekdayTuesday: - ret = constFileManagerBackupWeekdayTuesday; + ret = hbTrId( "Tuesday" ); break; case EFileManagerBackupWeekdayWednesday: - ret = constFileManagerBackupWeekdayWednesday; + ret = hbTrId( "Wednesday" ); break; case EFileManagerBackupWeekdayThursday: - ret = constFileManagerBackupWeekdayThursday; + ret = hbTrId( "Thursday" ); break; case EFileManagerBackupWeekdayFriday: - ret = constFileManagerBackupWeekdayFirday; + ret = hbTrId( "Friday" ); break; case EFileManagerBackupWeekdaySaturday: - ret = constFileManagerBackupWeekdaySaturday; + ret = hbTrId( "Saturday" ); break; case EFileManagerBackupWeekdaySunday: - ret = constFileManagerBackupWeekdaySunday; + ret = hbTrId( "Sunday" ); break; } return ret; @@ -268,13 +270,13 @@ switch (scheduling) { case EFileManagerBackupScheduleNever: - ret = constFileManagerBackupScheduleNever; + ret = hbTrId( "Never" ); break; case EFileManagerBackupScheduleDaily: - ret = constFileManagerBackupScheduleDaily; + ret = hbTrId ("Daily" ); break; case EFileManagerBackupScheduleWeekly: - ret = constFileManagerBackupScheduleWeekly; + ret = hbTrId( "Weekly" ); break; } return ret; diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmbkupenginewrapper/src/fmbkupengine.cpp --- a/filemanager/src/fmbkupenginewrapper/src/fmbkupengine.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmbkupenginewrapper/src/fmbkupengine.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -30,7 +30,7 @@ connect( d, SIGNAL( notifyStart( bool, int ) ), this, SIGNAL( notifyStart( bool, int ) ) ); connect( d, SIGNAL( notifyUpdate(int) ), this, SIGNAL( notifyUpdate(int) ) ); connect( d, SIGNAL( notifyFinish(int) ), - this, SIGNAL( notifyFinish(int) ) ); + this, SIGNAL( notifyFinish(int) ), Qt::DirectConnection ); connect( d, SIGNAL( notifyMemoryLow(int, int& ) ), this, SIGNAL( notifyMemoryLow(int, int&) ) ); connect( d, SIGNAL( notifyBackupFilesExist( bool& )), this, SIGNAL( notifyBackupFilesExist( bool&) ) ); } diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmfiledialog/bwins/fmfiledialogu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/fmfiledialog/bwins/fmfiledialogu.def Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,25 @@ +EXPORTS + ??_EFmFileDialog@@UAE@I@Z @ 1 NONAME ; FmFileDialog::~FmFileDialog(unsigned int) + ?qt_metacall@FmFileDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2 NONAME ; int FmFileDialog::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1FmFileDialog@@EAE@XZ @ 3 NONAME ; FmFileDialog::~FmFileDialog(void) + ?tr@FmFileDialog@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString FmFileDialog::tr(char const *, char const *, int) + ?getOpenFileName@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 5 NONAME ; class QString FmFileDialog::getOpenFileName(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags) + ??0FmFileDialog@@AAE@PAVQGraphicsItem@@@Z @ 6 NONAME ; FmFileDialog::FmFileDialog(class QGraphicsItem *) + ?tr@FmFileDialog@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString FmFileDialog::tr(char const *, char const *) + ?getStaticMetaObject@FmFileDialog@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & FmFileDialog::getStaticMetaObject(void) + ?d_func@FmFileDialog@@ABEPBVFmFileDialogPrivate@@XZ @ 9 NONAME ; class FmFileDialogPrivate const * FmFileDialog::d_func(void) const + ?exec@FmFileDialog@@AAE_NXZ @ 10 NONAME ; bool FmFileDialog::exec(void) + ?trUtf8@FmFileDialog@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString FmFileDialog::trUtf8(char const *, char const *) + ?trUtf8@FmFileDialog@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString FmFileDialog::trUtf8(char const *, char const *, int) + ?metaObject@FmFileDialog@@UBEPBUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const * FmFileDialog::metaObject(void) const + ?staticMetaObject@FmFileDialog@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const FmFileDialog::staticMetaObject + ?getSaveFileName@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 15 NONAME ; class QString FmFileDialog::getSaveFileName(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags) + ?d_func@FmFileDialog@@AAEPAVFmFileDialogPrivate@@XZ @ 16 NONAME ; class FmFileDialogPrivate * FmFileDialog::d_func(void) + ?getExistingDirectory@FmFileDialog@@SA?AVQString@@PAVHbWidget@@ABV2@1ABVQStringList@@V?$QFlags@W4Option@FmFileDialog@@@@@Z @ 17 NONAME ; class QString FmFileDialog::getExistingDirectory(class HbWidget *, class QString const &, class QString const &, class QStringList const &, class QFlags) + ?qt_metacast@FmFileDialog@@UAEPAXPBD@Z @ 18 NONAME ; void * FmFileDialog::qt_metacast(char const *) + ?dialogClosed@FmFileDialog@@AAEXPAVHbAction@@@Z @ 19 NONAME ; void FmFileDialog::dialogClosed(class HbAction *) + ?setSecondaryAction@FmFileDialog@@AAEXPAVHbAction@@@Z @ 20 NONAME ; void FmFileDialog::setSecondaryAction(class HbAction *) + ?secondaryAction@FmFileDialog@@ABEPAVHbAction@@XZ @ 21 NONAME ; class HbAction * FmFileDialog::secondaryAction(void) const + ?setPrimaryAction@FmFileDialog@@AAEXPAVHbAction@@@Z @ 22 NONAME ; void FmFileDialog::setPrimaryAction(class HbAction *) + ?primaryAction@FmFileDialog@@ABEPAVHbAction@@XZ @ 23 NONAME ; class HbAction * FmFileDialog::primaryAction(void) const + diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmfiledialog/eabi/fmfiledialogu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/fmfiledialog/eabi/fmfiledialogu.def Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,27 @@ +EXPORTS + _ZN12FmFileDialog11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN12FmFileDialog11qt_metacastEPKc @ 2 NONAME + _ZN12FmFileDialog15getOpenFileNameEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 3 NONAME + _ZN12FmFileDialog15getSaveFileNameEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 4 NONAME + _ZN12FmFileDialog16staticMetaObjectE @ 5 NONAME DATA 16 + _ZN12FmFileDialog19getStaticMetaObjectEv @ 6 NONAME + _ZN12FmFileDialog20getExistingDirectoryEP8HbWidgetRK7QStringS4_RK11QStringList6QFlagsINS_6OptionEE @ 7 NONAME + _ZN12FmFileDialog4execEv @ 8 NONAME + _ZN12FmFileDialogC1EP13QGraphicsItem @ 9 NONAME + _ZN12FmFileDialogC2EP13QGraphicsItem @ 10 NONAME + _ZN12FmFileDialogD0Ev @ 11 NONAME + _ZN12FmFileDialogD1Ev @ 12 NONAME + _ZN12FmFileDialogD2Ev @ 13 NONAME + _ZNK12FmFileDialog10metaObjectEv @ 14 NONAME + _ZTI12FmFileDialog @ 15 NONAME + _ZTV12FmFileDialog @ 16 NONAME + _ZThn16_N12FmFileDialogD0Ev @ 17 NONAME + _ZThn16_N12FmFileDialogD1Ev @ 18 NONAME + _ZThn8_N12FmFileDialogD0Ev @ 19 NONAME + _ZThn8_N12FmFileDialogD1Ev @ 20 NONAME + _ZN12FmFileDialog12dialogClosedEP8HbAction @ 21 NONAME + _ZN12FmFileDialog16setPrimaryActionEP8HbAction @ 22 NONAME + _ZN12FmFileDialog18setSecondaryActionEP8HbAction @ 23 NONAME + _ZNK12FmFileDialog13primaryActionEv @ 24 NONAME + _ZNK12FmFileDialog15secondaryActionEv @ 25 NONAME + diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmfiledialog/src/fmfiledialog.cpp --- a/filemanager/src/fmfiledialog/src/fmfiledialog.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmfiledialog/src/fmfiledialog.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -68,7 +68,7 @@ FmFileDialog dialog( parent ); dialog.d_ptr->init( args ); if( dialog.exec() ) { - ret = FmUtils::fillPathWithSplash( dialog.d_ptr->currentPath() ); + ret = FmUtils::formatPath( dialog.d_ptr->currentPath() ); } return ret; } @@ -97,7 +97,7 @@ FmFileDialog dialog( parent ); dialog.d_ptr->init( args ); if( dialog.exec() ) { - ret = FmUtils::fillPathWithSplash( dialog.d_ptr->currentPath() ) + ret = FmUtils::formatPath( dialog.d_ptr->currentPath() ) + dialog.d_ptr->selectedFile(); } return ret; @@ -127,7 +127,7 @@ FmFileDialog dialog( parent ); dialog.d_ptr->init( args ); if( dialog.exec() ) { - ret = FmUtils::fillPathWithSplash( dialog.d_ptr->currentPath() ) + ret = FmUtils::formatPath( dialog.d_ptr->currentPath() ) + dialog.d_ptr->selectedFile(); } return ret; @@ -152,3 +152,55 @@ d_ptr->setRetAction( action ); d_ptr->eventLoop().exit(); } + + +HbAction *FmFileDialog::primaryAction() const +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() > 0) { + return (HbAction *)(actionList.at(0)); + } else { + return 0; + } + +} + +void FmFileDialog::setPrimaryAction( HbAction *action ) +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() == 0) { + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 1) { + actionList.clear(); + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 2) { + actionList.removeAt(0); + actionList.insert(0, action); + } +} + +HbAction *FmFileDialog::secondaryAction() const +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() > 1) { + return (HbAction *)(actionList.at(1)); + } else { + return 0; + } +} + +void FmFileDialog::setSecondaryAction( HbAction *action ) +{ + QList actionList = QGraphicsWidget::actions(); + if (actionList.size() == 0) { + QGraphicsWidget::addAction(new HbAction(hbTrId("Ok"))); + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 1) { + QGraphicsWidget::addAction(action); + } else if (actionList.size() == 2) { + actionList.removeAt(1); + actionList.insert(1, action); + } + +} + diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmfiledialog/src/fmfiledialog_p.cpp --- a/filemanager/src/fmfiledialog/src/fmfiledialog_p.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmfiledialog/src/fmfiledialog_p.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -90,11 +90,13 @@ { // Create action for ok button and assign it to the primary action of popup mOkAction = new HbAction( primaryActionText, mFileDialog ); + mOkAction->setObjectName( "okAction" ); Q_ASSERT( mOkAction ); mFileDialog->setPrimaryAction( mOkAction ); // Create action for cancel button and assign it to the secondary action of popup mCancelAction = new HbAction( secondaryActionText, mFileDialog ); + mCancelAction->setObjectName( "cancelAction" ); Q_ASSERT( mCancelAction ); mFileDialog->setSecondaryAction( mCancelAction ); } @@ -144,6 +146,7 @@ void FmFileDialogPrivate::createHeadingWidget() { mHeadingWidget = new HbWidget( mFileDialog ); + mHeadingWidget->setObjectName( "headingWidget" ); QGraphicsLinearLayout *headingLayout = new QGraphicsLinearLayout; headingLayout->setOrientation(Qt::Horizontal); @@ -154,6 +157,7 @@ titleLayout->setOrientation(Qt::Vertical); mTitleLabel = new HbLabel(); + mTitleLabel->setObjectName( "titleLabel" ); if( mArgs.mTitle.isEmpty() ){ mTitleLabel->setPlainText( QString( FmPlaceholderString ) ); } else { @@ -161,9 +165,11 @@ } mCurrentPathLabel = new HbLabel( QString( FmPlaceholderString ) ); + mCurrentPathLabel->setObjectName( "currentPathLabel" ); mCurrentPathLabel->setElideMode(Qt::ElideRight); mUpButton = new HbPushButton; + mUpButton->setObjectName( "upButton" ); mUpButton->setIcon(HbIcon(backButtonIcon)); titleLayout->addItem( mTitleLabel ); @@ -187,6 +193,7 @@ void FmFileDialogPrivate::createContentWidget() { mContentWidget = new HbWidget( mFileDialog ); + mContentWidget->setObjectName( "contentWidget" ); mContentLayout = new QGraphicsLinearLayout; mContentLayout->setOrientation(Qt::Vertical); @@ -194,6 +201,7 @@ mContentWidget->setLayout( mContentLayout ); mFileWidget = new FmFileWidget( mContentWidget ); + mFileWidget->setObjectName( "fileWidget" ); mContentLayout->addItem( mFileWidget ); mFileDialog->setContentWidget( mContentWidget ); @@ -210,15 +218,18 @@ return; } HbWidget *bottomWidget = new HbWidget( mContentWidget ); + bottomWidget->setObjectName( "bottomWidget" ); mContentLayout->addItem( bottomWidget ); QGraphicsLinearLayout *bottomLayout = new QGraphicsLinearLayout; bottomLayout->setOrientation( Qt::Horizontal ); mFileNameTitleLabel = new HbLabel( mFileDialog->tr( "file name:" ), bottomWidget ); + mFileNameTitleLabel->setObjectName( "fileNameTitleLabel" ); bottomLayout->addItem( mFileNameTitleLabel ); mFileNameLineEdit = new HbLineEdit( bottomWidget ); + mFileNameLineEdit->setObjectName( "fileNameLineEdit" ); bottomLayout->addItem( mFileNameLineEdit ); bottomWidget->setLayout( bottomLayout ); @@ -256,10 +267,12 @@ } break; case SaveFileMode: - if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ) { - mFileNameLineEdit->setReadOnly( true ); - } else { - mFileNameLineEdit->setReadOnly( false ); + if( mFileNameLineEdit ){ + if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ) { + mFileNameLineEdit->setReadOnly( true ); + } else { + mFileNameLineEdit->setReadOnly( false ); + } } break; } diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmfiledialog/src/fmfilewidget.cpp --- a/filemanager/src/fmfiledialog/src/fmfilewidget.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmfiledialog/src/fmfilewidget.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -21,6 +21,7 @@ #include "fmdrivemodel.h" #include "fmdrivewatcher.h" #include "fmcommon.h" +#include "fmfileiconprovider.h" #include "hbstyle.h" #include "hbabstractitemview.h" @@ -28,7 +29,7 @@ #include #include -#include +#include #include #include @@ -43,7 +44,8 @@ FmFileWidget::~FmFileWidget() { setModel( 0 ); - delete mDirModel; + delete mFileSystemModel; + delete mFileIconProvider; delete mDriveModel; mDriveWatcher->cancelWatch(); @@ -57,8 +59,8 @@ if( !index.isValid() ) { return QFileInfo(); } - if( mCurrentModel == mDirModel ) { - return mDirModel->fileInfo( index ); + if( mCurrentModel == mFileSystemModel ) { + return mFileSystemModel->fileInfo( index ); } else { return QFileInfo(); } @@ -67,16 +69,18 @@ void FmFileWidget::setRootPath( const QString &pathName ) { FmLogger::log( "FmFileWidget::setRootPath start" ); - if( pathName.isEmpty() || !FmUtils::isPathAccessabel( pathName ) ) { + // If path is empty or can not access, set model as DriveModel + // Otherwise set model as FileSystemModel, means it will return to drive view if error occur. + if( ( pathName.isEmpty() ) || ( FmErrNone != FmUtils::isPathAccessabel( pathName ) ) ) { FmLogger::log( "FmFileWidget::setRootPath set drive model" ); setModel( mDriveModel ); FmLogger::log( "FmFileWidget::setRootPath set drive model end" ); emit pathChanged( QString() ); } else { FmLogger::log( "FmFileWidget::setRootPath set dir model end" ); - setModel( mDirModel ); + setModel( mFileSystemModel ); FmLogger::log( "FmFileWidget::setRootPath set dir model end" ); - mListView->setRootIndex( mDirModel->index( pathName ) ); + mListView->setRootIndex( mFileSystemModel->setRootPath( pathName ) ); FmLogger::log( "FmFileWidget::setRootPath set rootIndex" ); emit pathChanged( pathName ); } @@ -92,6 +96,7 @@ { FmLogger::log("FmFileWidget::on_list_activated start" ); if( mCurrentModel == mDriveModel ) { + //If currenty model is DriveModel, open drive and set path QString driveName = mDriveModel->driveName( mActivatedModelIndex ); QString checkedPath = FmUtils::checkDriveToFolderFilter( driveName ); if( checkedPath.isEmpty() ) { @@ -100,21 +105,21 @@ } FmLogger::log("FmFileWidget::on_list_activated setModel dir start" ); - setModel( mDirModel ); + setModel( mFileSystemModel ); FmLogger::log("FmFileWidget::on_list_activated setModel dir end" ); - mListView->setRootIndex( mDirModel->index( checkedPath ) ); + setRootPath( checkedPath ); FmLogger::log("FmFileWidget::on_list_activated setRootIndex" ); emit pathChanged( checkedPath ); FmLogger::log("FmFileWidget::on_list_activated finish emit pathChanged" ); } - else if( mCurrentModel == mDirModel ) { - if ( mDirModel->isDir( mActivatedModelIndex ) ) { + else if( mCurrentModel == mFileSystemModel ) { + //If currenty model is FileSystemModel, open path or emit file activate signal. + if ( mFileSystemModel->isDir( mActivatedModelIndex ) ) { FmLogger::log("FmFileWidget::on_list_activated start changeRootIndex" ); changeRootIndex( mActivatedModelIndex ); FmLogger::log("FmFileWidget::on_list_activated finish changeRootIndex" ); - FmLogger::log("FmFileWidget::on_list_activated finish emit fileActivated" ); } else { - QFileInfo fileInfo( mDirModel->filePath( mActivatedModelIndex ) ); + QFileInfo fileInfo( mFileSystemModel->filePath( mActivatedModelIndex ) ); if( fileInfo.isFile() ) { emit fileActivated( fileInfo.fileName() ); FmLogger::log("FmFileWidget::on_list_activated finish emit fileActivated" ); @@ -128,27 +133,26 @@ void FmFileWidget::setModelFilter( QDir::Filters filters ) { - mDirModel->setFilter( filters ); + mFileSystemModel->setFilter( filters ); } void FmFileWidget::setNameFilters( const QStringList &nameFilters ) { - mDirModel->setNameFilters( nameFilters ); + mFileSystemModel->setNameFilters( nameFilters ); } void FmFileWidget::changeRootIndex( const QModelIndex &index ) { FmLogger::log("FmFileWidget::changeRootIndex start" ); - if( mCurrentModel != mDirModel ) { - FmLogger::log("FmFileWidget::changeRootIndex end because model not equal dirmodel" ); + if( mCurrentModel != mFileSystemModel ) { + FmLogger::log("FmFileWidget::changeRootIndex end because model not equal mFileSystemModel" ); return; } - mDirModel->fetchMore(index); - mListView->setRootIndex( index ); - QFileInfo fileInfo = mDirModel->fileInfo( mListView->rootIndex() ); - QString string = fileInfo.absoluteFilePath(); - emit pathChanged( string ); + mFileSystemModel->fetchMore(index); + QString filePath = mFileSystemModel->fileInfo( index ).absoluteFilePath(); + // pathChanged signal will be emitted in setRootPath + setRootPath( filePath ); FmLogger::log("FmFileWidget::changeRootIndex end" ); } @@ -164,10 +168,13 @@ mDriveModel = new FmDriveModel( this, FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume | FmDriveModel::HideUnAvailableDrive ); - qDebug("constructed dirveModel"); + qDebug( QTime::currentTime().toString().toUtf8().data() ); - mDirModel = new QDirModel( this ); - qDebug("constructed dirModel"); + mFileSystemModel = new QFileSystemModel( this ); + mFileIconProvider = new FmFileIconProvider(); + mFileSystemModel->setIconProvider( mFileIconProvider ); + qDebug("constructed mFileSystemModel"); + qDebug( QTime::currentTime().toString().toUtf8().data() ); setModel( mDriveModel ); qDebug("setmodel"); @@ -200,7 +207,7 @@ ViewType viewType = DriveView; if( mCurrentModel == mDriveModel ) { viewType = DriveView; - } else if( mCurrentModel == mDirModel ) { + } else if( mCurrentModel == mFileSystemModel ) { viewType = DirView; } else { Q_ASSERT( false ); @@ -214,6 +221,8 @@ QString path( FmUtils::checkFolderToDriveFilter( currentPath().absoluteFilePath() ) ); QFileInfo fileInfo( path ); QString cdUpPath; + // path length>3 means currenty path is a sub folder, then get up level path and navigate to it + // Otherwise means current path is a top level drive path, Should navigate to drive view. So setRootPath with empty path string. if( path.length() > 3 ) { cdUpPath = fileInfo.dir().absolutePath(); } @@ -230,7 +239,7 @@ setModel( mDriveModel ); emit pathChanged( QString() ); } else if( currentViewType() == DirView ) { - if( !FmUtils::isPathAccessabel( currentPath().absoluteFilePath() ) ) { + if( FmErrNone != FmUtils::isPathAccessabel( currentPath().absoluteFilePath() ) ) { // path not available, set model to drive FmLogger::log( QString( "FmFileDialog_FmFileWidget::on_driveWatcher_driveAddedOrChanged path not availeable, set drivemodel:" + currentPath().absoluteFilePath() ) ); diff -r b9588eb601eb -r e28107efca85 filemanager/src/fmfiledialog/src/fmfilewidget.h --- a/filemanager/src/fmfiledialog/src/fmfilewidget.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/fmfiledialog/src/fmfilewidget.h Thu Jul 22 16:30:56 2010 +0100 @@ -24,12 +24,14 @@ #include #include -class QDirModel; +class QFileSystemModel; class FmDriveModel; class FmDriveWatcher; class HbListView; class QGraphicsLinearLayout; +class FmFileIconProvider; + class FmFileWidget : public HbWidget { Q_OBJECT @@ -68,13 +70,15 @@ private: HbListView *mListView; QGraphicsLinearLayout *mLayout; - QDirModel *mDirModel; - FmDriveModel *mDriveModel; + QFileSystemModel *mFileSystemModel; + FmDriveModel *mDriveModel; QAbstractItemModel *mCurrentModel; FmDriveWatcher *mDriveWatcher; QModelIndex mActivatedModelIndex; + + FmFileIconProvider *mFileIconProvider; }; diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/commonutils.pri --- a/filemanager/src/inc/commonutils.pri Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/commonutils.pri Thu Jul 22 16:30:56 2010 +0100 @@ -17,11 +17,13 @@ INTERNAL_HEADERS += $$PWD/fmutils.h \ $$PWD/fmdrivemodel.h \ $$PWD/fmfileiconprovider.h \ - $$PWD/fmdrivewatcher/fmdrivewatcher.h + $$PWD/fmdrivewatcher/fmdrivewatcher.h \ + $$PWD/fmfiletyperecognizer.h INTERNAL_SOURCES += $$PWD/fmdrivemodel.cpp \ $$PWD/fmfileiconprovider.cpp \ - $$PWD/fmdrivewatcher/fmdrivewatcher.cpp + $$PWD/fmdrivewatcher/fmdrivewatcher.cpp \ + $$PWD/fmfiletyperecognizer.cpp symbian { INTERNAL_HEADERS += $$PWD/fms60utils.h \ diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmcommon.h --- a/filemanager/src/inc/fmcommon.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmcommon.h Thu Jul 22 16:30:56 2010 +0100 @@ -25,7 +25,7 @@ // MACRO for launch find view quickly from driver view and search "b" in "c:\ruby" //#define _DEBUG_SPEED_FINDVIEW_ -//#define _DEBUG_ENABLE_FORMATMENU_ +// #define _DEBUG_ENABLE_FORMATMENU_ // MARCO for hide d, z, folder except C:\data in windows for debug @@ -34,8 +34,10 @@ //#define _DEBUG_LOG_ENABLE_ //used to test drive hide which drive could be listed but not available -//#define _DEBUG_DISABLE_DRIVE_D_TEST_DRIVEHIDE_ +// #define _DEBUG_DISABLE_DRIVE_D_TEST_DRIVEHIDE_ +//used to test locked drive +// #define _DEBUG_LOCKED_DRIVE_Z #include "fmlogger.h" #include "fmdefine.h" diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmdefine.h --- a/filemanager/src/inc/fmdefine.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmdefine.h Thu Jul 22 16:30:56 2010 +0100 @@ -18,47 +18,55 @@ #define FMDEFINE_H // define for filemanager error -#define FmErrNone 0 -#define FmErrNotFound -1 -#define FmErrGeneral -2 -#define FmErrAlreadyExists -3 -#define FmErrAccessDenied -4 -#define FmErrCannotRemove -5 -#define FmErrCannotCopy -6 -#define FmErrDiskFull -7 -#define FmErrFileUsed -8 -#define FmErrFolderUsed -9 -#define FmErrTypeFormatFailed -10 -#define FmErrTypeFormatFailedUsed -11 -#define FmErrAlreadyStarted -12 -#define FmErrCancel -13 -#define FmErrWrongParam -14 -#define FmErrUnKnown -15 -#define FmErrIsNotFileOrFolder -16 -#define FmErrCannotMakeDir -17 -#define FmErrSrcPathDoNotExist -18 -#define FmErrDestPathDoNotExist -19 -#define FmErrCopyDestToSubFolderInSrc -20 -#define FmErrMoveDestToSubFolderInSrc -21 -#define FmErrNotSupported -22 -#define FmErrNotReady -23 -#define FmErrInUse -24 -#define FmErrPermissionDenied -25 -#define FmErrBadName -26 -#define FmErrPathNotFound -27 -#define FmErrRemoveDefaultFolder -28 -#define FmErrLocked -29 -#define FmErrCorrupt -30 +#define FmErrNone 0 // No Error +#define FmErrNotFound -1 // General error for things requested is not found +#define FmErrGeneral -2 // General error +#define FmErrAlreadyExists -3 // General for already existed. for example if unlock a drive but it has already been unlocked +#define FmErrAccessDenied -4 // General for Access is denied, for example, format a drive but access is denied. +#define FmErrCannotRemove -5 // General error for can not performance remove +#define FmErrCannotCopy -6 // General error for can not performance copy +#define FmErrDiskFull -7 // Error for disk is full +#define FmErrFileUsed -8 // Error for file is in use +#define FmErrFolderUsed -9 // Error for folder is in use +#define FmErrTypeFormatFailed -10 // Error reported when format failed +#define FmErrTypeFormatFailedUsed -11 // Error reported when user try to format a drive but it is in use +#define FmErrAlreadyStarted -12 // General error for operation is already started +#define FmErrCancel -13 // General error for operation canceled +#define FmErrWrongParam -14 // General error for wrong parameter +#define FmErrUnKnown -15 // Unknown error +#define FmErrIsNotFileOrFolder -16 // Error for a path which is not a fild or folder. +#define FmErrCannotMakeDir -17 // Error for can not create directory. +#define FmErrSrcPathDoNotExist -18 // Error for source path is not exist. +#define FmErrDestPathDoNotExist -19 // Error for destination path is not exist. +#define FmErrCopyDestToSubFolderInSrc -20 // If user try to copy a folder to its sub folder, error will occur +#define FmErrMoveDestToSubFolderInSrc -21 // If user try to move a folder to its sub folder, error will occur +#define FmErrNotSupported -22 // feature not supported, for example, lock an drive which can not be locked +#define FmErrNotReady -23 // Error when drive is not ready( means drive is not present ) +#define FmErrInUse -24 // Error for drive is in use. +#define FmErrPermissionDenied -25 // Permission Denied +#define FmErrBadName -26 // Bad Drive or file/folder name, currently used when rename drive +#define FmErrPathNotFound -27 // Error for path is not found +#define FmErrRemoveDefaultFolder -28 // Error when user try to remove default folder, such as C:/data/images... +#define FmErrLocked -29 // Disk is locked +#define FmErrCorrupt -30 // Disk is corrupt +#define FmErrDisMounted -31 // e.g. If disk dis mounted while backuping. +#define FmErrDriveNotAvailable -32 // e.g. if user want to access MMC but it is not available +#define FmErrPathDenied -33 // if user want to access path but it is denied, e.g c:/private +#define FmErrDriveDenied -34 // if user want to access drive but it is denied, e.g D:/ +#define FmErrPathNotExist -35 // path not existed. #define FmEstimateUpperLimit 90 // available mem/backup size*100%=90%, User selectable continuation #define FmEstimateLowerLimit 10 // available mem/backup size*100%=10%, Backup will be interrupted #define FmPlaceholderString " " // Placeholder for HbLabel because layout will be wrong when HbLabel is empty -#define Drive_C "C:/" -#define Drive_D "D:/" -#define Drive_Z "Z:/" -#define Folder_C_Data "C:/Data" +#define Drive_C ( QString( "C:" ) + QDir::separator() ) +#define Drive_D ( QString( "D:" ) + QDir::separator() ) +#define Drive_Z ( QString( "Z:" ) + QDir::separator() ) +#define Folder_C_Data ( QString( "C:" ) + QDir::separator() + QString( "Data" ) + QDir::separator() ) + +// define contact data path for view details. +#define FmViewDetail_Contacts ( "\\private\\10003a73\\SQLite__Contacts.cdb" ) #define FmMaxLengthofDriveName 11 #define FmMaxLengthofDrivePassword 8 diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmdrivemodel.cpp --- a/filemanager/src/inc/fmdrivemodel.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmdrivemodel.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -22,8 +22,11 @@ #include #include -FmDriveModel::FmDriveModel( QObject *parent, Options options ) : - QAbstractListModel( parent ), mOptions( options ) +#include + +FmDriveModel::FmDriveModel( QObject *parent, Options options, + FmDriveListProvider *driveListProvider ) : + QAbstractListModel( parent ), mOptions( options ), mDriveListProvider( driveListProvider ) { mIconProvider = new FmFileIconProvider(); refresh(); @@ -36,17 +39,27 @@ void FmDriveModel::refresh() { - QFileInfoList infoList = QDir::drives(); - + emit layoutAboutToBeChanged(); mDriveList.clear(); - if( mOptions & HideUnAvailableDrive ) { - FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) ); - FmUtils::getDriveList( mDriveList, true ); + + // if mDriveListProvider existed, use it to fetch drive list + // otherwise use FmUtils::getDriveList to fetch drive list. + if( mDriveListProvider ) { + mDriveListProvider->getDriveList( mDriveList ); } else { - FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) ); - FmUtils::getDriveList( mDriveList, false ); + if( mOptions & HideUnAvailableDrive ) { + FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) ); + FmUtils::getDriveList( mDriveList, true ); + } else { + FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) ); + FmUtils::getDriveList( mDriveList, false ); + } } - emit layoutChanged(); + + emit layoutChanged(); + for( int i=0; i #include -#include #include +class FmFileIconProvider; + +/*! + \class FmDriveListProvider + \brief The class FmDriveListProvider provide drive list which is used in FmDriveModel + */ +class FmDriveListProvider +{ +public: + FmDriveListProvider() + { + } + + virtual ~FmDriveListProvider() + { + } + + /*! + implement this function to provide drive list. + */ + virtual void getDriveList( QStringList &driveList ) = 0; +}; + class FmDriveModel : public QAbstractListModel { Q_OBJECT @@ -35,7 +57,8 @@ }; Q_DECLARE_FLAGS(Options, Option) - explicit FmDriveModel( QObject *parent = 0, Options options = 0 ); + explicit FmDriveModel( QObject *parent = 0, Options options = 0, + FmDriveListProvider *driveListProvider = 0 ); virtual ~FmDriveModel(); void refresh(); @@ -49,9 +72,13 @@ private: QStringList mFindResult; - QFileIconProvider *mIconProvider; + FmFileIconProvider *mIconProvider; QStringList mDriveList; Options mOptions; + + // DriveListProvider will ignore HideUnAvailableDrive option. + // DriveListProvide can be set by others to provide special drive list + FmDriveListProvider *mDriveListProvider; }; Q_DECLARE_OPERATORS_FOR_FLAGS(FmDriveModel::Options) diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmfileiconprovider.cpp --- a/filemanager/src/inc/fmfileiconprovider.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmfileiconprovider.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -16,58 +16,171 @@ */ #include "fmfileiconprovider.h" +#include "fmfiletyperecognizer.h" #include "fmutils.h" #include #include -#define mmcIcon ":image/qgn_prop_mmc_memc.svg" -#define mmcNoneIcon ":image/qgn_prop_fmgr_mmc_no_sub.svg" +#include "hbicon.h" + +//#define mmcIcon ":image/qgn_prop_mmc_memc.svg" +//#define mmcNoneIcon ":image/qgn_prop_fmgr_mmc_no_sub.svg" +//#define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" +//#define phoneMemoryIcon ":image/qgn_prop_phone_memc.svg" +//#define usbMemoryIcon ":image/qgn_prop_usb_memc.svg" +//#define massMemoryIcon ":image/qgn_prop_fmgr_ms.svg" + +#define phoneMemoryIcon "qtg_large_mobile" +#define massMemoryIcon "qtg_large_mass_storage" +#define mmcIcon "qtg_large_mmc" +#define mmcNoneIcon "qtg_large_mmc_removed" +#define usbMemoryIcon "qtg_large_usb_memory" + +//TODO: UI_Update: mmcl locked icon have not provided in icon spec +// Just use orignal custom-defined icon #define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" -#define phoneMemoryIcon ":image/qgn_prop_phone_memc.svg" -#define usbMemoryIcon ":image/qgn_prop_usb_memc.svg" -#define massMemoryIcon ":image/qgn_prop_fmgr_ms.svg" + + +#define folderIcon "qtg_large_folder" + +#define imageIcon "qtg_large_photos" +#define videoIcon "qtg_large_video" +#define toneIcon "qtg_large_tone" +#define playlistIcon "qtg_large_playlist" +#define textIcon "qtg_large_text" +#define sisxIcon "qtg_large_sisx" +#define javaIcon "qtg_large_java" +#define flashIcon "qtg_large_flash" +#define widgetIcon "qtg_large_widget" +#define weblinkIcon "qtg_large_web_link" +#define queryIcon "qtg_large_query" FmFileIconProvider::FmFileIconProvider() { - + mFileTypeRecognizer = new FmFileTypeRecognizer(); } FmFileIconProvider::~FmFileIconProvider() { + delete mFileTypeRecognizer; } - + QIcon FmFileIconProvider::icon(const QFileInfo &info) const { - QString filePath( info.path() ); - if( FmUtils::isDrive( filePath ) ) { - FmDriverInfo::DriveState driveState = FmUtils::queryDriverInfo( filePath ).driveState(); - if( driveState & FmDriverInfo::EDriveAvailable ){ - if( driveState & FmDriverInfo::EDriveRemovable ) { - if( driveState & FmDriverInfo::EDriveMassStorage ) { - // Mass Storage - return QIcon( massMemoryIcon ); - } else if( driveState & FmDriverInfo::EDriveUsbMemory ) { - // Usb Memory - return QIcon( usbMemoryIcon ); + QIcon retIcon; + + QString filePath( info.absoluteFilePath() ); + FmFileTypeRecognizer::FileType fileType = mFileTypeRecognizer->getType( filePath ); + switch( fileType ) + { + case FmFileTypeRecognizer::FileTypeDrive: + { + FmDriverInfo::DriveState driveState = FmUtils::queryDriverInfo( filePath ).driveState(); + if( driveState & FmDriverInfo::EDriveAvailable ){ + if( driveState & FmDriverInfo::EDriveRemovable ) { + if( driveState & FmDriverInfo::EDriveMassStorage ) { + // Mass Storage + retIcon = HbIcon( massMemoryIcon ).qicon(); + break; + } else if( driveState & FmDriverInfo::EDriveUsbMemory ) { + // Usb Memory + retIcon = HbIcon( usbMemoryIcon ).qicon(); + break; + } else{ + //Memory Card + retIcon = HbIcon( mmcIcon ).qicon(); + break; + } } else{ - //Memory Card - return QIcon( mmcIcon ); + //Phone Memory + retIcon = HbIcon( phoneMemoryIcon ).qicon(); + break; } - } else{ - //Phone Memory - return QIcon( phoneMemoryIcon ); + } else if( driveState & FmDriverInfo::EDriveLocked ) { + retIcon = HbIcon( mmcLockedIcon ).qicon(); + break; + } else if( driveState & FmDriverInfo::EDriveCorrupted ) { + retIcon = HbIcon( mmcNoneIcon ).qicon(); + break; + } else if( driveState & FmDriverInfo::EDriveNotPresent ){ + retIcon = HbIcon( mmcNoneIcon ).qicon(); + break; + } else { + retIcon = HbIcon( mmcNoneIcon ).qicon(); + break; + } + } + case FmFileTypeRecognizer::FileTypeFolder: + { + retIcon = HbIcon( folderIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeImage: + { + retIcon = HbIcon( imageIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeVideo: + { + retIcon = HbIcon( videoIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeTone: + { + retIcon = HbIcon( toneIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypePlaylist: + { + retIcon = HbIcon( playlistIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeText: + { + retIcon = HbIcon( textIcon ).qicon(); + break; } - } else if( driveState & FmDriverInfo::EDriveLocked ) { - return QIcon( mmcLockedIcon ); - } else if( driveState & FmDriverInfo::EDriveCorrupted ) { - return QIcon( mmcNoneIcon ); - } else if( driveState & FmDriverInfo::EDriveNotPresent ){ - return QIcon( mmcNoneIcon ); - } else { - return QIcon( mmcNoneIcon ); + case FmFileTypeRecognizer::FileTypeSisx: + { + retIcon = HbIcon( sisxIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeJava: + { + retIcon = HbIcon( javaIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeFlash: + { + retIcon = HbIcon( flashIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeWidget: + { + retIcon = HbIcon( widgetIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeWebLink: + { + retIcon = HbIcon( weblinkIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeUnKnown: + { + // currently filemanger icon doc is not unified with icon name. + // for example, qtg_small_unknown qtg_large_query both means for unknown type + // but the two icon name is not the same. + retIcon = HbIcon( queryIcon ).qicon(); + break; + } } - } else { - return QFileIconProvider::icon( info ); + + // if cannot get icon, return icon from QFileIconProvider + // this will be mostly used in win32 platform, + // because path for HbIcon only existed in hb theme of symbian + if( retIcon.isNull() ) { + retIcon = QFileIconProvider::icon( info ); } + return retIcon; } diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmfileiconprovider.h --- a/filemanager/src/inc/fmfileiconprovider.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmfileiconprovider.h Thu Jul 22 16:30:56 2010 +0100 @@ -20,16 +20,21 @@ #include +class FmFileTypeRecognizer; + class FmFileIconProvider : public QFileIconProvider { public: FmFileIconProvider(); virtual ~FmFileIconProvider(); + // from QFileIconProvider virtual QIcon icon(const QFileInfo &info) const; private: + FmFileTypeRecognizer *mFileTypeRecognizer; + }; #endif diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmfiletyperecognizer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/inc/fmfiletyperecognizer.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,140 @@ +/* + * 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: + * + * + * Description: + * The source file of the file type recognizer + */ + +#include "fmfiletyperecognizer.h" +#include "fmutils.h" +#include +#include + +FmFileTypeRecognizer::FmFileTypeRecognizer() +{ + QStringList fileExtensionList; + + fileExtensionList.append( QString( "bmp" ) ); + fileExtensionList.append( QString( "gif" ) ); + fileExtensionList.append( QString( "jpe" ) ); + fileExtensionList.append( QString( "jpeg" ) ); + fileExtensionList.append( QString( "jpg" ) ); + fileExtensionList.append( QString( "ota" ) ); + fileExtensionList.append( QString( "png" ) ); + fileExtensionList.append( QString( "tif" ) ); + fileExtensionList.append( QString( "tiff" ) ); + fileExtensionList.append( QString( "wbmp" ) ); + fileExtensionList.append( QString( "wmf" ) ); + fileExtensionList.append( QString( "jp2" ) ); + fileExtensionList.append( QString( "jpg2" ) ); + fileExtensionList.append( QString( "jp3" ) ); + fileExtensionList.append( QString( "ico" ) ); + fileExtensionList.append( QString( "vcf" ) ); + mFileTypeMap.insert( FileTypeImage, fileExtensionList ); + + fileExtensionList.clear(); + fileExtensionList.append( QString( "3gp" ) ); + fileExtensionList.append( QString( "mp4" ) ); + fileExtensionList.append( QString( "nim" ) ); + fileExtensionList.append( QString( "rm" ) ); + fileExtensionList.append( QString( "rv" ) ); + fileExtensionList.append( QString( "wmv" ) ); + fileExtensionList.append( QString( "3g2" ) ); + fileExtensionList.append( QString( "rmvb") ); + fileExtensionList.append( QString( "mkv" ) ); + mFileTypeMap.insert( FileTypeVideo, fileExtensionList ); + + fileExtensionList.clear(); + fileExtensionList.append( QString( "aac" ) ); + fileExtensionList.append( QString( "amr" ) ); + fileExtensionList.append( QString( "au" ) ); + fileExtensionList.append( QString( "awb" ) ); + fileExtensionList.append( QString( "mid" ) ); + fileExtensionList.append( QString( "mp3" ) ); + fileExtensionList.append( QString( "ra" ) ); + fileExtensionList.append( QString( "rmf" ) ); + fileExtensionList.append( QString( "rng" ) ); + fileExtensionList.append( QString( "snd" ) ); + fileExtensionList.append( QString( "wav" ) ); + fileExtensionList.append( QString( "wve" ) ); + fileExtensionList.append( QString( "wma" ) ); + fileExtensionList.append( QString( "m4a" ) ); + fileExtensionList.append( QString( "ott" ) ); + fileExtensionList.append( QString( "mxmf" ) ); + mFileTypeMap.insert( FileTypeTone, fileExtensionList ); + + fileExtensionList.clear(); + fileExtensionList.append( QString( "doc" ) ); + fileExtensionList.append( QString( "pdf" ) ); + fileExtensionList.append( QString( "pps" ) ); + fileExtensionList.append( QString( "ppt" ) ); + fileExtensionList.append( QString( "txt" ) ); + fileExtensionList.append( QString( "xls" ) ); + mFileTypeMap.insert( FileTypeText, fileExtensionList ); + + fileExtensionList.clear(); + fileExtensionList.append( QString( "sis" ) ); + fileExtensionList.append( QString( "sisx" ) ); + mFileTypeMap.insert( FileTypeSisx, fileExtensionList ); + + fileExtensionList.clear(); + fileExtensionList.append( QString( "jad" ) ); + fileExtensionList.append( QString( "jar" ) ); + mFileTypeMap.insert( FileTypeJava, fileExtensionList ); + + fileExtensionList.clear(); + fileExtensionList.append( QString( "swf" ) ); + mFileTypeMap.insert( FileTypeFlash, fileExtensionList ); + + // have not handle FileTypePlaylist + // have not handle FileTypeWidget + // have not handle FileTypeWebLink + + // make mFileExtensionMap( data map for extenstion ) from mFileTypeMap + // this map is used to speed up recognize + QMapIterator i( mFileTypeMap ); + while (i.hasNext()) { + i.next(); + foreach( const QString extension, i.value() ) { + mFileExtensionMap.insert( extension, i.key() ); + } + } + + +} + +FmFileTypeRecognizer::~FmFileTypeRecognizer() +{ + +} + +FmFileTypeRecognizer::FileType FmFileTypeRecognizer::getType( const QString& path ) const +{ + if( FmUtils::isDrive( path ) ) { + return FileTypeDrive; + } + + QFileInfo fileInfo(path); + if( fileInfo.isDir() ) { + return FileTypeFolder; + } + + //if can not find key, return default value: FileTypeUnKnown + return mFileExtensionMap.value( fileInfo.suffix().toLower(), FileTypeUnKnown ); +} + +const QStringList FmFileTypeRecognizer::getFileListFromFileType( const FmFileTypeRecognizer::FileType fileType ) const +{ + return mFileTypeMap.value( fileType, QStringList() ); +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmfiletyperecognizer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/inc/fmfiletyperecognizer.h Thu Jul 22 16:30:56 2010 +0100 @@ -0,0 +1,75 @@ +/* + * 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: + * + * + * Description: + * The header file of the file type recognizer + */ + +#ifndef FMFILERECOGNIZER_H +#define FMFILERECOGNIZER_H + +#include +#include +#include +#include + +/*! + \class FmFileTypeRecognizer + \brief The class FmFileTypeRecognizer used to recognize file type by path. + */ +class FmFileTypeRecognizer +{ +public: + enum FileType{ + FileTypeDrive, + FileTypeFolder, + FileTypeImage, + FileTypeVideo, + FileTypeTone, + FileTypePlaylist, + FileTypeText, + FileTypeSisx, + FileTypeJava, + FileTypeFlash, + FileTypeWidget, + FileTypeWebLink, + FileTypeUnKnown + }; + + +public: + FmFileTypeRecognizer(); + virtual ~FmFileTypeRecognizer(); + + /*! + Recognize file type, currently only judge file by its extension name. + */ + FmFileTypeRecognizer::FileType getType( const QString& path ) const ; + + /*! + Profide a list of extension name by designate the FileType. + */ + const QStringList getFileListFromFileType( const FmFileTypeRecognizer::FileType fileType ) const; + +private: + // used to store FileType, extension name list pare. + QMap mFileTypeMap; + + // used to store single extension name, FileType pare. + // this map comes from mFileTypeMap + QMap mFileExtensionMap; +}; + +#endif /* FMDRIVEDETAILSTYPE_H */ + diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmutils.h --- a/filemanager/src/inc/fmutils.h Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmutils.h Thu Jul 22 16:30:56 2010 +0100 @@ -94,7 +94,7 @@ static int setDrivePwd( const QString &driverName, const QString &oldPwd, const QString &newPwd); static void emptyPwd( QString &pwd ); static int renameDrive( const QString &driverName, const QString &newVolumeName); - static void ejectDrive( const QString &driverName ); + static int ejectDrive( const QString &driverName ); static QString getFileType( const QString &filePath ); static quint64 getDriveDetailsResult( const QString &folderPath, const QString &extension ); static bool isDriveC( const QString &driverName ); @@ -103,10 +103,10 @@ static QString fillPathWithSplash( const QString &filePath ); static QString removePathSplash( const QString &filePath ); static QString formatPath( const QString &path ); - static bool checkDriveFilter( const QString &driveName ); + static bool checkDriveAccessFilter( const QString &driveName ); static QString checkDriveToFolderFilter( const QString &path ); static QString checkFolderToDriveFilter( const QString &path ); - static bool isPathAccessabel( const QString &path ); + static int isPathAccessabel( const QString &path ); static bool isDriveAvailable( const QString &path ); static bool isPathEqual( const QString &pathFst, const QString &pathLast ); @@ -123,6 +123,15 @@ static int getMaxFileNameLength(); static bool checkMaxPathLength( const QString& path ); static bool checkFolderFileName( const QString& name ); + + /** + * check file or folder path is illegal or not. + * + * @param path file/folder path. + * @param errString if return false, errString will be set for error note. + * @return true for not illegal and false for illegal path. + */ + static bool checkNewFolderOrFile( const QString &path, QString &errString ); }; diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmutils_s60.cpp --- a/filemanager/src/inc/fmutils_s60.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmutils_s60.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -37,6 +37,8 @@ #include #include +#include + #include #include @@ -46,10 +48,12 @@ QString FmUtils::getDriveNameFromPath( const QString &path ) { - if( path.length() <3 ) { + // fillPathWithSplash make sure path length will be at least 3 if it is not empty. + QString checkedPath( fillPathWithSplash( path ) ); + if( checkedPath.length() < 3 ) { return QString(); } - return path.left( 3 ); + return checkedPath.left( 3 ); } QString FmUtils::getDriveLetterFromPath( const QString &path ) @@ -62,6 +66,9 @@ FmDriverInfo FmUtils::queryDriverInfo( const QString &driverName ) { + if( driverName.isEmpty() ) { + return FmDriverInfo( 0, 0, driverName, QString(), FmDriverInfo::EDriveNotPresent ); + } CCoeEnv *env = CCoeEnv::Static(); RFs& fs = env->FsSession(); @@ -207,6 +214,9 @@ int FmUtils::removeDrivePwd( const QString &driverName, const QString &Pwd ) { + if( driverName.isEmpty() ) { + return FmErrWrongParam; + } QString logString = "Drive name:" + driverName; FmLogger::log( logString ); logString = "Password:" + Pwd; @@ -245,6 +255,9 @@ int FmUtils::unlockDrive( const QString &driverName, const QString &Pwd ) { + if( driverName.isEmpty() ) { + return FmErrWrongParam; + } QString logString = "Drive name:" + driverName; FmLogger::log( logString ); logString = "Password:" + Pwd; @@ -287,6 +300,9 @@ int FmUtils::checkDrivePwd( const QString &driverName, const QString &pwd ) { + if( driverName.isEmpty() ) { + return FmErrWrongParam; + } QString logString = "checkDrivePwd Drive name:" + driverName; logString += " password:" + pwd; FmLogger::log( logString ); @@ -296,6 +312,9 @@ int FmUtils::setDrivePwd( const QString &driverName, const QString &oldPwd, const QString &newPwd) { + if( driverName.isEmpty() ) { + return FmErrWrongParam; + } QString logString = "setDrivePwd Drive name:" + driverName ; logString += " Old password:" + oldPwd; logString += " New password:" + newPwd; @@ -347,6 +366,9 @@ int FmUtils::renameDrive( const QString &driverName, const QString &newVolumeName) { + if( driverName.isEmpty() ) { + return FmErrWrongParam; + } foreach( const QChar &ch, newVolumeName ) { bool a = ch.isSpace(); @@ -382,8 +404,11 @@ } } -void FmUtils::ejectDrive( const QString &driverName ) +int FmUtils::ejectDrive( const QString &driverName ) { + if( driverName.isEmpty() ) { + return FmErrWrongParam; + } QString logString = "FmUtils::ejectDrive start"; FmLogger::log( logString ); @@ -398,6 +423,7 @@ KCoreAppUIsMmcRemovedWithoutEject, ECoreAppUIsEjectCommandUsedToDrive | ( drive << KDriveShift ) ); + return FmErrNone; } QString FmUtils::getFileType( const QString &filePath ) @@ -480,6 +506,9 @@ bool FmUtils::isDriveC( const QString &driverName ) { + if( driverName.isEmpty() ) { + return false; + } TInt drive = 0; drive = driverName[0].toUpper().toAscii() - 'A' + EDriveA; if( drive == EDriveC ){ @@ -503,6 +532,9 @@ void FmUtils::createDefaultFolders( const QString &driverName ) { + if( driverName.isEmpty() ) { + return; + } int err; TInt drive = 0; @@ -571,14 +603,23 @@ QString FmUtils::fillPathWithSplash( const QString &filePath ) { - QString newFilePath( filePath ); + QString newFilePath; if( filePath.isEmpty() ) { return newFilePath; } - if( filePath.at( filePath.length()-1 ) != QChar( '/' ) ){ - newFilePath.append( QChar( '/' ) ); + foreach( QChar ch, filePath ) { + if( ch == QChar('\\') || ch == QChar('/') ) { + newFilePath.append( QDir::separator() ); + } else { + newFilePath.append( ch ); + } } + + if( newFilePath.right( 1 )!= QDir::separator() ){ + newFilePath.append( QDir::separator() ); + } + return newFilePath; } @@ -591,10 +632,15 @@ return newFilePath; } -// used to filter drive which need be hide. -bool FmUtils::checkDriveFilter( const QString &driveName ) +// filter un-accessable drive +bool FmUtils::checkDriveAccessFilter( const QString &driveName ) { - if( driveName.contains( "D:" ) || driveName.contains( "Z:" ) ) { + if( driveName.isEmpty() ) { + return false; + } + FmDriverInfo driveInfo = queryDriverInfo( driveName ); + if( ( driveInfo.driveState()& FmDriverInfo::EDriveRam ) || + ( driveInfo.driveState()& FmDriverInfo::EDriveRom ) ) { return false; } return true; @@ -609,8 +655,8 @@ } */ QString checkedPath = fillPathWithSplash( path ); - if( checkedPath.compare( QString( "C:/"), Qt::CaseInsensitive ) == 0 ) { - checkedPath += QString( "data/" ); + if( checkedPath.compare( Drive_C, Qt::CaseInsensitive ) == 0 ) { + checkedPath += QString( "data" ) + QDir::separator(); return checkedPath; } return path; @@ -627,47 +673,50 @@ logString = QString( "checkFolderToDriveFilter_fillPathWithSplash: " ) + checkedPath; FmLogger::log( logString ); - if( checkedPath.compare( QString( "C:/data/"), Qt::CaseInsensitive ) == 0 ) { + if( checkedPath.compare( Folder_C_Data, Qt::CaseInsensitive ) == 0 ) { FmLogger::log( QString( " change from c:/data/ to C:/" ) ); - return QString( "C:/" ); + return Drive_C; } return path; } -bool FmUtils::isPathAccessabel( const QString &path ) +int FmUtils::isPathAccessabel( const QString &path ) { + // Used to check if path is accessable, very important feature + // and will return filemanager error. FmLogger::log( QString( "isPathAccessabel:" ) + path ); + if( path.isEmpty() ) { + return FmErrPathNotExist; + } if( path.length() <= 3 && !isDriveAvailable( path ) ) { //used to filter locked drive FmLogger::log( QString( "isPathAccessabel false: path is drive and not available" ) ); - return false; + return FmErrDriveNotAvailable; } QFileInfo fileInfo( path ); - if( fileInfo.absoluteFilePath().contains( QString( Drive_C ), Qt::CaseInsensitive ) && - !fileInfo.absoluteFilePath().contains( QString( Folder_C_Data ), Qt::CaseInsensitive ) ) { + if( fileInfo.absoluteFilePath().contains( Drive_C, Qt::CaseInsensitive ) && + !fileInfo.absoluteFilePath().contains( Folder_C_Data, Qt::CaseInsensitive ) ) { FmLogger::log( QString( "isPathAccessabel false: path contain C and not in data folder" ) ); - return false; + return FmErrPathDenied; } - if( fileInfo.absoluteFilePath().contains( QString( Drive_D ), Qt::CaseInsensitive ) ) { - FmLogger::log( QString( "isPathAccessabel false: path contain D" ) ); - return false; - } - if( fileInfo.absoluteFilePath().contains( QString( Drive_Z ), Qt::CaseInsensitive ) ) { - FmLogger::log( QString( "isPathAccessabel false: path contain Z" ) ); - return false; + if( !checkDriveAccessFilter( FmUtils::getDriveNameFromPath( fileInfo.absoluteFilePath() ) ) ){ + return FmErrDriveDenied; } if( !fileInfo.exists() ) { FmLogger::log( QString( "isPathAccessabel false: path not exist" ) ); - return false; + return FmErrPathNotExist; } - FmLogger::log( QString( "isPathAccessabel true" ) ); - return true; + FmLogger::log( QString( "isPathAccessabel FmErrNone" ) ); + return FmErrNone; } // only used to check drive, when MMC is not inserted, also return false bool FmUtils::isDriveAvailable( const QString &path ) { FmLogger::log( QString( "isDriveAvailable:" ) + path ); + if( path.isEmpty() ) { + return false; + } FmDriverInfo::DriveState driveState = queryDriverInfo( path ).driveState(); if( ( driveState & FmDriverInfo::EDriveAvailable ) ) { FmLogger::log( QString( "isDriveAvailable true" ) ); @@ -688,7 +737,7 @@ foreach( QFileInfo fileInfo, infoList ) { QString driveName = fileInfo.absolutePath(); - if( checkDriveFilter( driveName ) ) { + if( checkDriveAccessFilter( driveName ) ) { if( !isHideUnAvailableDrive ) { driveList.append( driveName ); } @@ -703,9 +752,12 @@ QString FmUtils::fillDriveVolume( QString driveName, bool isFillWithDefaultVolume ) { QString ret; + if( driveName.isEmpty() ) { + return ret; + } QString tempDriveName = fillPathWithSplash( driveName ); - ret = removePathSplash( driveName ); + QString checkedDriveName( removePathSplash( driveName ) ); FmDriverInfo driverInfo = FmUtils::queryDriverInfo( tempDriveName ); QString volumeName = driverInfo.volumeName(); @@ -715,25 +767,37 @@ if( driveState & FmDriverInfo::EDriveAvailable ){ if( driveState & FmDriverInfo::EDriveRemovable ) { if( driveState & FmDriverInfo::EDriveMassStorage ) { - volumeName.append( QObject::tr( "Mass Storage" ) ); + // Mass Storage + ret = hbTrId( "txt_fmgr_dblist_1_mass_storage" ).arg( checkedDriveName ); } else if( driveState & FmDriverInfo::EDriveUsbMemory ) { - volumeName.append( QObject::tr( "Usb Memory" ) ); + // USB Memory + ret = hbTrId( "txt_fmgr_dblist_1_usb_memory" ).arg( checkedDriveName ); } else{ - volumeName.append( QObject::tr( "Memory Card" ) ); + // Memory Card + ret = hbTrId( "txt_fmgr_dblist_1_memory_card" ).arg( checkedDriveName ); } } else{ - volumeName.append( QObject::tr( "Phone Memory" ) ); + // phone memory + ret = hbTrId( "txt_fmgr_dblist_1_device_memory" ).arg( checkedDriveName ); } - } + } } - - ret += QString( " " ) + volumeName; + + if( ret.isEmpty() ) { + // set ret as volumeName + // txt_fmgr_dblist_1_2 is not correct, can not use. + ret = hbTrId( "%1 %2" ).arg( checkedDriveName ).arg( volumeName ); + } return ret; } int FmUtils::launchFile( const QString &filePath ) { QFile file( filePath ); + if( !file.exists() ) { + return false; + } + XQApplicationManager mAiwMgr; XQAiwRequest *request = mAiwMgr.create(file); if ( request == 0 ) { @@ -826,28 +890,33 @@ QString FmUtils::formatPath( const QString &path ) { - QString formatPath = path; - QRegExp regExp( "/" ); - formatPath.replace( regExp, "\\" ); - - if( path.right( 1 )!= "\\"){ - formatPath.append( "\\" ); + QString formatPath; + foreach( QChar ch, path ) { + if( ch == QChar('\\') || ch == QChar('/') ) { + formatPath.append( QDir::separator() ); + } else { + formatPath.append( ch ); + } + } + + if( formatPath.right( 1 ) != QDir::separator() ){ + formatPath.append( QDir::separator() ); } return formatPath; } int FmUtils::getMaxFileNameLength() - { +{ return KMaxFileName; - } +} bool FmUtils::checkMaxPathLength( const QString& path ) - { +{ if( path.length() > KMaxPath ) { return false; } return true; - } +} bool FmUtils::checkFolderFileName( const QString& name ) { if( name.endsWith( QChar('.'), Qt::CaseInsensitive ) ) { @@ -869,3 +938,20 @@ } return true; } + +bool FmUtils::checkNewFolderOrFile( const QString &path, QString &errString ) +{ + QFileInfo fileInfo( path ); + bool ret( true ); + if (!FmUtils::checkFolderFileName( fileInfo.fileName() ) ) { + errString = hbTrId( "Invalid file or folder name!" ); + ret = false; + } else if( !FmUtils::checkMaxPathLength( path ) ) { + errString = hbTrId( "the path you specified is too long!" ); + ret = false; + } else if (fileInfo.exists()) { + errString = hbTrId( "%1 already exist!" ).arg( fileInfo.fileName() ); + ret = false; + } + return ret; +} diff -r b9588eb601eb -r e28107efca85 filemanager/src/inc/fmutils_win.cpp --- a/filemanager/src/inc/fmutils_win.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/src/inc/fmutils_win.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -25,7 +25,11 @@ #include #include +#include + #define BURCONFIGFILE "burconfig.xml" +const int KMaxFileName=0x100; +const int KMaxPath=0x100; QString FmUtils::getDriveNameFromPath( const QString &path ) { @@ -73,6 +77,21 @@ if ( drvStatus == DRIVE_REMOVABLE ) { state |= FmDriverInfo::EDriveRemovable; } +#ifdef _DEBUG_DISABLE_DRIVE_D_TEST_DRIVEHIDE_ + if ( driverName.contains( Drive_D, Qt::CaseInsensitive ) ) { + state |= FmDriverInfo::EDriveNotPresent; + } +#endif + +#ifdef _DEBUG_LOCKED_DRIVE_Z + if ( driverName.contains( Drive_Z, Qt::CaseInsensitive ) ) { + state |= FmDriverInfo::EDriveLocked; + } +#endif + if( !(state&FmDriverInfo::EDriveNotPresent) && !(state&FmDriverInfo::EDriveLocked) && + !(state&FmDriverInfo::EDriveCorrupted) ) { + state |= FmDriverInfo::EDriveAvailable; + } return FmDriverInfo( size, freeSize, driverName, QString::fromWCharArray( &volumeName[0] ), state ); } @@ -88,6 +107,7 @@ return QString::number( size / ( 1024.0 * 1024.0 * 1024.0 ), 'f', 1 ) + " GB"; } } + /* quint32 FmUtils::getDriverState( const QString &driverName ) { @@ -158,9 +178,10 @@ return 0; } -void FmUtils::ejectDrive( const QString &driverName ) +int FmUtils::ejectDrive( const QString &driverName ) { Q_UNUSED( driverName ); + return FmErrNone; } QString FmUtils::getFileType( const QString &filePath ) @@ -178,8 +199,12 @@ bool FmUtils::isDriveC( const QString &driverName ) { - Q_UNUSED( driverName ); - return false; + if( driverName.contains(Drive_C,Qt::CaseInsensitive) ){ + return true; + } + else{ + return false; + } } bool FmUtils::isDrive( const QString &path ) @@ -199,14 +224,23 @@ QString FmUtils::fillPathWithSplash( const QString &filePath ) { - QString newFilePath( filePath ); + QString newFilePath; if( filePath.isEmpty() ) { return newFilePath; } - if( filePath.at( filePath.length()-1 ) != QChar( '/' ) ){ - newFilePath.append( QChar( '/' ) ); + foreach( QChar ch, filePath ) { + if( ch == QChar('\\') || ch == QChar('/') ) { + newFilePath.append( QDir::separator() ); + } else { + newFilePath.append( ch ); + } } + + if( newFilePath.right( 1 )!= QDir::separator() ){ + newFilePath.append( QDir::separator() ); + } + return newFilePath; } @@ -219,10 +253,10 @@ return newFilePath; } -bool FmUtils::checkDriveFilter( const QString &driveName ) +bool FmUtils::checkDriveAccessFilter( const QString &driveName ) { #ifdef _DEBUG_HIDE_VIEWFOLDER_WINDOWS_ - if( driveName.contains( "D:" ) || driveName.contains( "Z:" ) ) { + if( driveName.contains( Drive_D, Qt::CaseInsensitive ) || driveName.contains( Drive_Z, Qt::CaseInsensitive ) ) { return false; } #endif @@ -271,12 +305,12 @@ } -bool FmUtils::isPathAccessabel( const QString &path ) +int FmUtils::isPathAccessabel( const QString &path ) { -#ifdef _DEBUG_DISABLE_DRIVE_D_TEST_DRIVEHIDE_ - if(path.contains("D:")) - return false; -#endif + if(!isDriveAvailable( path ) ) { //used to filter locked drive + return FmErrDriveNotAvailable; + } + QFileInfo fileInfo( path ); #ifdef _DEBUG_HIDE_VIEWFOLDER_WINDOWS_ @@ -292,18 +326,22 @@ } #endif if( !fileInfo.exists() ) { - return false; + return FmErrPathNotExist; } - return true; + return FmErrNone; } bool FmUtils::isDriveAvailable( const QString &path ) { - QFileInfo fileInfo( path ); - if( !fileInfo.exists() ) { - return false; - } - return true; +#ifdef _DEBUG_DISABLE_DRIVE_D_TEST_DRIVEHIDE_ + if(path.contains(Drive_D, Qt::CaseInsensitive)) + return false; +#endif +#ifdef _DEBUG_LOCKED_DRIVE_Z + if(path.contains(Drive_Z, Qt::CaseInsensitive)) + return false; +#endif + return true; } void FmUtils::getDriveList( QStringList &driveList, bool isHideUnAvailableDrive ) @@ -312,7 +350,7 @@ foreach( QFileInfo fileInfo, infoList ) { QString driveName = fileInfo.absolutePath(); - if( checkDriveFilter( driveName ) ) { + if( checkDriveAccessFilter( driveName ) ) { if( !isHideUnAvailableDrive ) { driveList.append( driveName ); } @@ -329,29 +367,33 @@ QString ret; QString tempDriveName = fillPathWithSplash( driveName ); - ret = removePathSplash( driveName ); + QString checkedDriveName( removePathSplash( driveName ) ); FmDriverInfo driverInfo = FmUtils::queryDriverInfo( tempDriveName ); QString volumeName = driverInfo.volumeName(); if( volumeName.isEmpty() && isFillWithDefaultVolume ){ - FmDriverInfo::DriveState driveState = FmUtils::queryDriverInfo( tempDriveName ).FmDriverInfo::driveState(); - if( !( driveState & FmDriverInfo::EDriveNotPresent ) ){ + FmDriverInfo::DriveState driveState = queryDriverInfo( tempDriveName ).driveState(); + if( driveState & FmDriverInfo::EDriveAvailable ){ if( driveState & FmDriverInfo::EDriveRemovable ) { if( driveState & FmDriverInfo::EDriveMassStorage ) { - volumeName.append( QObject::tr( "Mass Storage" ) ); + // Mass Storage + ret = hbTrId( "txt_fmgr_dblist_1_mass_storage" ).arg( checkedDriveName ); + } else if( driveState & FmDriverInfo::EDriveUsbMemory ) { + // USB Memory + ret = hbTrId( "txt_fmgr_dblist_1_usb_memory" ).arg( checkedDriveName ); + } else{ + // Memory Card + ret = hbTrId( "txt_fmgr_dblist_1_memory_card" ).arg( checkedDriveName ); } - else{ - volumeName.append( QObject::tr( "Memory Card" ) ); - } - } - else{ - volumeName.append( QObject::tr( "Phone Memory" ) ); + } else{ + // phone memory + ret = hbTrId( "txt_fmgr_dblist_1_device_memory" ).arg( checkedDriveName ); } } + } else { + ret = hbTrId( "txt_fmgr_dblist_1_2" ).arg( checkedDriveName ).arg( volumeName ); } - - ret += QString( " " ) + volumeName; return ret; } @@ -397,6 +439,68 @@ QString FmUtils::formatPath( const QString &path ) { - Q_UNUSED( path ); - return false; + QString formatPath; + foreach( QChar ch, path ) { + if( ch == QChar('\\') || ch == QChar('/') ) { + formatPath.append( QDir::separator() ); + } else { + formatPath.append( ch ); + } + } + + if( formatPath.right( 1 ) != QDir::separator() ){ + formatPath.append( QDir::separator() ); + } + return formatPath; +} + +int FmUtils::getMaxFileNameLength() +{ + return KMaxFileName; +} + +bool FmUtils::checkMaxPathLength( const QString& path ) +{ + if( path.length() > KMaxPath ) { + return false; + } + return true; } +bool FmUtils::checkFolderFileName( const QString& name ) +{ + if( name.endsWith( QChar('.'), Qt::CaseInsensitive ) ) { + return false; + } + if( name.contains( QChar('\\'), Qt::CaseInsensitive ) || + name.contains( QChar('/'), Qt::CaseInsensitive ) || + name.contains( QChar(':'), Qt::CaseInsensitive ) || + name.contains( QChar('*'), Qt::CaseInsensitive ) || + name.contains( QChar('?'), Qt::CaseInsensitive ) || + name.contains( QChar('\"'), Qt::CaseInsensitive ) || + name.contains( QChar('<'), Qt::CaseInsensitive ) || + name.contains( QChar('>'), Qt::CaseInsensitive ) || + name.contains( QChar('|'), Qt::CaseInsensitive ) ){ + return false; + } + if( name.length() > KMaxFileName ) { + return false; + } + return true; +} + +bool FmUtils::checkNewFolderOrFile( const QString &path, QString &errString ) +{ + QFileInfo fileInfo( path ); + bool ret( true ); + if (!FmUtils::checkFolderFileName( fileInfo.fileName() ) ) { + errString = hbTrId( "Invalid file or folder name, try again!" ); + ret = false; + } else if( !FmUtils::checkMaxPathLength( path ) ) { + errString = hbTrId( "the path you specified is too long, try again!" ); + ret = false; + } else if (fileInfo.exists()) { + errString = hbTrId( "%1 already exist!" ).arg( fileInfo.fileName() ); + ret = false; + } + return ret; +} diff -r b9588eb601eb -r e28107efca85 filemanager/tsrc/unit/unit_backuprestoresettings/src/unit_backuprestoresettings.cpp --- a/filemanager/tsrc/unit/unit_backuprestoresettings/src/unit_backuprestoresettings.cpp Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/tsrc/unit/unit_backuprestoresettings/src/unit_backuprestoresettings.cpp Thu Jul 22 16:30:56 2010 +0100 @@ -22,11 +22,18 @@ #include "fmbkupengine.h" #include +#include +#include +#include + class TestSettings: public QObject { Q_OBJECT private slots: + // init test strings those are used to verify string fetch feature of FmBackupSettings. + void initTestCase(); + void testTestSettingsContentAll(); void testTestSettingsContentOne(); void testTestSettingsContentTwo(); @@ -48,9 +55,71 @@ void cleanupTestCase(); // Finalize test data private: - FmBackupSettings *settings; + FmBackupSettings *settings; + QString mFileManagerBackupWeekdayMonday; + QString mFileManagerBackupWeekdayTuesday; + QString mFileManagerBackupWeekdayWednesday; + QString mFileManagerBackupWeekdayThursday; + QString mFileManagerBackupWeekdayFirday; + QString mFileManagerBackupWeekdaySaturday; + QString mFileManagerBackupWeekdaySunday; + + QString mFileManagerBackupScheduleNever; + QString mFileManagerBackupScheduleDaily; + QString mFileManagerBackupScheduleWeekly; + + QString mFileManagerBackupSettingsTitleContents; + QString mFileManagerBackupSettingsTitleScheduling; + QString mFileManagerBackupSettingsTitleWeekday; + QString mFileManagerBackupSettingsTitleTime; + QString mFileManagerBackupSettingsTitleTargetDrive; + + QString mFileManagerBackupSettingsContentAll; + QString mFileManagerBackupSettingsContentSettings; + QString mFileManagerBackupSettingsContentMessages; + QString mFileManagerBackupSettingsContentContacts; + QString mFileManagerBackupSettingsContentCalendar; + QString mFileManagerBackupSettingsContentBookmarks; + QString mFileManagerBackupSettingsContentUserFiles; }; +void TestSettings::initTestCase() +{ + // install translator + QTranslator translator; + QString lang = QLocale::system().name(); + QString path = "z:/resource/qt/translations/"; + translator.load( path + "filemanager_" + lang ); + QCoreApplication::installTranslator(&translator); + + // init localized string + mFileManagerBackupWeekdayMonday = hbTrId( "Monday" ); + mFileManagerBackupWeekdayTuesday = hbTrId( "Tuesday" ); + mFileManagerBackupWeekdayWednesday = hbTrId( "Wednesday" ); + mFileManagerBackupWeekdayThursday = hbTrId( "Thursday" ); + mFileManagerBackupWeekdayFirday = hbTrId( "Friday" ); + mFileManagerBackupWeekdaySaturday = hbTrId( "Saturday" ); + mFileManagerBackupWeekdaySunday = hbTrId( "Sunday" ); + + mFileManagerBackupScheduleNever = hbTrId( "Never" ); + mFileManagerBackupScheduleDaily = hbTrId( "Daily" ); + mFileManagerBackupScheduleWeekly = hbTrId( "Weekly" ); + + mFileManagerBackupSettingsTitleContents = hbTrId( "Backup Contents" ); + mFileManagerBackupSettingsTitleScheduling = hbTrId( "Backup scheduling" ); + mFileManagerBackupSettingsTitleWeekday = hbTrId( "Weekday" ); + mFileManagerBackupSettingsTitleTime = hbTrId( "Time" ); + mFileManagerBackupSettingsTitleTargetDrive = hbTrId( "Backup destination" ); + + mFileManagerBackupSettingsContentAll = hbTrId( "All" ); + mFileManagerBackupSettingsContentSettings = hbTrId( "Settings" ); + mFileManagerBackupSettingsContentMessages = hbTrId( "Messages" ); + mFileManagerBackupSettingsContentContacts = hbTrId( "Contacts" ); + mFileManagerBackupSettingsContentCalendar = hbTrId( "Calendar" ); + mFileManagerBackupSettingsContentBookmarks = hbTrId( "Bookmarks" ); + mFileManagerBackupSettingsContentUserFiles = hbTrId( "Files" ); +} + void TestSettings::cleanupTestCase() { QCoreApplication::processEvents(); @@ -89,27 +158,27 @@ { case FmBackupEntry::EContents: { - QVERIFY( entry->title() == constFileManagerBackupSettingsTitleContents ); + QVERIFY( entry->title() == mFileManagerBackupSettingsTitleContents ); break; } case FmBackupEntry::EScheduling: { - QVERIFY( entry->title() == constFileManagerBackupSettingsTitleScheduling ); + QVERIFY( entry->title() == mFileManagerBackupSettingsTitleScheduling ); break; } case FmBackupEntry::EWeekday: { - QVERIFY( entry->title() == constFileManagerBackupSettingsTitleWeekday ); + QVERIFY( entry->title() == mFileManagerBackupSettingsTitleWeekday ); break; } case FmBackupEntry::ETime: { - QVERIFY( entry->title() == constFileManagerBackupSettingsTitleTime ); + QVERIFY( entry->title() == mFileManagerBackupSettingsTitleTime ); break; } case FmBackupEntry::ETarget: { - QVERIFY( entry->title() == constFileManagerBackupSettingsTitleTargetDrive ); + QVERIFY( entry->title() == mFileManagerBackupSettingsTitleTargetDrive ); break; } @@ -188,13 +257,13 @@ QTest::addColumn("param"); QTest::addColumn("value"); - QTest::newRow("contentToString_0") << (quint32)FmBackupSettings::EFileManagerBackupContentAll << constFileManagerBackupSettingsContentAll; - QTest::newRow("contentToString_1") << (quint32)FmBackupSettings::EFileManagerBackupContentSettings << constFileManagerBackupSettingsContentSettings; - QTest::newRow("contentToString_2") << (quint32)FmBackupSettings::EFileManagerBackupContentMessages << constFileManagerBackupSettingsContentMessages; - QTest::newRow("contentToString_3") << (quint32)FmBackupSettings::EFileManagerBackupContentContacts << constFileManagerBackupSettingsContentContacts; - QTest::newRow("contentToString_4") << (quint32)FmBackupSettings::EFileManagerBackupContentCalendar << constFileManagerBackupSettingsContentCalendar; - QTest::newRow("contentToString_5") << (quint32)FmBackupSettings::EFileManagerBackupContentBookmarks << constFileManagerBackupSettingsContentBookmarks; - QTest::newRow("contentToString_6") << (quint32)FmBackupSettings::EFileManagerBackupContentUserFiles << constFileManagerBackupSettingsContentUserFiles; + QTest::newRow("contentToString_0") << (quint32)FmBackupSettings::EFileManagerBackupContentAll << mFileManagerBackupSettingsContentAll; + QTest::newRow("contentToString_1") << (quint32)FmBackupSettings::EFileManagerBackupContentSettings << mFileManagerBackupSettingsContentSettings; + QTest::newRow("contentToString_2") << (quint32)FmBackupSettings::EFileManagerBackupContentMessages << mFileManagerBackupSettingsContentMessages; + QTest::newRow("contentToString_3") << (quint32)FmBackupSettings::EFileManagerBackupContentContacts << mFileManagerBackupSettingsContentContacts; + QTest::newRow("contentToString_4") << (quint32)FmBackupSettings::EFileManagerBackupContentCalendar << mFileManagerBackupSettingsContentCalendar; + QTest::newRow("contentToString_5") << (quint32)FmBackupSettings::EFileManagerBackupContentBookmarks << mFileManagerBackupSettingsContentBookmarks; + QTest::newRow("contentToString_6") << (quint32)FmBackupSettings::EFileManagerBackupContentUserFiles << mFileManagerBackupSettingsContentUserFiles; } void TestSettings::testSchedulingToString() @@ -211,9 +280,9 @@ QTest::addColumn("param"); QTest::addColumn("value"); - QTest::newRow("schedulingToString_0") << (int)FmBackupSettings::EFileManagerBackupScheduleNever << constFileManagerBackupScheduleNever; - QTest::newRow("schedulingToString_1") << (int)FmBackupSettings::EFileManagerBackupScheduleDaily << constFileManagerBackupScheduleDaily; - QTest::newRow("schedulingToString_2") << (int)FmBackupSettings::EFileManagerBackupScheduleWeekly << constFileManagerBackupScheduleWeekly; + QTest::newRow("schedulingToString_0") << (int)FmBackupSettings::EFileManagerBackupScheduleNever << mFileManagerBackupScheduleNever; + QTest::newRow("schedulingToString_1") << (int)FmBackupSettings::EFileManagerBackupScheduleDaily << mFileManagerBackupScheduleDaily; + QTest::newRow("schedulingToString_2") << (int)FmBackupSettings::EFileManagerBackupScheduleWeekly << mFileManagerBackupScheduleWeekly; } void TestSettings::testWeekdayToString() @@ -230,13 +299,13 @@ QTest::addColumn("param"); QTest::addColumn("value"); - QTest::newRow("weekdayToString_0") << (int)FmBackupSettings::EFileManagerBackupWeekdayMonday << constFileManagerBackupWeekdayMonday; - QTest::newRow("weekdayToString_1") << (int)FmBackupSettings::EFileManagerBackupWeekdayTuesday << constFileManagerBackupWeekdayTuesday; - QTest::newRow("weekdayToString_2") << (int)FmBackupSettings::EFileManagerBackupWeekdayWednesday << constFileManagerBackupWeekdayWednesday; - QTest::newRow("weekdayToString_3") << (int)FmBackupSettings::EFileManagerBackupWeekdayThursday << constFileManagerBackupWeekdayThursday; - QTest::newRow("weekdayToString_4") << (int)FmBackupSettings::EFileManagerBackupWeekdayFriday << constFileManagerBackupWeekdayFirday; - QTest::newRow("weekdayToString_5") << (int)FmBackupSettings::EFileManagerBackupWeekdaySaturday << constFileManagerBackupWeekdaySaturday; - QTest::newRow("weekdayToString_6") << (int)FmBackupSettings::EFileManagerBackupWeekdaySunday << constFileManagerBackupWeekdaySunday; + QTest::newRow("weekdayToString_0") << (int)FmBackupSettings::EFileManagerBackupWeekdayMonday << mFileManagerBackupWeekdayMonday; + QTest::newRow("weekdayToString_1") << (int)FmBackupSettings::EFileManagerBackupWeekdayTuesday << mFileManagerBackupWeekdayTuesday; + QTest::newRow("weekdayToString_2") << (int)FmBackupSettings::EFileManagerBackupWeekdayWednesday << mFileManagerBackupWeekdayWednesday; + QTest::newRow("weekdayToString_3") << (int)FmBackupSettings::EFileManagerBackupWeekdayThursday << mFileManagerBackupWeekdayThursday; + QTest::newRow("weekdayToString_4") << (int)FmBackupSettings::EFileManagerBackupWeekdayFriday << mFileManagerBackupWeekdayFirday; + QTest::newRow("weekdayToString_5") << (int)FmBackupSettings::EFileManagerBackupWeekdaySaturday << mFileManagerBackupWeekdaySaturday; + QTest::newRow("weekdayToString_6") << (int)FmBackupSettings::EFileManagerBackupWeekdaySunday << mFileManagerBackupWeekdaySunday; } diff -r b9588eb601eb -r e28107efca85 filemanager/tsrc/unit/unit_backuprestoresettings/unit_backuprestoresettings.pro --- a/filemanager/tsrc/unit/unit_backuprestoresettings/unit_backuprestoresettings.pro Fri Jun 11 16:23:39 2010 +0100 +++ b/filemanager/tsrc/unit/unit_backuprestoresettings/unit_backuprestoresettings.pro Thu Jul 22 16:30:56 2010 +0100 @@ -16,12 +16,16 @@ QT += testlib CONFIG += qtestlib +CONFIG += symbian_test +CONFIG += hb TEMPLATE = app TARGET = include ( ../../../src/inc/commoninc.pri ) +include ( ../../../src/common.pri ) DEPENDPATH += . INCLUDEPATH += . INCLUDEPATH += ../../../src/fmbkupenginewrapper/inc +INCLUDEPATH += ../../../src/inc TARGET.CAPABILITY = ALL -TCB # Input SOURCES += src/unit_backuprestoresettings.cpp