#include "contextmenu.h"#include <QMouseEvent>#include <QDebug>ContextMenu::ContextMenu(QWidget *parent) :QMenu(parent),m_contextMenu(new QMenu(this)),m_delAct(new QAction(this)),m_actsList(new QList<QAction*>),m_subMenuActived(false){m_contextMenu->addAction(m_delAct);connect(m_contextMenu, SIGNAL(triggered(QAction*)), this, SLOT(removeCurrAct(QAction *)));}void ContextMenu::removeCurrAct(QAction *act){if(act == m_delAct){emit removeItem(m_curAct);}}void ContextMenu::addSubMenuActsFilter(QAction *act){m_actsList->append(act);}void ContextMenu::addSubMenuActsFilter(QList<QAction*> *actList){m_actsList->append(*actList);}void ContextMenu::clearSubMenuActsFilter(){m_actsList->clear();}void ContextMenu::mouseReleaseEvent(QMouseEvent *e){if(Qt::RightButton == e->button() && !m_subMenuActived){m_subMenuActived = true;m_curAct = this->activeAction();if(m_curAct){if(m_actsList->contains(m_curAct)){QString actText = m_curAct->text();m_delAct->setText(QString("Del %1").arg(actText));m_contextMenu->exec(QCursor::pos());}else{QMenu::mouseReleaseEvent(e);}}m_subMenuActived = false;}else{QMenu::mouseReleaseEvent(e);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。