void ToolTipActionShortcut::setShortcutWrapper(const QString& actionID, const QKeySequence& shortcut) { for (std::size_t i = 0; i < _shortcuts.size(); ++i) { if (_shortcuts[i].first == actionID) { _shortcuts[i].second = shortcut; } } setToolTipFromOriginalToolTip(); }
ToolTipActionShortcut::ToolTipActionShortcut(const std::string & group, const std::list<std::string> & actionIDs, const std::string & toolip, QWidget* parent) : ActionWithShortcut(group, actionIDs, std::string(), parent, false) , _widget(parent) , _originalToolTip( QString::fromUtf8( toolip.c_str() ) ) , _tooltipSetInternally(false) { assert(parent); setToolTipFromOriginalToolTip(); _widget->installEventFilter(this); }
void ToolTipActionShortcut::onShortcutChanged(const std::string& actionID, Key symbol, const KeyboardModifiers& modifiers) { QKeySequence seq = makeKeySequence(QtEnumConvert::toQtModifiers(modifiers), QtEnumConvert::toQtKey(symbol)); for (std::size_t i = 0; i < _shortcuts.size(); ++i) { if (_shortcuts[i].first.toStdString() == actionID) { _shortcuts[i].second = seq; } } setToolTipFromOriginalToolTip(); }
bool ToolTipActionShortcut::eventFilter(QObject* watched, QEvent* event) { if (watched != _widget) { return false; } if (event->type() == QEvent::ToolTipChange) { if (_tooltipSetInternally) { return false; } _originalToolTip = _widget->toolTip(); setToolTipFromOriginalToolTip(); } return false; }