forked from qt-creator/qt-creator
Git: Close submit editor if all changes were committed externally
Change-Id: Iae4e9d52aed333def0e5f0c56bca9c68a38430a4 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
e4e43352a8
commit
e427eab068
@@ -916,11 +916,15 @@ bool GitPlugin::submitEditorAboutToClose(VcsBase::VcsBaseSubmitEditor *submitEdi
|
||||
// Prompt user. Force a prompt unless submit was actually invoked (that
|
||||
// is, the editor was closed or shutdown).
|
||||
bool *promptData = m_settings.boolPointer(GitSettings::promptOnSubmitKey);
|
||||
const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer =
|
||||
editor->promptSubmit(tr("Closing Git Editor"),
|
||||
tr("Do you want to commit the change?"),
|
||||
tr("Git will not accept this commit. Do you want to continue to edit it?"),
|
||||
promptData, !m_submitActionTriggered, false);
|
||||
VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer;
|
||||
if (editor->forceClose()) {
|
||||
answer = VcsBase::VcsBaseSubmitEditor::SubmitDiscarded;
|
||||
} else {
|
||||
answer = editor->promptSubmit(tr("Closing Git Editor"),
|
||||
tr("Do you want to commit the change?"),
|
||||
tr("Git will not accept this commit. Do you want to continue to edit it?"),
|
||||
promptData, !m_submitActionTriggered, false);
|
||||
}
|
||||
m_submitActionTriggered = false;
|
||||
switch (answer) {
|
||||
case VcsBase::VcsBaseSubmitEditor::SubmitCanceled:
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "gitsubmiteditor.h"
|
||||
#include "gitsubmiteditorwidget.h"
|
||||
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <vcsbase/submitfilemodel.h>
|
||||
#include <vcsbase/vcsbaseoutputwindow.h>
|
||||
@@ -85,7 +86,8 @@ private:
|
||||
GitSubmitEditor::GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters, QWidget *parent) :
|
||||
VcsBaseSubmitEditor(parameters, new GitSubmitEditorWidget(parent)),
|
||||
m_model(0),
|
||||
m_amend(false)
|
||||
m_amend(false),
|
||||
m_forceClose(false)
|
||||
{
|
||||
connect(this, SIGNAL(diffSelectedFiles(QList<int>)), this, SLOT(slotDiffSelected(QList<int>)));
|
||||
}
|
||||
@@ -162,10 +164,13 @@ void GitSubmitEditor::updateFileModel()
|
||||
GitClient *client = GitPlugin::instance()->gitClient();
|
||||
QString errorMessage, commitTemplate;
|
||||
CommitData data;
|
||||
if (client->getCommitData(m_workingDirectory, m_amend, &commitTemplate, &data, &errorMessage))
|
||||
if (client->getCommitData(m_workingDirectory, m_amend, &commitTemplate, &data, &errorMessage)) {
|
||||
setCommitData(data);
|
||||
else
|
||||
} else {
|
||||
VcsBase::VcsBaseOutputWindow::instance()->append(errorMessage);
|
||||
m_forceClose = true;
|
||||
Core::EditorManager::instance()->closeEditors(QList<IEditor*>() << this);
|
||||
}
|
||||
}
|
||||
|
||||
GitSubmitEditorPanelData GitSubmitEditor::panelData() const
|
||||
|
||||
@@ -54,6 +54,7 @@ public:
|
||||
void setCommitData(const CommitData &);
|
||||
void setAmend(bool amend);
|
||||
GitSubmitEditorPanelData panelData() const;
|
||||
bool forceClose() const { return m_forceClose; }
|
||||
|
||||
signals:
|
||||
void diff(const QStringList &unstagedFiles, const QStringList &stagedFiles);
|
||||
@@ -72,6 +73,7 @@ private:
|
||||
VcsBase::SubmitFileModel *m_model;
|
||||
QString m_commitEncoding;
|
||||
bool m_amend;
|
||||
bool m_forceClose;
|
||||
QString m_workingDirectory;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user