diff -r b7da29130b0e -r 80e4d18b72f5 src/hbwidgets/popups/hbselectiondialog_p.cpp --- a/src/hbwidgets/popups/hbselectiondialog_p.cpp Fri Sep 17 08:32:10 2010 +0300 +++ b/src/hbwidgets/popups/hbselectiondialog_p.cpp Mon Oct 04 00:38:12 2010 +0300 @@ -292,7 +292,6 @@ d->close(); } updateCounter(); - //d->_p_SelectionChanged(); } @@ -352,7 +351,7 @@ :HbDialogPrivate() { bOwnItems = false; - action1 = action2 = 0; +// action1 = action2 = 0; } HbSelectionDialogPrivate::~HbSelectionDialogPrivate() @@ -381,6 +380,14 @@ Q_Q(HbSelectionDialog); if(mSelectionMode == HbAbstractItemView::MultiSelection) { + if(action1){ + QItemSelectionModel *model = 0; + model = selectionModel(); + if(model->selectedRows().count()==0) + action1->setEnabled(false); + else + action1->setEnabled(true); + } emit q->selectionChanged(); } } @@ -389,16 +396,15 @@ { Q_Q(HbSelectionDialog); if(selectionMode == HbAbstractItemView::SingleSelection || selectionMode == HbAbstractItemView::NoSelection){ - if(action1) { q->disconnect(action1,SIGNAL(triggered()),q,SLOT(accept())); q->removeAction(action1); } if(action2 == NULL){ - action2 =new HbAction(hbTrId("txt_common_button_cancel"),q); - q->connect(action2,SIGNAL(triggered()),q,SLOT(reject())); + action2 =new HbAction(hbTrId("txt_common_button_cancel"),q); } if(q->actions().contains(action2) == false){ + q->connect(action2,SIGNAL(triggered()),q,SLOT(reject())); q->insertAction(0,action2); } } @@ -406,18 +412,17 @@ if(action2 == NULL){ action2 =new HbAction(hbTrId("txt_common_button_cancel"),q); + } + if(q->actions().contains(action2) == false){ q->connect(action2,SIGNAL(triggered()),q,SLOT(reject())); q->insertAction(0,action2); - } - if(q->actions().contains(action2) == false) - q->insertAction(0,action2); - + } if(action1 == NULL){ action1 =new HbAction(hbTrId("txt_common_button_ok"),q); + } + if(q->actions().contains(action1) == false) + { q->connect(action1,SIGNAL(triggered()),q,SLOT(accept())); - } - if(q->actions().contains(action1) == false) - { q->insertAction(q->actions().first(),action1); } }