diff --git a/src/plugins/qmldesigner/shortcutmanager.cpp b/src/plugins/qmldesigner/shortcutmanager.cpp index 157989ed200..e4eeb476225 100644 --- a/src/plugins/qmldesigner/shortcutmanager.cpp +++ b/src/plugins/qmldesigner/shortcutmanager.cpp @@ -330,16 +330,24 @@ void ShortCutManager::selectAll() void ShortCutManager::connectUndoActions(DesignDocument *designDocument) { if (designDocument) { - connect(designDocument, &DesignDocument::undoAvailable, this, &ShortCutManager::undoAvailable); - connect(designDocument, &DesignDocument::redoAvailable, this, &ShortCutManager::redoAvailable); + connect(designDocument, &DesignDocument::undoAvailable, this, + [this, designDocument](bool isAvailable) { + if (currentDesignDocument() == designDocument) + m_undoAction.setEnabled(isAvailable); + }); + connect(designDocument, &DesignDocument::redoAvailable, this, + [this, designDocument](bool isAvailable) { + if (currentDesignDocument() == designDocument) + m_redoAction.setEnabled(isAvailable); + }); } } void ShortCutManager::disconnectUndoActions(DesignDocument *designDocument) { if (designDocument) { - disconnect(designDocument, &DesignDocument::undoAvailable, this, &ShortCutManager::undoAvailable); - disconnect(designDocument, &DesignDocument::redoAvailable, this, &ShortCutManager::redoAvailable); + disconnect(designDocument, &DesignDocument::undoAvailable, this, nullptr); + disconnect(designDocument, &DesignDocument::redoAvailable, this, nullptr); } } @@ -354,24 +362,6 @@ void ShortCutManager::updateUndoActions(DesignDocument *designDocument) } } -void ShortCutManager::undoAvailable(bool isAvailable) -{ - auto documentController = qobject_cast(sender()); - if (currentDesignDocument() && - currentDesignDocument() == documentController) { - m_undoAction.setEnabled(isAvailable); - } -} - -void ShortCutManager::redoAvailable(bool isAvailable) -{ - auto documentController = qobject_cast(sender()); - if (currentDesignDocument() && - currentDesignDocument() == documentController) { - m_redoAction.setEnabled(isAvailable); - } -} - void ShortCutManager::goIntoComponent() { if (currentDesignDocument() diff --git a/src/plugins/qmldesigner/shortcutmanager.h b/src/plugins/qmldesigner/shortcutmanager.h index ee2c12e212a..70b019217ca 100644 --- a/src/plugins/qmldesigner/shortcutmanager.h +++ b/src/plugins/qmldesigner/shortcutmanager.h @@ -41,8 +41,6 @@ private: void duplicateSelected(); void paste(); void selectAll(); - void undoAvailable(bool isAvailable); - void redoAvailable(bool isAvailable); void goIntoComponent(); private: