VCS: Deduplicate some submit editor closing logic

Change-Id: I622f5703c222a48606fcca3b99e87f9398e6a815
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
Orgad Shaneh
2022-10-16 05:58:20 +03:00
committed by Orgad Shaneh
parent eaad78547c
commit 9b61e484be
9 changed files with 39 additions and 167 deletions

View File

@@ -528,8 +528,24 @@ void VcsBasePluginPrivate::slotSubmitEditorAboutToClose(VcsBaseSubmitEditor *sub
<< (m_submitEditor ? m_submitEditor->document()->id().name() : QByteArray())
<< "closing submit editor" << submitEditor
<< (submitEditor ? submitEditor->document()->id().name() : QByteArray());
if (submitEditor == m_submitEditor)
*result = submitEditorAboutToClose();
if (submitEditor == m_submitEditor) {
const VcsBaseSubmitEditor::PromptSubmitResult response =
submitEditor->promptSubmit(this, !m_submitActionTriggered);
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)
@@ -597,6 +613,14 @@ QString VcsBasePluginPrivate::commitDisplayName() const
return tr("Commit", "name of \"commit\" action of the VCS.");
}
void VcsBasePluginPrivate::commitFromEditor()
{
// Close the submit editor
m_submitActionTriggered = true;
QTC_ASSERT(m_submitEditor, return);
EditorManager::closeDocuments({m_submitEditor->document()});
}
bool VcsBasePluginPrivate::promptBeforeCommit()
{
return DocumentManager::saveAllModifiedDocuments(tr("Save before %1?")
@@ -677,6 +701,10 @@ bool VcsBasePluginPrivate::raiseSubmitEditor() const
return true;
}
void VcsBasePluginPrivate::discardCommit()
{
}
// Find top level for version controls like git/Mercurial that have
// a directory at the top of the repository.
// Note that checking for the existence of files is preferred over directories