homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsarrangestate.cpp
changeset 77 4b195f3bea29
parent 60 30f14686fb04
child 81 7dd137878ff8
equal deleted inserted replaced
61:2b1b11a301d2 77:4b195f3bea29
    76  \param parent Parent state.
    76  \param parent Parent state.
    77  \retval void
    77  \retval void
    78  */
    78  */
    79 HsArrangeState::HsArrangeState(QState *parent) :
    79 HsArrangeState::HsArrangeState(QState *parent) :
    80     QState(parent), mDialog(0), mEntriesList(0), 
    80     QState(parent), mDialog(0), mEntriesList(0), 
    81     mItemModel(0)
    81     mItemModel(0),mCollectionId(0)
    82 {
    82 {
    83     construct();
    83     construct();
    84 }
    84 }
    85 
    85 
    86 /*!
    86 /*!
   117 {
   117 {
   118     qDebug("HsArrangeState::save()");
   118     qDebug("HsArrangeState::save()");
   119     HSMENUTEST_FUNC_ENTRY("HsArrangeState::save");
   119     HSMENUTEST_FUNC_ENTRY("HsArrangeState::save");
   120 
   120 
   121     getArrangedEntriesIds(listWidget);
   121     getArrangedEntriesIds(listWidget);
   122     if (mArrangedCollIdList != mCollIdList) {
   122     if (mArrangedCollItemIdList != mCollItemIdList) {
   123         HsMenuService::organizeCollection(
   123         HsMenuService::organizeCollection(
   124             HsMenuService::allCollectionsId(), mArrangedCollIdList);
   124             mCollectionId,
       
   125             mArrangedCollItemIdList);
   125     }
   126     }
   126 
   127 
   127     HSMENUTEST_FUNC_EXIT("HsArrangeState::save");
   128     HSMENUTEST_FUNC_EXIT("HsArrangeState::save");
   128 }
   129 }
   129 
   130 
   154         loader.findWidget(HS_ARRANGE_LIST_NAME));
   155         loader.findWidget(HS_ARRANGE_LIST_NAME));
   155     
   156     
   156     mDialog = qobject_cast<HbDialog*>(
   157     mDialog = qobject_cast<HbDialog*>(
   157             loader.findWidget(HS_ARRANGE_DIALOG_NAME));
   158             loader.findWidget(HS_ARRANGE_DIALOG_NAME));
   158 
   159 
   159     if (mEntriesList != NULL && mDialog != NULL) {
   160     if (mEntriesList && mDialog) {
   160 
   161         switch (menuEvent->operation()) {
   161         mItemModel = HsMenuService::getAllCollectionsModel();
   162         case HsMenuEvent::ArrangeCollection:
       
   163             mCollectionId = data.value(collectionIdKey()).toInt();
       
   164             mItemModel = HsMenuService::getCollectionModel(
       
   165                 mCollectionId,
       
   166                 NoHsSortAttribute);
       
   167             break;
       
   168         case HsMenuEvent::ArrangeAllCollections:
       
   169             mCollectionId = HsMenuService::allCollectionsId();
       
   170             mItemModel = HsMenuService::getAllCollectionsModel();
       
   171             break;
       
   172         default:
       
   173             break;
       
   174         }
       
   175 
   162         // as we copy the model contents to the list widget
   176         // as we copy the model contents to the list widget
   163         // we do not need the model to auto update
   177         // we do not need the model to auto update
   164         mItemModel->setAutoUpdate(false);
   178         mItemModel->setAutoUpdate(false);
   165         
   179         
   166         fulfillEntriesList(*mEntriesList);
   180         fulfillEntriesList(*mEntriesList);
   169                                HbAbstractItemView::PositionAtTop);
   183                                HbAbstractItemView::PositionAtTop);
   170     
   184     
   171         mEntriesList->setArrangeMode(true);
   185         mEntriesList->setArrangeMode(true);
   172     
   186     
   173         mDialog->setTimeout(HbPopup::NoTimeout);
   187         mDialog->setTimeout(HbPopup::NoTimeout);
   174         mDialog->setAttribute(Qt::WA_DeleteOnClose, true);
   188         mDialog->setAttribute(Qt::WA_DeleteOnClose);
   175 
   189 
   176         mDialog->setPreferredSize(
   190         mDialog->setPreferredSize(
   177             HbInstance::instance()->allMainWindows().at(0)->size());
   191             HbInstance::instance()->allMainWindows().at(0)->size());
   178             
   192             
   179         mDialog->open(this, SLOT(arrangeDialogFinished(HbAction*)));
   193         mDialog->open(this, SLOT(arrangeDialogFinished(HbAction*)));
   199  */
   213  */
   200 void HsArrangeState::stateExited()
   214 void HsArrangeState::stateExited()
   201 {
   215 {
   202     HSMENUTEST_FUNC_ENTRY("HsArrangeState::stateExited");
   216     HSMENUTEST_FUNC_ENTRY("HsArrangeState::stateExited");
   203     if (mDialog) {
   217     if (mDialog) {
   204         disconnect(mDialog, SIGNAL(finished(HbAction*)), this, SLOT(arrangeDialogFinished(HbAction*)));
   218         disconnect(mDialog, SIGNAL(finished(HbAction*)),
       
   219         this, SLOT(arrangeDialogFinished(HbAction*)));
   205         mDialog->close();
   220         mDialog->close();
   206         mDialog = NULL;
   221         mDialog = NULL;
   207     }
   222     }
   208 
   223 
   209     mObjectList.clear(); // mDialog as parent for all confml items
   224     mObjectList.clear(); // mDialog as parent for all confml items
   210     
   225     
   211     mEntriesList = NULL;
   226     mEntriesList = NULL;
   212     delete mItemModel;
   227     delete mItemModel;
   213     mItemModel = NULL;
   228     mItemModel = NULL;
   214 
   229 
   215     mArrangedCollIdList.clear();
   230     mArrangedCollItemIdList.clear();
   216     mCollIdList.clear();
   231     mCollItemIdList.clear();
   217 
   232 
   218     HSMENUTEST_FUNC_EXIT("HsArrangeState::stateExited");
   233     HSMENUTEST_FUNC_EXIT("HsArrangeState::stateExited");
   219     qDebug("HsArrangeState::stateExited()");
   234     qDebug("HsArrangeState::stateExited()");
   220 }
   235 }
   221 
   236 
   233         QModelIndex idx = mItemModel->index(i);
   248         QModelIndex idx = mItemModel->index(i);
   234         HbListWidgetItem *widgetItem = new HbListWidgetItem();
   249         HbListWidgetItem *widgetItem = new HbListWidgetItem();
   235         int itemId = mItemModel->data(idx, CaItemModel::IdRole).toInt();
   250         int itemId = mItemModel->data(idx, CaItemModel::IdRole).toInt();
   236         widgetItem->setData(mItemModel->data(idx, CaItemModel::IdRole),
   251         widgetItem->setData(mItemModel->data(idx, CaItemModel::IdRole),
   237                             CaItemModel::IdRole);
   252                             CaItemModel::IdRole);
   238         mCollIdList.append(itemId);
   253         mCollItemIdList.append(itemId);
   239         widgetItem->setData(mItemModel->data(idx, Qt::DisplayRole),
   254         widgetItem->setData(mItemModel->data(idx, Qt::DisplayRole),
   240                             Qt::DisplayRole);
   255                             Qt::DisplayRole);
   241         widgetItem->setData(mItemModel->data(idx, Qt::DecorationRole),
   256         widgetItem->setData(mItemModel->data(idx, Qt::DecorationRole),
   242                             Qt::DecorationRole);
   257                             Qt::DecorationRole);
   243 
   258 
   257 void HsArrangeState::getArrangedEntriesIds(const HbListWidget& listWidget)
   272 void HsArrangeState::getArrangedEntriesIds(const HbListWidget& listWidget)
   258 {
   273 {
   259     for (int i(0); i < listWidget.count(); ++i) {
   274     for (int i(0); i < listWidget.count(); ++i) {
   260         HbListWidgetItem *widgetItem = listWidget.item(i);
   275         HbListWidgetItem *widgetItem = listWidget.item(i);
   261         QVariant entryId = widgetItem->data(CaItemModel::IdRole);
   276         QVariant entryId = widgetItem->data(CaItemModel::IdRole);
   262         mArrangedCollIdList.append(entryId.toInt());
   277         mArrangedCollItemIdList.append(entryId.toInt());
   263     }
   278     }
   264 }
   279 }