bool Action::isScriptable(const Core::Context &context) const { if (context == m_context && m_scriptableMap.contains(m_action->action())) return m_scriptableMap.value(m_action->action()); for (int i = 0; i < context.size(); ++i) { if (QAction *a = m_contextActionMap.value(context.at(i), 0)) { if (m_scriptableMap.contains(a) && m_scriptableMap.value(a)) return true; } } return false; }
void Action::addOverrideAction(QAction *action, const Core::Context &context, bool scriptable) { if (Utils::HostOsInfo::isMacHost()) action->setIconVisibleInMenu(false); if (isEmpty()) m_action->initialize(action); if (context.isEmpty()) { m_contextActionMap.insert(0, action); } else { for (int i = 0; i < context.size(); ++i) { int k = context.at(i); if (m_contextActionMap.contains(k)) qWarning("%s", qPrintable(msgActionWarning(action, k, m_contextActionMap.value(k, 0)))); m_contextActionMap.insert(k, action); } } m_scriptableMap[action] = scriptable; setCurrentContext(m_context); }