diff -r 383b67fbdb11 -r 36d93b4dc635 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp Mon Aug 23 18:06:16 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp Sat Sep 04 11:36:24 2010 +0530 @@ -1,32 +1,39 @@ /* -* 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: -* -*/ + * 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: + * + */ -#include -#include +//Includes Qt/Symbian +#include +#include +//Includes Orbit +#include +#include + +//User Includes +#include +#include #include -#include #include -#include #include +#include #include +#include "glxlocalisationstrings.h" #include -#include -#include "glxlocalisationstrings.h" +#include GlxCommandHandlerRename::GlxCommandHandlerRename() { @@ -42,29 +49,88 @@ Q_UNUSED(aCommandId); Q_UNUSED(aConsume); + bool ok = false; CMPXCommand* command = NULL; + CMPXCollectionPath* path = NULL; QString mainPane = GetName(aMediaList); - QString mediaTitle = NULL; - bool ok = false; GlxTextInputDialog* dlg = new GlxTextInputDialog(); - mediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok); + + if (aCommandId == EGlxCmdRenameFile) + { + mMediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok); + } + else + { + mMediaTitle = dlg->getText(GLX_DIALOG_ALBUM_PROMPT, mainPane, &ok); + } delete dlg; if(ok == true) { - TPtrC16 newMediaItemTitleDes - = (reinterpret_cast (mediaTitle.utf16())); - + TPtrC16 newMediaItemTitleDes = + (reinterpret_cast (mMediaTitle.utf16())); HBufC* newMediaItemTitle = newMediaItemTitleDes.Alloc(); CleanupStack::PushL(newMediaItemTitle); - CMPXCollectionPath* path = aMediaList.PathLC( - NGlxListDefs::EPathFocusOrSelection); - command = - TGlxCommandFactory::RenameCommandLC(*newMediaItemTitle,*path); - CleanupStack::Pop(command); - CleanupStack::PopAndDestroy(path); - CleanupStack::PopAndDestroy(newMediaItemTitle); + if (aCommandId == EGlxCmdRenameFile) + { + TDesC& aTitleText = *newMediaItemTitle; + TInt index = aMediaList.FocusIndex(); + const TGlxMedia& media = aMediaList.Item(index); + TParsePtrC parsePtr(media.Uri()); + + //Constructs the File Name with complete Path + TFileName destinationFileName; + destinationFileName.Append(parsePtr.DriveAndPath()); + destinationFileName.Append(aTitleText); + destinationFileName.Append(parsePtr.Ext()); + + HBufC* modifiedName = destinationFileName.AllocLC(); + QString fileName = QString::fromUtf16(modifiedName->Ptr(), + modifiedName->Length()); + + ContentAccess::CManager *manager = + ContentAccess::CManager::NewL(); + CleanupStack::PushL(manager); + + QFile filePath(fileName); + bool isFileExist = filePath.exists(); + + if (!isFileExist) + { + //rename the media + TInt error = manager->RenameFile(media.Uri(), *modifiedName); + + if (error == KErrNone) + { + path = aMediaList.PathLC( + NGlxListDefs::EPathFocusOrSelection); + command = TGlxCommandFactory::RenameCommandLC( + *newMediaItemTitle, *path); + CleanupStack::Pop(command); + CleanupStack::PopAndDestroy(path); + } + } + else + { + //The Name of the file name already exists, display an message . + HandleErrorL(KErrAlreadyExists); + } + CleanupStack::PopAndDestroy(manager); + CleanupStack::PopAndDestroy(modifiedName); + CleanupStack::PopAndDestroy(newMediaItemTitle); + } + else + { + //Rename of Album + CMPXCollectionPath* path = aMediaList.PathLC( + NGlxListDefs::EPathFocusOrSelection); + command = TGlxCommandFactory::RenameCommandLC(*newMediaItemTitle, + *path); + CleanupStack::Pop(command); + CleanupStack::PopAndDestroy(path); + CleanupStack::PopAndDestroy(newMediaItemTitle); + } } return command; } @@ -146,12 +212,13 @@ return title; } -void GlxCommandHandlerRename::HandleErrorL(TInt aErrorCode) +void GlxCommandHandlerRename::HandleErrorL(TInt aErrorCode) const { if(aErrorCode == KErrAlreadyExists) { - HbMessageBox::warning("Name Already Exist!!!", new HbLabel( - "Rename")); + QString stringToDisplay = hbTrId(GLX_NAME_ALREADY_EXIST).arg( + mMediaTitle); + HbMessageBox::warning(stringToDisplay); } else{ GlxMpxCommandHandler::HandleErrorL(aErrorCode);