fix some issues including context menu's shortcut keys

- fix conflicting shortcuts
- rearrange the context menu
Yes, the function is triggered by shortcuts not the contextMenuEvent. The difference is that item_ will never be NULL value if it is triggered by contextMenuEvent.