phonebookui/pbkcommonui/src/cntcollectionview.cpp
changeset 37 fd64c38c277d
parent 31 2a11b5b00470
child 40 b46a585f6909
equal deleted inserted replaced
31:2a11b5b00470 37:fd64c38c277d
    20 #include "cntgroupselectionpopup.h"
    20 #include "cntgroupselectionpopup.h"
    21 #include "cntgroupdeletepopup.h"
    21 #include "cntgroupdeletepopup.h"
    22 #include "cntcollectionlistmodel.h"
    22 #include "cntcollectionlistmodel.h"
    23 #include "cntextensionmanager.h"
    23 #include "cntextensionmanager.h"
    24 #include "qtpbkglobal.h"
    24 #include "qtpbkglobal.h"
       
    25 #include "cntfavourite.h"
    25 
    26 
    26 #include <cntuiextensionfactory.h>
    27 #include <cntuiextensionfactory.h>
    27 #include <cntuigroupsupplier.h>
    28 #include <cntuigroupsupplier.h>
    28 
    29 #include <hblabel.h>
    29 #include <hblistview.h>
    30 #include <hblistview.h>
    30 #include <hblistviewitem.h>
    31 #include <hblistviewitem.h>
    31 #include <hbmenu.h>
    32 #include <hbmenu.h>
    32 #include <hbnotificationdialog.h>
    33 #include <hbnotificationdialog.h>
    33 #include <hbinputdialog.h>
    34 #include <hbinputdialog.h>
    86     // toolbar actions
    87     // toolbar actions
    87     
    88     
    88     mNamesAction = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:names"));
    89     mNamesAction = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:names"));
    89     connect(mNamesAction, SIGNAL(triggered()), this, SLOT(showPreviousView()));
    90     connect(mNamesAction, SIGNAL(triggered()), this, SLOT(showPreviousView()));
    90     mFindAction = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:find"));
    91     mFindAction = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:find"));
       
    92     mFindAction->setEnabled(false);
    91     mExtensionAction = static_cast<HbAction*> (mDocumentLoader.findObject("cnt:activity"));
    93     mExtensionAction = static_cast<HbAction*> (mDocumentLoader.findObject("cnt:activity"));
    92 }
    94 }
    93 
    95 
    94 /*!
    96 /*!
    95 
    97 
   154 {
   156 {
   155 
   157 
   156 }
   158 }
   157 
   159 
   158 /*!
   160 /*!
       
   161 Handle view switching request from an extension group item 
       
   162 */
       
   163 void CntCollectionView::openView(CntViewParameters& viewParams)
       
   164 {
       
   165     mViewManager->changeView(viewParams);
       
   166 }
       
   167 
       
   168 /*!
   159 Go back to previous view
   169 Go back to previous view
   160 */
   170 */
   161 void CntCollectionView::showPreviousView()
   171 void CntCollectionView::showPreviousView()
   162 {
   172 {
   163     CntViewParameters viewParameters;
   173     CntViewParameters viewParameters;
   178         }
   188         }
   179     }
   189     }
   180     else
   190     else
   181     {
   191     {
   182         int id = index.data(Qt::UserRole).toInt();
   192         int id = index.data(Qt::UserRole).toInt();
   183         int favoriteGrpId = mModel->favoriteGroupId();
   193         int favoriteGrpId = CntFavourite::favouriteGroupId(mViewManager->contactManager(SYMBIAN_BACKEND));
   184 
   194 
   185         if (id == favoriteGrpId )
   195         if (id == favoriteGrpId )
   186         {
   196         {
   187             QContact favoriteGroup = getContactManager()->contact(favoriteGrpId);
   197             QContact favoriteGroup = getContactManager()->contact(favoriteGrpId);
   188             QContactRelationshipFilter rFilter;
   198             QContactRelationshipFilter rFilter;
   196             {
   206             {
   197                 CntViewParameters viewParameters;
   207                 CntViewParameters viewParameters;
   198                 viewParameters.insert(EViewId, collectionFavoritesView);
   208                 viewParameters.insert(EViewId, collectionFavoritesView);
   199                 QVariant var;
   209                 QVariant var;
   200                 var.setValue(favoriteGroup);
   210                 var.setValue(favoriteGroup);
   201                 viewParameters.insert(ESelectedContact, var);
   211                 viewParameters.insert(ESelectedGroupContact, var);
   202                 mViewManager->changeView(viewParameters);
   212                 mViewManager->changeView(viewParameters);
   203             }
   213             }
   204             else
   214             else
   205             {
   215             {
   206                 CntViewParameters viewParameters;
   216                 CntViewParameters viewParameters;
   207                 viewParameters.insert(EViewId, FavoritesMemberView);
   217                 viewParameters.insert(EViewId, FavoritesMemberView);
   208                 QVariant var;
   218                 QVariant var;
   209                 var.setValue(favoriteGroup);
   219                 var.setValue(favoriteGroup);
   210                 viewParameters.insert(ESelectedContact, var);
   220                 viewParameters.insert(ESelectedGroupContact, var);
   211                 mViewManager->changeView(viewParameters);
   221                 mViewManager->changeView(viewParameters);
   212             }
   222             }
   213         }
   223         }
   214         else
   224         else
   215         {
   225         {
   217 
   227 
   218             CntViewParameters viewParameters;
   228             CntViewParameters viewParameters;
   219             viewParameters.insert(EViewId, groupMemberView);
   229             viewParameters.insert(EViewId, groupMemberView);
   220             QVariant var;
   230             QVariant var;
   221             var.setValue(groupContact);
   231             var.setValue(groupContact);
   222             viewParameters.insert(ESelectedContact, var);
   232             viewParameters.insert(ESelectedGroupContact, var);
   223             mViewManager->changeView(viewParameters);
   233             mViewManager->changeView(viewParameters);
   224         }
   234         }
   225     }
   235     }
   226 }
   236 }
   227 
   237 
   228 void CntCollectionView::showContextMenu(HbAbstractViewItem *item, const QPointF &coords)
   238 void CntCollectionView::showContextMenu(HbAbstractViewItem *item, const QPointF &coords)
   229 {
   239 {
   230     if (mModel->isExtensionGroup(item->modelIndex()))
   240     if (mModel->isExtensionGroup(item->modelIndex()))
   231     {
   241     {
   232         CntViewParameters params = mModel->extensionGroupLongPressed(item->modelIndex().row(), coords);
   242         mModel->extensionGroupLongPressed(item->modelIndex().row(), coords, this);
   233         if (params.count())
       
   234         {
       
   235             mViewManager->changeView(params);
       
   236         }
       
   237     }
   243     }
   238     else
   244     else
   239     {
   245     {
   240         int id = item->modelIndex().data(Qt::UserRole).toInt();
   246         int id = item->modelIndex().data(Qt::UserRole).toInt();
   241         QVariant data( item->modelIndex().row() );
   247         QVariant data( item->modelIndex().row() );
   242         
   248 
   243         int favoriteGrpId = mModel->favoriteGroupId();
   249         int favoriteGrpId = CntFavourite::favouriteGroupId(mViewManager->contactManager(SYMBIAN_BACKEND));
   244         
   250         
   245         HbMenu *menu = new HbMenu();
   251         HbMenu *menu = new HbMenu();
   246         menu->setAttribute(Qt::WA_DeleteOnClose);
   252         menu->setAttribute(Qt::WA_DeleteOnClose);
   247         menu->setPreferredPos( coords );
   253         menu->setPreferredPos( coords );
   248         
   254         
   285 {
   291 {
   286     HbInputDialog *popup = new HbInputDialog();
   292     HbInputDialog *popup = new HbInputDialog();
   287     popup->setAttribute(Qt::WA_DeleteOnClose, true);
   293     popup->setAttribute(Qt::WA_DeleteOnClose, true);
   288     
   294     
   289     popup->setPromptText(hbTrId("txt_phob_title_new_group_name"));
   295     popup->setPromptText(hbTrId("txt_phob_title_new_group_name"));
   290     popup->setPrimaryAction(new HbAction(hbTrId("txt_phob_button_create"), popup));
   296     popup->clearActions();
   291     popup->setSecondaryAction(new HbAction(hbTrId("txt_common_button_cancel"), popup));
   297     HbAction* primaryAction = new HbAction(hbTrId("txt_phob_button_create"));
       
   298     popup->addAction(primaryAction);
       
   299     
       
   300     HbAction* secondaryAction = new HbAction(hbTrId("txt_common_button_cancel"));
       
   301     popup->addAction(secondaryAction);
       
   302            
   292     popup->setInputMode(HbInputDialog::TextInput);
   303     popup->setInputMode(HbInputDialog::TextInput);
   293 
   304 
   294     popup->open(this, SLOT(handleNewGroup(HbAction*)));
   305     popup->open(this, SLOT(handleNewGroup(HbAction*)));
   295 }
   306 }
   296 
   307 
   316         QSet<QContactLocalId> contactsSet = contactsList.toSet();
   327         QSet<QContactLocalId> contactsSet = contactsList.toSet();
   317 
   328 
   318         // Select some contact(s) to add to the group
   329         // Select some contact(s) to add to the group
   319         QString groupNameCreated(mHandledContact->displayLabel());
   330         QString groupNameCreated(mHandledContact->displayLabel());
   320         mFetchView->setDetails(HbParameterLengthLimiter(hbTrId("txt_phob_subtitle_1_group")).arg(groupNameCreated),
   331         mFetchView->setDetails(HbParameterLengthLimiter(hbTrId("txt_phob_subtitle_1_group")).arg(groupNameCreated),
   321                                hbTrId("Save"));
   332                                hbTrId("txt_common_button_save"));
   322         mFetchView->displayContacts(CntFetchContacts::popup,
   333         mFetchView->displayContacts(CntFetchContacts::popup,
   323                                     HbAbstractItemView::MultiSelection,
   334                                     HbAbstractItemView::MultiSelection,
   324                                     contactsSet);
   335                                     contactsSet);
   325     }
   336     }
   326 }
   337 }
   333 
   344 
   334         CntViewParameters viewParameters;
   345         CntViewParameters viewParameters;
   335         viewParameters.insert(EViewId, groupMemberView);
   346         viewParameters.insert(EViewId, groupMemberView);
   336         QVariant var;
   347         QVariant var;
   337         var.setValue(*mHandledContact);
   348         var.setValue(*mHandledContact);
   338         viewParameters.insert(ESelectedContact, var);
   349         viewParameters.insert(ESelectedGroupContact, var);
   339         mViewManager->changeView(viewParameters);
   350         mViewManager->changeView(viewParameters);
   340     }
   351     }
   341     
   352     
   342     QString groupNameCreated(mHandledContact->displayLabel());
   353     QString groupNameCreated(mHandledContact->displayLabel());
   343     HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created")).arg(groupNameCreated));
   354     HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created")).arg(groupNameCreated));
   362 void CntCollectionView::deleteGroup(QContact group)
   373 void CntCollectionView::deleteGroup(QContact group)
   363 {
   374 {
   364     mHandledContact = new QContact(group);
   375     mHandledContact = new QContact(group);
   365     QString name = mHandledContact->displayLabel();
   376     QString name = mHandledContact->displayLabel();
   366 
   377 
   367     HbMessageBox::question(HbParameterLengthLimiter(hbTrId("txt_phob_dialog_delete_1_group")).arg(name), this, SLOT(handleDeleteGroup(HbAction*)),
   378     HbLabel *headingLabel = new HbLabel();
   368             hbTrId("txt_phob_button_delete"), hbTrId("txt_common_button_cancel"));
   379     headingLabel->setPlainText(HbParameterLengthLimiter(hbTrId("txt_phob_dialog_delete_1_group")).arg(name));
       
   380           
       
   381     HbMessageBox::question(hbTrId("txt_phob_dialog_only_group_will_be_removed_contac")
       
   382             , this, SLOT(handleDeleteGroup(HbAction*)),
       
   383                 hbTrId("txt_phob_button_delete"), hbTrId("txt_common_button_cancel"), headingLabel);
   369 }
   384 }
   370 
   385 
   371 void CntCollectionView::handleDeleteGroup(HbAction* action)
   386 void CntCollectionView::handleDeleteGroup(HbAction* action)
   372 {
   387 {
   373     HbMessageBox *note = static_cast<HbMessageBox*>(sender());
   388     HbMessageBox *note = static_cast<HbMessageBox*>(sender());