diff -r 8aed59de29f9 -r 4eb2df7f7cbe videocollection/videocollectionview/src/videolistselectiondialog.cpp --- a/videocollection/videocollectionview/src/videolistselectiondialog.cpp Fri Apr 16 18:13:14 2010 +0300 +++ b/videocollection/videocollectionview/src/videolistselectiondialog.cpp Fri Apr 30 09:52:11 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 22 % +// Version : %version: 25 % // INCLUDE FILES #include @@ -26,6 +26,7 @@ #include #include #include +#include #include "videocollectionuiloader.h" #include "videolistwidget.h" @@ -58,6 +59,7 @@ , mHeading( 0 ) , mCheckboxContainer( 0 ) , mItemCount( 0 ) + , mCheckBoxText( 0 ) , mCheckBox( 0 ) , mListContainer( 0 ) , mForcedCheck( false ) @@ -67,6 +69,9 @@ , mSecondaryAction( 0 ) { FUNC_LOG; + + HbStyleLoader::registerFilePath( ":/style/hbdialog.css" ); + setDismissPolicy(HbDialog::NoDismiss); setTimeout(HbDialog::NoTimeout); @@ -84,6 +89,8 @@ delete mListWidget; mListWidget = 0; } + // disable list related animations to make dialog faster + mListWidget->setEnabledAnimations(HbAbstractItemView::None); } } @@ -94,7 +101,9 @@ VideoListSelectionDialog::~VideoListSelectionDialog() { FUNC_LOG; + HbStyleLoader::unregisterFilePath( ":/style/hbdialog.css" ); delete mListWidget; + mListWidget = 0; } // --------------------------------------------------------------------------- @@ -198,6 +207,12 @@ { mCheckBox = mUiLoader->findWidget(DOCML_NAME_MARKALL); } + + if(!mCheckBoxText) + { + mCheckBoxText = mUiLoader->findWidget(DOCML_NAME_LBL_MARKALL); + } + // HbDialog connects actions to finished signal by default. if(!mPrimaryAction) { @@ -209,9 +224,10 @@ mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel")); addAction(mSecondaryAction); } - if(!mListContainer || !mHeading || !mCheckBox) + + if(!mListContainer || !mHeading || !mCheckBox || !mCheckBoxText) { - ERROR(-1, "VideoListSelectionDialog::initDialog() !mListContainer || !mHeading || !mCheckBox"); + ERROR(-1, "VideoListSelectionDialog::initDialog() !mListContainer || !mHeading || !mCheckBox || !mCheckBoxText"); return false; } return true; @@ -331,18 +347,56 @@ QString albumName(""); if( mTypeOfSelection == ESelectCollection ) { + mTypeOfSelection = EAddToCollection; if( mSelectedAlbumId == TMPXItemId::InvalidId()) { - albumName = queryNewAlbumSelected(); - if(mSelectedAlbumId == TMPXItemId::InvalidId()) - { - // user canceled new album creation - return; - } + QString label(hbTrId("txt_videos_title_enter_name")); + HbInputDialog *dialog = new HbInputDialog(); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->getText(label, this, SLOT(newAlbumNameDialogFinished(HbAction *)), + hbTrId("txt_videos_dialog_entry_new_collection")); + } + else + { + finalize(); } - mTypeOfSelection = EAddToCollection; + } + else + { + finalize(); } +} + +// --------------------------------------------------------------------------- +// newAlbumNameDialogFinished +// --------------------------------------------------------------------------- +// +void VideoListSelectionDialog::newAlbumNameDialogFinished(HbAction *action) +{ + FUNC_LOG; + Q_UNUSED(action); + HbInputDialog *dialog = static_cast(sender()); + + QVariant variant = dialog->value(); + + if(dialog->actions().first() == action && variant.isValid()) + { + QString text = mModel->resolveAlbumName(variant.toString()); + if(text.length()) + { + mSelectedAlbumId = mModel->addNewAlbum(text); + finalize(text); + } + } +} + +// --------------------------------------------------------------------------- +// finalize +// --------------------------------------------------------------------------- +// +void VideoListSelectionDialog::finalize(QString albumName) +{ // Must be checked again if type was ESelectCollection if(mTypeOfSelection == EAddToCollection) { @@ -626,24 +680,3 @@ return name; } -// --------------------------------------------------------------------------- -// queryNewAlbumSelected -// --------------------------------------------------------------------------- -// -QString VideoListSelectionDialog::queryNewAlbumSelected() -{ - FUNC_LOG; - mSelectedAlbumId = TMPXItemId::InvalidId(); - bool ok = false; - QString label(hbTrId("txt_videos_title_enter_name")); - QString text(""); - text = HbInputDialog::getText(label, hbTrId("txt_videos_dialog_entry_new_collection"), &ok); - if (ok && text.length()) - { - // check for duplicate album name and add new album - text = mModel->resolveAlbumName(text); - mSelectedAlbumId = mModel->addNewAlbum(text); - } - return text; -} -