src/hbwidgets/popups/hbselectiondialog_p.cpp
changeset 30 80e4d18b72f5
parent 28 b7da29130b0e
--- 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);
         }
     }