deviceupdatesui/deviceupdates/src/dmadvancedview.cpp
changeset 24 408f75ba5bc2
parent 18 7d11f9a6646f
child 27 516a867811c3
equal deleted inserted replaced
21:c707676bf59f 24:408f75ba5bc2
    13 * Contributors:
    13 * Contributors:
    14 *
    14 *
    15 * Description:  Methods for DmAdvancedView.
    15 * Description:  Methods for DmAdvancedView.
    16 *
    16 *
    17 */
    17 */
    18 
    18 #include <hbnamespace.h>
    19 #include "dmadvancedview.h"
    19 #include "dmadvancedview.h"
    20 #include "serversettingsview.h"
    20 #include "serversettingsview.h"
    21 
    21 
    22 DmAdvancedView::DmAdvancedView(HbMainWindow *mainWindow, HbView *mainView, QGraphicsItem *parent):HbView(parent),
    22 DmAdvancedView::DmAdvancedView(HbMainWindow *mainWindow, HbView *mainView, QGraphicsItem *parent):HbView(parent),
    23     bluetooth(":/icons/qgn_prop_sml_bt.svg"),
    23     bluetooth(":/icons/qgn_prop_sml_bt.svg"),
    30     dminfo = new DmInfo(this);
    30     dminfo = new DmInfo(this);
    31     currentdefaultprofile = -1;
    31     currentdefaultprofile = -1;
    32     currentview = 0;
    32     currentview = 0;
    33     connectionRequested = false;    
    33     connectionRequested = false;    
    34     backbehaviorset = false;
    34     backbehaviorset = false;
       
    35     currentselecteditem = -1;
    35     }
    36     }
    36 
    37 
    37 DmAdvancedView::~DmAdvancedView()
    38 DmAdvancedView::~DmAdvancedView()
    38     {
    39     {
    39     qDebug("omadm DmAdvancedView::~DmAdvancedView");
    40     qDebug("omadm DmAdvancedView::~DmAdvancedView");
    44     qDebug("omadm DmAdvancedView::~DmAdvancedView end"); 
    45     qDebug("omadm DmAdvancedView::~DmAdvancedView end"); 
    45     }
    46     }
    46 
    47 
    47 void DmAdvancedView::handleLongPress(HbAbstractViewItem* item , QPointF coOrdinates)
    48 void DmAdvancedView::handleLongPress(HbAbstractViewItem* item , QPointF coOrdinates)
    48     {
    49     {
    49     if(connectionRequested)
    50     if (connectionRequested)
    50         return;
    51         return;
    51     int itemnum = 0;
    52     if (item)
    52     if (item) 
    53         {
    53         {
    54         modelItem = model->itemFromIndex(item->modelIndex());
    54     QStandardItem *modelItem = model->itemFromIndex(item->modelIndex());
    55         currentselecteditem = modelItem->row();
    55     itemnum = modelItem->row();
    56 
    56 
    57         HbMenu *csmenu = new HbMenu();
    57 
    58         csmenu->setAttribute( Qt::WA_DeleteOnClose);
    58     csmenu = new HbMenu();
    59         HbAction *defaultprofileAction = 0;
    59     HbAction *defaultprofileAction = 0;
    60         HbAction *deleteaction = 0;
    60     HbAction *deleteaction= 0;
    61         HbAction *connectaction = 0;
    61     HbAction *connectaction= 0;
    62         if (!dminfo->Isdefaultprofile(currentselecteditem))
    62     if(!dminfo->Isdefaultprofile(itemnum))
    63             {
    63         {
    64             defaultprofileAction = csmenu->addAction(hbTrId(
    64         defaultprofileAction = csmenu->addAction(hbTrId("txt_device_update_menu_set_as_default"));
    65                     "txt_device_update_menu_set_as_default"));
    65         }
    66             connect(defaultprofileAction, SIGNAL(triggered()), this,
    66     if(!dminfo->Isprofilelocked(itemnum))
    67                     SLOT(defaultMenuItemSelected()));
    67         {
    68             }
    68         deleteaction = csmenu->addAction(hbTrId("txt_device_update_menu_delete"));
    69         if (!dminfo->Isprofilelocked(currentselecteditem))
    69         }
    70             {
    70     connectaction = csmenu->addAction(hbTrId("txt_device_update_menu_connect"));
    71             deleteaction = csmenu->addAction(hbTrId(
    71     HbAction *selectedAction = csmenu->exec(coOrdinates);
    72                     "txt_device_update_menu_delete"));
    72     if(selectedAction)
    73             connect(deleteaction, SIGNAL(triggered()), this,
    73         {
    74                     SLOT(deleteMenuItemSelected()));
    74         if(selectedAction == defaultprofileAction )
    75             }
    75             {
    76         connectaction = csmenu->addAction(hbTrId(
    76             dminfo->setDefaultProfile(itemnum);
    77                 "txt_device_update_menu_connect"));
    77             updateEarlierdefaultProfileIcon();
    78         connect(connectaction, SIGNAL(triggered()), this,
    78             modelItem->setIcon(defaultprofileicon);
    79                 SLOT(connectMenuItemSelected()));
    79             currentdefaultprofile = itemnum;        
    80         csmenu->setPreferredPos(coOrdinates);
    80             }
    81         csmenu->open();
    81         else if (selectedAction == deleteaction )
       
    82             {
       
    83             dminfo->DisableDbNotifications(true);
       
    84             //check currentdefaultprofile is current item
       
    85             if(itemnum == currentdefaultprofile) // deleting default profile
       
    86                 currentdefaultprofile = -1;
       
    87             if(dminfo->DeleteProfile(itemnum) >=0 )
       
    88                 {
       
    89                 //Update the profile list
       
    90                 model->removeRow(itemnum);
       
    91                 }
       
    92             dminfo->DisableDbNotifications(false);
       
    93             }
       
    94         else if( selectedAction == connectaction )
       
    95             {
       
    96             dminfo->synchronize(itemnum);
       
    97             connectionRequested = true;
       
    98             }
       
    99         else
       
   100             {    
       
   101             }
       
   102         }
       
   103     delete csmenu;
       
   104         }
    82         }
   105     }
    83     }
   106 
    84 
   107 
    85 
   108 void DmAdvancedView::handleClicked(QModelIndex index)
    86 void DmAdvancedView::handleClicked(QModelIndex index)
   111         return;
    89         return;
   112     //Stop listening DB events for profile addition
    90     //Stop listening DB events for profile addition
   113     dminfo->DisableDbNotifications(true);
    91     dminfo->DisableDbNotifications(true);
   114     //If profile is not locked then take to edit server view
    92     //If profile is not locked then take to edit server view
   115     int itemnum = 0;
    93     int itemnum = 0;
   116     QStandardItem *modelItem = model->itemFromIndex(index);
    94     QStandardItem *selectedItem = model->itemFromIndex(index);
   117     itemnum = modelItem->row();                  
    95     itemnum = selectedItem->row();                  
   118     if(itemnum >= 0 && !dminfo->Isprofilelocked(itemnum))
    96     if(itemnum >= 0 && !dminfo->Isprofilelocked(itemnum))
   119         {        
    97         {        
   120         //read profile items
    98         //read profile items
   121         QStringList itemdata;
    99         QStringList itemdata;
   122         bool sessmode = 0;
   100         bool sessmode = 0;
   260 
   238 
   261 void DmAdvancedView::updateEarlierdefaultProfileIcon()
   239 void DmAdvancedView::updateEarlierdefaultProfileIcon()
   262     {
   240     {
   263     if(currentdefaultprofile >= 0)
   241     if(currentdefaultprofile >= 0)
   264         {
   242         {
   265         QStandardItem *modelItem = model->item(currentdefaultprofile);
   243         QStandardItem *earlierDefaultProfile = model->item(currentdefaultprofile);
   266         //Find the transport type & set the icon
   244         //Find the transport type & set the icon
   267         int transporttype = 0;
   245         int transporttype = 0;
   268         dminfo->profileTransport(currentdefaultprofile,transporttype);
   246         dminfo->profileTransport(currentdefaultprofile,transporttype);
   269         if(transporttype == 0)//Internet
   247         if(transporttype == 0)//Internet
   270             {
   248             {
   271             modelItem->setIcon(internet);
   249             earlierDefaultProfile->setIcon(internet);
   272             }
   250             }
   273         else
   251         else
   274             {
   252             {
   275             modelItem->setIcon(bluetooth);
   253             earlierDefaultProfile->setIcon(bluetooth);
   276             }        
   254             }        
   277         }
   255         }
   278     }
   256     }
   279 
   257 
   280 void DmAdvancedView::createNewProfile()
   258 void DmAdvancedView::createNewProfile()
   666     Q_UNUSED(jobstatus);
   644     Q_UNUSED(jobstatus);
   667     connectionRequested = false;    
   645     connectionRequested = false;    
   668     updateListview();
   646     updateListview();
   669     }
   647     }
   670 	
   648 	
       
   649 void DmAdvancedView::defaultMenuItemSelected()
       
   650     {
       
   651     dminfo->setDefaultProfile(currentselecteditem);
       
   652     updateEarlierdefaultProfileIcon();
       
   653     modelItem->setIcon(defaultprofileicon);
       
   654     currentdefaultprofile = currentselecteditem;
       
   655     }
       
   656 
       
   657 void DmAdvancedView::deleteMenuItemSelected()
       
   658     {
       
   659     dminfo->DisableDbNotifications(true);
       
   660     //check currentdefaultprofile is current item
       
   661     if(currentselecteditem == currentdefaultprofile) // deleting default profile
       
   662         currentdefaultprofile = -1;
       
   663     if(dminfo->DeleteProfile(currentselecteditem) >=0 )
       
   664         {
       
   665     //Update the profile list
       
   666     model->removeRow(currentselecteditem);
       
   667         }
       
   668     dminfo->DisableDbNotifications(false);
       
   669     }
       
   670 
       
   671 void DmAdvancedView::connectMenuItemSelected()
       
   672     {
       
   673     dminfo->synchronize(currentselecteditem);
       
   674     connectionRequested = true;
       
   675     }
       
   676