VcsBase: Fix enabling git actions after rebase

Delay the state changed signal for proper evaluation
(a file check for `rebase-apply` is run when the
signal is emitted)

This fixes that Git "Rebasing" stayed in the title
bar when rebasing was long finished and therefore
the rebase actions stayed disabled.

TODO: The [REBASING] message in the projects view is
not fixed, it disappears when clicking the title bar.

Fixes: QTCREATORBUG-31815
Change-Id: Ic83949dfdaf26df3af8149457e3f282ff1bcefe5
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Andre Hartmann
2024-10-20 13:03:11 +02:00
committed by André Hartmann
parent 1ac403bacb
commit ce9826ae6e

View File

@@ -30,6 +30,7 @@
#include <QSharedData>
#include <QProcessEnvironment>
#include <QTextCodec>
#include <QTimer>
using namespace Core;
using namespace Utils;
@@ -308,8 +309,10 @@ void StateListener::slotStateChanged()
state.clearPatchFile(); // Need a repository to patch
qCDebug(stateLog).noquote() << "VC:" << (vc ? vc->displayName() : QString("None")) << state;
EditorManager::updateWindowTitles();
emit stateChanged(state, vc);
QTimer::singleShot(500, this, [this, state, vc] {
EditorManager::updateWindowTitles();
emit stateChanged(state, vc);
});
}
} // namespace Internal