calendarui/views/src/calendayviewwidget.cpp
changeset 26 a949c2543c15
parent 23 fd30d51f876b
child 32 ea672fcb0ea0
--- a/calendarui/views/src/calendayviewwidget.cpp	Mon May 03 12:30:32 2010 +0300
+++ b/calendarui/views/src/calendayviewwidget.cpp	Fri May 14 15:51:09 2010 +0300
@@ -67,7 +67,8 @@
                                        CalenDocLoader *docLoader) :
 mServices(services),
 mDocLoader(docLoader),
-mRegionalInfoGroupBox(NULL)
+mRegionalInfoGroupBox(NULL),
+mLongTapEventFlag(false)
 {
     // Construct the list view prototype
     mListViewPrototype = new CalenEventListViewItem(this);
@@ -954,6 +955,7 @@
 void CalenDayViewWidget::itemLongPressed(HbAbstractViewItem* listViewItem,
                                          const QPointF& coords)
 {
+	mLongTapEventFlag = true;
     // Update the selection index first
     mSelectedIndex = listViewItem->modelIndex().row();
     
@@ -968,29 +970,34 @@
     HbMenu *contextMenu = new HbMenu();
     
     // Add the open option
-    HbAction *openAction = contextMenu->addAction(hbTrId("txt_common_menu_open"));
-    connect(openAction, SIGNAL(triggered()), this, SLOT(viewEntry()));
+    HbAction *openAction = contextMenu->addAction(
+									hbTrId("txt_common_menu_open"));
     
     // Check the type of event
     if (AgendaEntry::TypeTodo == entry.type()) {
         // Add an option to mark the note as complete
-        HbAction *completeAction = contextMenu->addAction(hbTrId("txt_calendar_menu_mark_as_done"));
-        connect(completeAction, SIGNAL(triggered()), this, SLOT(markAsDone()));
+        HbAction *completeAction = contextMenu->addAction(
+									hbTrId("txt_calendar_menu_mark_as_done"));
     }
     
     // Add the edit option
-    HbAction *editAction = contextMenu->addAction(hbTrId("txt_common_menu_edit"));
-    connect(editAction, SIGNAL(triggered()), this, SLOT(editEntry()));
+    HbAction *editAction = contextMenu->addAction(
+									hbTrId("txt_common_menu_edit"));
     
     // Add the delete option
-    HbAction *deleteAction = contextMenu->addAction(hbTrId("txt_common_menu_delete"));
-    connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteEntry()));
+    HbAction *deleteAction = contextMenu->addAction(
+									hbTrId("txt_common_menu_delete"));
     
     contextMenu->setDismissPolicy(HbMenu::TapAnywhere);
 
     // Show context sensitive menu. 
     // Param const QPointF& coordinate - is a longpress position.
-    contextMenu->exec(coords);
+    contextMenu->setPreferredPos(coords);
+    connect(contextMenu, SIGNAL(aboutToClose()),
+								this, 
+								SLOT(contextMenuClosed()));
+    
+    contextMenu->open(this, SLOT(contextManuTriggered(HbAction *)));
 }
 
 // ----------------------------------------------------------------------------
@@ -1007,9 +1014,10 @@
     if (mSelectedIndex < 0 || mSelectedIndex > mInstanceArray.count()) {
         return;
     }
-    
+    if( !mLongTapEventFlag ) {
     // Open the event for viewing
     viewEntry();
+    }
 }
 
 // ----------------------------------------------------------------------------
@@ -1051,4 +1059,42 @@
     mView->refreshViewOnGoToDate();
 }
 
+// ----------------------------------------------------------------------------
+// CalenDayViewWidget::contextMenuClosed
+// Rest of the details are commented in the header
+// ----------------------------------------------------------------------------
+//
+void CalenDayViewWidget::contextMenuClosed()
+{
+	mLongTapEventFlag = false;
+}
+
+// ----------------------------------------------------------------------------
+// CalenDayViewWidget::contextManuTriggered
+// Rest of the details are commented in the header
+// ----------------------------------------------------------------------------
+//
+void CalenDayViewWidget::contextManuTriggered(HbAction *action)
+{
+	if (action->text() == hbTrId("txt_common_menu_open")) {
+		viewEntry();
+	} else if (action->text() == hbTrId("txt_calendar_menu_mark_as_done")) {
+		markAsDone();
+	} else if (action->text() == hbTrId("txt_common_menu_edit")) {
+		editEntry();
+	} else {
+		if (action->text() == hbTrId("txt_common_menu_delete")) {
+			deleteEntry();
+		}
+	}
+}
+// ----------------------------------------------------------------------------
+// CalenDayViewWidget::clearListModel
+// clears the list model 
+// ----------------------------------------------------------------------------
+// 
+void CalenDayViewWidget::clearListModel()
+    {
+    mListModel->clear();
+    }
 // End of file	--Don't remove this.