void Menu::mouseReleaseEvent(QMouseEvent *event) { QAction *action = actionAt(event->pos()); if (action && action->data().type() == QVariant::ULongLong) { TaskManager::TaskPtr taskPointer = TaskManager::TaskManager::self()->findTask(action->data().toULongLong()); if (taskPointer) { TaskManager::GroupManager *groupManager = new TaskManager::GroupManager(this); Task *task = new Task(new TaskManager::TaskItem(groupManager, taskPointer), groupManager); if (event->button() == Qt::LeftButton) { task->activate(); } else if (event->button() == Qt::MidButton) { task->close(); } delete task; delete groupManager; } } KMenu::mouseReleaseEvent(event); }