forked from qt-creator/qt-creator
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:
committed by
Orgad Shaneh
parent
aa33927651
commit
d63bfa4a29
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user