diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -35,7 +35,8 @@ #include #include #include -#include +#include + #include #include @@ -47,14 +48,10 @@ #endif -TInt GlxCommandHandlerAddToContainer::iSelectionCount = 0; - const TInt KSelectionPopupListHierarchy = 5; -const TInt KListPrefferedHeight = 400; GlxAlbumSelectionPopup::GlxAlbumSelectionPopup() - : mPopupDlg( 0 ), - mSelectionModel( 0 ), + : mSelectionModel( 0 ), mEventLoop( 0 ), mResult( false ) { @@ -66,71 +63,44 @@ QModelIndexList GlxAlbumSelectionPopup::GetSelectionList(GlxAlbumModel *model, bool *ok) { - // Create a popup - HbDialog popup; + HbSelectionDialog *dlg = new HbSelectionDialog; + dlg->setHeadingWidget(new HbLabel(GLX_ALBUM_SELECTION_TITLE)); + dlg->setSelectionMode(HbAbstractItemView::SingleSelection); + dlg->setModel(model); + dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->clearActions(); + HbAction *action; + action= new HbAction(GLX_BUTTON_NEW); + action->setObjectName( "ch_new_album_button" ); + dlg->addAction(action); + action= new HbAction(GLX_BUTTON_CANCEL); + action->setObjectName( "ch_cancel_album_button" ); + dlg->addAction(action); + dlg->open(this, SLOT(dialogClosed(HbAction*))); + QEventLoop eventLoop; mEventLoop = &eventLoop; - - popup.setPreferredHeight( KListPrefferedHeight ); - // Set dismiss policy that determines what tap events will cause the popup - // to be dismissed - popup.setDismissPolicy(HbDialog::NoDismiss); - - // Set timeout to zero to wait user to either click Ok or Cancel - popup.setTimeout(HbDialog::NoTimeout); - popup.setHeadingWidget( new HbLabel("Select Album") ); - - mPopupDlg = &popup; - HbListView *listview = new HbListView(); - listview->setSelectionMode(HbAbstractItemView::MultiSelection); - listview->setModel(model); - mSelectionModel = listview->selectionModel() ; - connect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) ); - - HbAction *primary = new HbAction( "New" ); - primary->setObjectName( "Cmd New" ); - popup.addAction( primary ) ; - - HbAction *secondary = new HbAction( GLX_BUTTON_CANCEL ); - secondary->setObjectName( "Cmd Cancel" ); - popup.addAction( secondary ); - - popup.setContentWidget( listview ); //ownership transfer - listview->show(); - - popup.open( this, SLOT( dialogClosed( HbAction* ) ) ); + eventLoop.exec( ); mEventLoop = 0 ; if ( ok ) { *ok = mResult ; } - QModelIndexList selectedIndexes = mSelectionModel->selectedIndexes(); - disconnect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) ); - delete primary; - delete secondary; + QModelIndexList selectedIndexes = dlg->selectedModelIndexes(); return selectedIndexes; } -void GlxAlbumSelectionPopup::changeButtonText() -{ - if ( mSelectionModel->selectedIndexes().count() ) { - mPopupDlg->actions().first()->setText( GLX_BUTTON_OK ); - } - else { - mPopupDlg->actions().first()->setText("New"); - } -} - void GlxAlbumSelectionPopup::dialogClosed(HbAction *action) { - HbDialog *dlg = static_cast(sender()); - if( action == dlg->actions().first() ) { - mResult = true ; + HbSelectionDialog *dlg = (HbSelectionDialog*)(sender()); + + if( action == dlg->actions().at(1) ) { + mResult = false ; } else { - mResult = false ; + mResult = true ; } if ( mEventLoop && mEventLoop->isRunning( ) ) { mEventLoop->exit( 0 ); @@ -138,7 +108,7 @@ } GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer() : - mNewMediaAdded(false) + mNewMediaAdded(false),mAlbumName(QString()) { OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_GLXCOMMANDHANDLERADDTOCONTAINER_ENTRY ); mTargetContainers = NULL; @@ -156,11 +126,11 @@ MGlxMediaList& aMediaList, TBool& /*aConsume*/) const { OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL_ENTRY ); - iSelectionCount = 0; CMPXCommand* command = NULL; - + mAlbumName.clear(); if(aCommandId == EGlxCmdAddToFav) { + mAlbumName = GLX_ALBUM_FAV; CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL(); CleanupStack::PushL(targetCollection); // The target collection has to be appeneded with the albums plugin id @@ -235,6 +205,10 @@ delete mTargetContainers; mTargetContainers = NULL; mTargetContainers = targetContainers; + + const TGlxMedia& item = targetMediaList->Item(targetMediaList->SelectedItemIndex(0)); + const TDesC& title = item.Title(); + mAlbumName = QString::fromUtf16(title.Ptr(),title.Length()); } command = TGlxCommandFactory::AddToContainerCommandLC(*sourceItems, @@ -262,14 +236,14 @@ GlxCommandHandlerNewMedia* commandHandlerNewMedia = new GlxCommandHandlerNewMedia(); TGlxMediaId newMediaId; - TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId); + QString newTitle; + TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle); while (error == KErrAlreadyExists) { - HbMessageBox::warning("Name Already Exist!!!", new HbLabel( - "New Album")); + HbMessageBox::warning(GLX_NAME_ALREADY_EXIST); error = KErrNone; - error = commandHandlerNewMedia->ExecuteLD(newMediaId); + error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle); } if (error == KErrNone) @@ -282,6 +256,7 @@ delete mTargetContainers; mTargetContainers = NULL; mTargetContainers = path; + mAlbumName = newTitle; mNewMediaAdded = true; } OstTraceFunctionExit0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATENEWMEDIA_EXIT ); @@ -289,10 +264,13 @@ QString GlxCommandHandlerAddToContainer::CompletionTextL() const { - return QString(); + if(!mAlbumName.isNull()){ + return (hbTrId(GLX_IMAGES_ADDED).arg(mAlbumName)); + } + return QString(); } QString GlxCommandHandlerAddToContainer::ProgressTextL() const { - return QString("Adding album..."); + return GLX_ADDING_IMAGES; }