homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp
changeset 77 4b195f3bea29
parent 60 30f14686fb04
child 81 7dd137878ff8
--- a/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp	Tue Jul 06 14:06:53 2010 +0300
+++ b/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp	Wed Aug 18 09:40:07 2010 +0300
@@ -78,7 +78,7 @@
  */
 HsArrangeState::HsArrangeState(QState *parent) :
     QState(parent), mDialog(0), mEntriesList(0), 
-    mItemModel(0)
+    mItemModel(0),mCollectionId(0)
 {
     construct();
 }
@@ -119,9 +119,10 @@
     HSMENUTEST_FUNC_ENTRY("HsArrangeState::save");
 
     getArrangedEntriesIds(listWidget);
-    if (mArrangedCollIdList != mCollIdList) {
+    if (mArrangedCollItemIdList != mCollItemIdList) {
         HsMenuService::organizeCollection(
-            HsMenuService::allCollectionsId(), mArrangedCollIdList);
+            mCollectionId,
+            mArrangedCollItemIdList);
     }
 
     HSMENUTEST_FUNC_EXIT("HsArrangeState::save");
@@ -156,9 +157,22 @@
     mDialog = qobject_cast<HbDialog*>(
             loader.findWidget(HS_ARRANGE_DIALOG_NAME));
 
-    if (mEntriesList != NULL && mDialog != NULL) {
+    if (mEntriesList && mDialog) {
+        switch (menuEvent->operation()) {
+        case HsMenuEvent::ArrangeCollection:
+            mCollectionId = data.value(collectionIdKey()).toInt();
+            mItemModel = HsMenuService::getCollectionModel(
+                mCollectionId,
+                NoHsSortAttribute);
+            break;
+        case HsMenuEvent::ArrangeAllCollections:
+            mCollectionId = HsMenuService::allCollectionsId();
+            mItemModel = HsMenuService::getAllCollectionsModel();
+            break;
+        default:
+            break;
+        }
 
-        mItemModel = HsMenuService::getAllCollectionsModel();
         // as we copy the model contents to the list widget
         // we do not need the model to auto update
         mItemModel->setAutoUpdate(false);
@@ -171,7 +185,7 @@
         mEntriesList->setArrangeMode(true);
     
         mDialog->setTimeout(HbPopup::NoTimeout);
-        mDialog->setAttribute(Qt::WA_DeleteOnClose, true);
+        mDialog->setAttribute(Qt::WA_DeleteOnClose);
 
         mDialog->setPreferredSize(
             HbInstance::instance()->allMainWindows().at(0)->size());
@@ -201,7 +215,8 @@
 {
     HSMENUTEST_FUNC_ENTRY("HsArrangeState::stateExited");
     if (mDialog) {
-        disconnect(mDialog, SIGNAL(finished(HbAction*)), this, SLOT(arrangeDialogFinished(HbAction*)));
+        disconnect(mDialog, SIGNAL(finished(HbAction*)),
+        this, SLOT(arrangeDialogFinished(HbAction*)));
         mDialog->close();
         mDialog = NULL;
     }
@@ -212,8 +227,8 @@
     delete mItemModel;
     mItemModel = NULL;
 
-    mArrangedCollIdList.clear();
-    mCollIdList.clear();
+    mArrangedCollItemIdList.clear();
+    mCollItemIdList.clear();
 
     HSMENUTEST_FUNC_EXIT("HsArrangeState::stateExited");
     qDebug("HsArrangeState::stateExited()");
@@ -235,7 +250,7 @@
         int itemId = mItemModel->data(idx, CaItemModel::IdRole).toInt();
         widgetItem->setData(mItemModel->data(idx, CaItemModel::IdRole),
                             CaItemModel::IdRole);
-        mCollIdList.append(itemId);
+        mCollItemIdList.append(itemId);
         widgetItem->setData(mItemModel->data(idx, Qt::DisplayRole),
                             Qt::DisplayRole);
         widgetItem->setData(mItemModel->data(idx, Qt::DecorationRole),
@@ -259,6 +274,6 @@
     for (int i(0); i < listWidget.count(); ++i) {
         HbListWidgetItem *widgetItem = listWidget.item(i);
         QVariant entryId = widgetItem->data(CaItemModel::IdRole);
-        mArrangedCollIdList.append(entryId.toInt());
+        mArrangedCollItemIdList.append(entryId.toInt());
     }
 }