homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp
changeset 55 03646e8da489
parent 46 23b5d6a29cce
child 60 30f14686fb04
--- a/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp	Thu May 27 12:46:08 2010 +0300
+++ b/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp	Fri Jun 11 13:30:16 2010 +0300
@@ -78,7 +78,7 @@
  */
 HsArrangeState::HsArrangeState(QState *parent) :
     QState(parent), mDialog(0), mEntriesList(0), 
-    mItemModel(0), mFinishedEntered(false)
+    mItemModel(0)
 {
     construct();
 }
@@ -193,21 +193,13 @@
  */
 void HsArrangeState::arrangeDialogFinished(HbAction* finishedAction)
 {
-    if (!mFinishedEntered) {
-        mFinishedEntered = true;
-
-        mEntriesList->setArrangeMode(false);
-        if (finishedAction == mDialog->actions().value(0)) {
-            save(*mEntriesList);
-        }
-        emit exit();
-    } else {
-        // (work-around for crash if more then one action is selected in HbDialog)
-        qWarning("Another signal finished was emited.");
+    mEntriesList->setArrangeMode(false);
+    if (finishedAction == mDialog->actions().value(0)) {
+        save(*mEntriesList);
     }
+    emit exit();
 }
 
-
 /*!
  Slot invoked when a state is exited.
  */
@@ -215,9 +207,10 @@
 {
     HSMENUTEST_FUNC_ENTRY("HsArrangeState::stateExited");
     if (mDialog) {
+        disconnect(mDialog, SIGNAL(finished(HbAction*)), this, SLOT(arrangeDialogFinished(HbAction*)));
         mDialog->close();
+        mDialog = NULL;
     }
-    mDialog = NULL;
 
     mObjectList.clear(); // mDialog as parent for all confml items
     
@@ -228,8 +221,6 @@
     mArrangedCollIdList.clear();
     mCollIdList.clear();
 
-    mFinishedEntered = false;
-
     HSMENUTEST_FUNC_EXIT("HsArrangeState::stateExited");
     qDebug("HsArrangeState::stateExited()");
 }