41 #include "conversationsenginedefines.h" |
41 #include "conversationsenginedefines.h" |
42 #include "convergedmessage.h" |
42 #include "convergedmessage.h" |
43 #include "convergedmessageid.h" |
43 #include "convergedmessageid.h" |
44 |
44 |
45 // LOCAL CONSTANTS |
45 // LOCAL CONSTANTS |
46 const QString LIST_ITEM_FRAME("qtg_fr_list_normal"); |
|
47 const QString POPUP_LIST_FRAME("qtg_fr_popup_list_normal"); |
46 const QString POPUP_LIST_FRAME("qtg_fr_popup_list_normal"); |
48 const QString NEW_MESSAGE_ICON("qtg_mono_create_message"); |
47 const QString NEW_MESSAGE_ICON("qtg_mono_create_message"); |
49 const QString SORT_ICON("qtg_mono_sort"); |
48 const QString SORT_ICON("qtg_mono_sort"); |
50 |
49 |
51 // LOCALIZATION CONSTANTS |
50 // LOCALIZATION CONSTANTS |
73 //--------------------------------------------------------------- |
72 //--------------------------------------------------------------- |
74 // DraftsListView::DraftsListView |
73 // DraftsListView::DraftsListView |
75 // @see header |
74 // @see header |
76 //--------------------------------------------------------------- |
75 //--------------------------------------------------------------- |
77 DraftsListView::DraftsListView(QGraphicsItem *parent) : |
76 DraftsListView::DraftsListView(QGraphicsItem *parent) : |
78 MsgBaseView(parent), mListView(0), mViewExtnList(0), mToolBar(0) |
77 MsgBaseView(parent), |
|
78 mListView(0), |
|
79 mViewExtnList(0), |
|
80 mToolBar(0), |
|
81 mItemLongPressed(false) |
79 { |
82 { |
80 // Delayed loading. |
83 // Delayed loading. |
81 connect(this->mainWindow(), SIGNAL(viewReady()), this, SLOT(doDelayedLoading())); |
84 connect(this->mainWindow(), SIGNAL(viewReady()), this, SLOT(doDelayedLoading())); |
82 } |
85 } |
83 |
86 |
161 mListView->setItemRecycling(true); |
164 mListView->setItemRecycling(true); |
162 mListView->setUniformItemSizes(true); |
165 mListView->setUniformItemSizes(true); |
163 mListView->setClampingStyle(HbScrollArea::BounceBackClamping); |
166 mListView->setClampingStyle(HbScrollArea::BounceBackClamping); |
164 |
167 |
165 // Register the custorm css path. |
168 // Register the custorm css path. |
166 HbStyleLoader::registerFilePath(":/xml/hblistviewitem.css"); |
169 HbStyleLoader::registerFilePath(":/dlv"); |
167 // mListView->setLayoutName("custom"); |
170 // mListView->setLayoutName("custom"); |
168 |
171 |
169 // Set list item properties. |
172 // Set list item properties. |
170 HbListViewItem *prototype = mListView->listItemPrototype(); |
173 HbListViewItem *prototype = mListView->listItemPrototype(); |
171 prototype->setGraphicsSize(HbListViewItem::SmallIcon); |
174 prototype->setGraphicsSize(HbListViewItem::SmallIcon); |
172 prototype->setStretchingStyle(HbListViewItem::StretchLandscape); |
175 prototype->setStretchingStyle(HbListViewItem::StretchLandscape); |
173 prototype->setSecondaryTextRowCount(1, 1); |
176 prototype->setSecondaryTextRowCount(1, 1); |
174 HbFrameBackground frame(LIST_ITEM_FRAME, HbFrameDrawer::NinePieces); |
|
175 prototype->setDefaultFrame(frame); |
|
176 |
177 |
177 // Create and set model |
178 // Create and set model |
178 QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this); |
179 QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this); |
179 proxyModel->setDynamicSortFilter(true); |
180 proxyModel->setDynamicSortFilter(true); |
180 proxyModel->setSourceModel(ConversationsEngine::instance()->getDraftsModel()); |
181 proxyModel->setSourceModel(ConversationsEngine::instance()->getDraftsModel()); |
227 |
228 |
228 if (!index.isValid()) { |
229 if (!index.isValid()) { |
229 return; |
230 return; |
230 } |
231 } |
231 |
232 |
232 bool result = HbMessageBox::question(LOC_DELETE_MESSAGE, LOC_BUTTON_DELETE, LOC_BUTTON_CANCEL); |
233 HbMessageBox::question(LOC_DELETE_MESSAGE, |
233 |
234 this,SLOT(onDialogDeleteMsg(HbAction*)), |
234 if (result) { |
235 LOC_BUTTON_DELETE, LOC_BUTTON_CANCEL); |
235 int msgId = index.data(ConvergedMsgId).toInt(); |
|
236 QList<int> msgIdList; |
|
237 msgIdList.append(msgId); |
|
238 ConversationsEngine::instance()->deleteMessages(msgIdList); |
|
239 } |
|
240 |
236 |
241 } |
237 } |
242 |
238 |
243 //------------------------------------------------------------------------------ |
239 //------------------------------------------------------------------------------ |
244 // DraftsListView::deleteAllDraftMessage |
240 // DraftsListView::deleteAllDraftMessage |
245 // @see header |
241 // @see header |
246 //------------------------------------------------------------------------------ |
242 //------------------------------------------------------------------------------ |
247 void DraftsListView::deleteAllDraftMessage() |
243 void DraftsListView::deleteAllDraftMessage() |
248 { |
244 { |
249 bool result = HbMessageBox::question(LOC_DELETE_ALL_DRAFTS, LOC_BUTTON_DELETE, |
245 HbMessageBox::question(LOC_DELETE_ALL_DRAFTS, |
|
246 this,SLOT(onDialogDeleteAllMessages(HbAction*)), |
|
247 LOC_BUTTON_DELETE, |
250 LOC_BUTTON_CANCEL); |
248 LOC_BUTTON_CANCEL); |
251 |
|
252 if (result) { |
|
253 ConversationsEngine::instance()->deleteAllDraftMessages(); |
|
254 } |
|
255 } |
249 } |
256 |
250 |
257 //------------------------------------------------------------------------------ |
251 //------------------------------------------------------------------------------ |
258 // DraftsListView::createNewMessage |
252 // DraftsListView::createNewMessage |
259 // @see header |
253 // @see header |
271 // DraftsListView::openDraftMessage |
265 // DraftsListView::openDraftMessage |
272 // @see header |
266 // @see header |
273 //------------------------------------------------------------------------------ |
267 //------------------------------------------------------------------------------ |
274 void DraftsListView::openDraftMessage(const QModelIndex &index) |
268 void DraftsListView::openDraftMessage(const QModelIndex &index) |
275 { |
269 { |
|
270 if(mItemLongPressed) |
|
271 { |
|
272 //reset the flag |
|
273 mItemLongPressed = false; |
|
274 return; |
|
275 } |
276 QVariant msgId = index.data(ConvergedMsgId); |
276 QVariant msgId = index.data(ConvergedMsgId); |
277 QVariant msgType = index.data(MessageType); |
277 QVariant msgType = index.data(MessageType); |
278 ConvergedMessageId convergedMsgId = ConvergedMessageId(msgId.toInt()); |
278 ConvergedMessageId convergedMsgId = ConvergedMessageId(msgId.toInt()); |
279 ConvergedMessage message; |
279 ConvergedMessage message; |
280 message.setMessageType((ConvergedMessage::MessageType) msgType.toInt()); |
280 message.setMessageType((ConvergedMessage::MessageType) msgType.toInt()); |
297 // DraftsListView::handleLongPressed |
297 // DraftsListView::handleLongPressed |
298 // @see header |
298 // @see header |
299 //------------------------------------------------------------------------------ |
299 //------------------------------------------------------------------------------ |
300 void DraftsListView::handleLongPressed(HbAbstractViewItem *item, const QPointF &coords) |
300 void DraftsListView::handleLongPressed(HbAbstractViewItem *item, const QPointF &coords) |
301 { |
301 { |
|
302 mItemLongPressed = true; |
302 if (this->isVisible()) { |
303 if (this->isVisible()) { |
303 |
304 |
304 // Set the current index as tapped items index. |
305 // Set the current index as tapped items index. |
305 mListView->setCurrentIndex(item->modelIndex(), QItemSelectionModel::Select); |
306 mListView->setCurrentIndex(item->modelIndex(), QItemSelectionModel::Select); |
306 |
307 |
307 HbMenu *contextMenu = new HbMenu(); |
308 HbMenu *contextMenu = new HbMenu(); |
308 |
309 contextMenu->setAttribute(Qt::WA_DeleteOnClose); |
309 // Open |
310 // Open |
310 HbAction* openAction = contextMenu->addAction(LOC_COMMON_OPEN); |
311 HbAction* openAction = contextMenu->addAction(LOC_COMMON_OPEN); |
311 connect(openAction, SIGNAL(triggered()), this, SLOT(openDraftMessage())); |
312 connect(openAction, SIGNAL(triggered()), this, SLOT(openDraftMessage())); |
312 |
313 |
313 // Delete |
314 // Delete |
314 HbAction *deletAction = contextMenu->addAction(LOC_COMMON_DELETE); |
315 HbAction *deletAction = contextMenu->addAction(LOC_COMMON_DELETE); |
315 connect(deletAction, SIGNAL(triggered()), this, SLOT(deleteDraftMessage())); |
316 connect(deletAction, SIGNAL(triggered()), this, SLOT(deleteDraftMessage())); |
316 |
317 |
317 contextMenu->exec(coords); |
318 contextMenu->setPreferredPos(coords); |
318 delete contextMenu; |
319 contextMenu->show(); |
319 } |
320 } |
320 } |
321 } |
321 |
322 |
322 //------------------------------------------------------------------------------ |
323 //------------------------------------------------------------------------------ |
323 // DraftsListView::handleViewExtnActivated |
324 // DraftsListView::handleViewExtnActivated |
351 mainMenu->addAction(LOC_MENU_DELETE_ALL, this, SLOT(deleteAllDraftMessage())); |
352 mainMenu->addAction(LOC_MENU_DELETE_ALL, this, SLOT(deleteAllDraftMessage())); |
352 } |
353 } |
353 } |
354 } |
354 } |
355 } |
355 |
356 |
|
357 //------------------------------------------------------------------------------ |
|
358 // DraftsListView::onDialogDeleteMsg |
|
359 // @see header |
|
360 //------------------------------------------------------------------------------ |
|
361 void DraftsListView::onDialogDeleteMsg(HbAction* action) |
|
362 { |
|
363 HbMessageBox *dlg = qobject_cast<HbMessageBox*> (sender()); |
|
364 if (action == dlg->actions().at(0)) { |
|
365 QModelIndex index = mListView->currentIndex(); |
|
366 if (index.isValid()) { |
|
367 int msgId = index.data(ConvergedMsgId).toInt(); |
|
368 QList<int> msgIdList; |
|
369 msgIdList.append(msgId); |
|
370 ConversationsEngine::instance()->deleteMessages(msgIdList); |
|
371 } |
|
372 |
|
373 } |
|
374 } |
|
375 |
|
376 //------------------------------------------------------------------------------ |
|
377 // DraftsListView::onDialogDeleteMsg |
|
378 // @see header |
|
379 //------------------------------------------------------------------------------ |
|
380 void DraftsListView::onDialogDeleteAllMessages(HbAction* action) |
|
381 { |
|
382 HbMessageBox *dlg = qobject_cast<HbMessageBox*> (sender()); |
|
383 if (action == dlg->actions().at(0)) { |
|
384 ConversationsEngine::instance()->deleteAllDraftMessages(); |
|
385 } |
|
386 } |
|
387 |
356 // EOF |
388 // EOF |