VCS: Simplify submit editor accept/close flow

* Replace message box with an error on the output pane.
* Separate logic for accept and close.

Change-Id: Ib9fa201a1a67ee195086f7a22bc6678a9642452a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
Orgad Shaneh
2022-10-22 22:16:44 +03:00
committed by Orgad Shaneh
parent aa33927651
commit d63bfa4a29
11 changed files with 61 additions and 89 deletions

View File

@@ -503,7 +503,13 @@ VcsBasePluginPrivate::VcsBasePluginPrivate(const Context &context)
{
Internal::VcsPlugin *plugin = Internal::VcsPlugin::instance();
connect(plugin, &Internal::VcsPlugin::submitEditorAboutToClose,
this, &VcsBasePluginPrivate::slotSubmitEditorAboutToClose);
this, [this](VcsBaseSubmitEditor *submitEditor, bool *result) {
if (submitEditor == m_submitEditor) {
*result = submitEditor->promptSubmit(this);
if (*result)
discardCommit();
}
});
// First time: create new listener
if (!m_listener)
m_listener = new Internal::StateListener(plugin);
@@ -522,31 +528,6 @@ void VcsBasePluginPrivate::extensionsInitialized()
m_listener->slotStateChanged();
}
void VcsBasePluginPrivate::slotSubmitEditorAboutToClose(VcsBaseSubmitEditor *submitEditor, bool *result)
{
qCDebug(baseLog) << this << "plugin's submit editor" << m_submitEditor
<< (m_submitEditor ? m_submitEditor->document()->id().name() : QByteArray())
<< "closing submit editor" << submitEditor
<< (submitEditor ? submitEditor->document()->id().name() : QByteArray());
if (submitEditor == m_submitEditor) {
const VcsBaseSubmitEditor::PromptSubmitResult response = submitEditor->promptSubmit(this);
m_submitActionTriggered = false;
switch (response) {
case VcsBaseSubmitEditor::SubmitCanceled:
*result = false;
break;
case VcsBaseSubmitEditor::SubmitDiscarded:
discardCommit();
*result = true;
break;
default:
*result = submitEditorAboutToClose();
break;
}
}
}
void VcsBasePluginPrivate::slotStateChanged(const Internal::State &newInternalState, Core::IVersionControl *vc)
{
if (vc == this) {
@@ -614,10 +595,8 @@ QString VcsBasePluginPrivate::commitDisplayName() const
void VcsBasePluginPrivate::commitFromEditor()
{
// Close the submit editor
m_submitActionTriggered = true;
QTC_ASSERT(m_submitEditor, return);
EditorManager::closeDocuments({m_submitEditor->document()});
m_submitEditor->accept(this);
}
bool VcsBasePluginPrivate::promptBeforeCommit()