diff -r 4785f57bf3d4 -r 03646e8da489 homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp --- 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()"); }