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"), |
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 |