void ShaderParamsDialog::onGroupBoxContextMenuRequested(const QPoint&) { QGroupBox *groupBox = NULL; QPointer<QAction> action; QList<QAction*> actions; QScopedPointer<QAction> resetPassAction; QScopedPointer<QAction> resetAllPassesAction; QVariant passVariant; int pass = 0; bool ok = false; groupBox = qobject_cast<QGroupBox*>(sender()); if (!groupBox) return; passVariant = groupBox->property("pass"); if (!passVariant.isValid()) return; pass = passVariant.toInt(&ok); if (!ok) return; resetPassAction.reset(new QAction(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_RESET_PASS), 0)); resetAllPassesAction.reset(new QAction(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_RESET_ALL_PASSES), 0)); actions.append(resetPassAction.data()); actions.append(resetAllPassesAction.data()); action = QMenu::exec(actions, QCursor::pos(), NULL, groupBox); if (!action) return; if (action == resetPassAction.data()) { onShaderResetPass(pass); } else if (action == resetAllPassesAction.data()) { onShaderResetAllPasses(); } }