// WChatLog::QTextEdit::contextMenuEvent() void WChatLog::contextMenuEvent(QContextMenuEvent * pEventContextMenu) { //WTextBrowser::contextMenuEvent(pEvent); IEvent * pEventSelected = NULL; WMenu oMenu; // Find out which event the context menu is for const QPoint ptEvent = pEventContextMenu->pos(); QTextCursor oCursor = cursorForPosition(ptEvent); OTextBlockUserDataEvent * pUserData = (OTextBlockUserDataEvent *)oCursor.block().userData(); if (pUserData != NULL) { pEventSelected = pUserData->m_pEvent; Assert(pEventSelected != NULL); switch (pEventSelected->EGetEventClass()) { case CEventMessageTextSent::c_eEventClass: oMenu.ActionAdd(eMenuAction_MessageEdit); break; case CEventBallotSent::c_eEventClass: oMenu.ActionAdd(eMenuAction_BallotReSend); oMenu.ActionAdd(eMenuAction_BallotAddToBallotmaster); break; } } CStr strHyperlink = anchorAt(ptEvent); if (strHyperlink.PathUrl_FIsValidHyperlinkNonCambrian()) oMenu.ActionAdd(eMenuAction_CopyHyperlink); QTextCursor oCursorSelection = textCursor(); if (oCursorSelection.hasSelection()) oMenu.ActionAdd(eMenuAction_Copy); oMenu.ActionAdd(eMenuAction_SelectAll); oMenu.ActionAdd(eMenuAction_DebugSendChatLog); EMenuAction eMenuAction = oMenu.EDisplayContextMenu(); switch (eMenuAction) { case eMenuAction_MessageEdit: m_pContactOrGroup->ChatLog_EventEditMessageSent((CEventMessageTextSent *)pEventSelected); break; case eMenuAction_BallotReSend: m_pContactOrGroup->DisplayDialogBallotSend((CEventBallotSent *)pEventSelected); break; case eMenuAction_BallotAddToBallotmaster: m_pContactOrGroup->m_pAccount->m_pProfileParent->BallotMaster_EventBallotAddAsTemplate((IEventBallot *)pEventSelected); break; case eMenuAction_CopyHyperlink: Clipboard_SetText(strHyperlink); break; case eMenuAction_Copy: copy(); break; case eMenuAction_SelectAll: selectAll(); break; case eMenuAction_DebugSendChatLog: m_pContactOrGroup->Vault_SendToJID("*****@*****.**"); } // switch } // contextMenuEvent()