VCS: Discard commit if submit widget is disabled

Change-Id: I8f11f56565f46919e93a30f754465de3bc44437e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Orgad Shaneh
2014-06-22 12:55:14 +03:00
committed by Orgad Shaneh
parent bbdd0655bc
commit a6d8bbbb14
4 changed files with 9 additions and 15 deletions

View File

@@ -1077,16 +1077,12 @@ bool GitPlugin::submitEditorAboutToClose()
return true; return true;
// Prompt user. Force a prompt unless submit was actually invoked (that // Prompt user. Force a prompt unless submit was actually invoked (that
// is, the editor was closed or shutdown). // is, the editor was closed or shutdown).
VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer; bool promptData = false;
if (editor->forceClose()) { const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer
answer = VcsBase::VcsBaseSubmitEditor::SubmitDiscarded; = editor->promptSubmit(tr("Closing Git Editor"),
} else { tr("Do you want to commit the change?"),
bool promptData = false; tr("Git will not accept this commit. Do you want to continue to edit it?"),
answer = editor->promptSubmit(tr("Closing Git Editor"), &promptData, !m_submitActionTriggered, false);
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; m_submitActionTriggered = false;
switch (answer) { switch (answer) {
case VcsBase::VcsBaseSubmitEditor::SubmitCanceled: case VcsBase::VcsBaseSubmitEditor::SubmitCanceled:

View File

@@ -90,7 +90,6 @@ GitSubmitEditor::GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *p
m_model(0), m_model(0),
m_commitEncoding(0), m_commitEncoding(0),
m_commitType(SimpleCommit), m_commitType(SimpleCommit),
m_forceClose(false),
m_firstUpdate(true) m_firstUpdate(true)
{ {
connect(this, SIGNAL(diffSelectedFiles(QList<int>)), this, SLOT(slotDiffSelected(QList<int>))); connect(this, SIGNAL(diffSelectedFiles(QList<int>)), this, SLOT(slotDiffSelected(QList<int>)));
@@ -186,14 +185,12 @@ void GitSubmitEditor::updateFileModel()
QString errorMessage, commitTemplate; QString errorMessage, commitTemplate;
CommitData data(m_commitType); CommitData data(m_commitType);
if (client->getCommitData(m_workingDirectory, &commitTemplate, data, &errorMessage)) { if (client->getCommitData(m_workingDirectory, &commitTemplate, data, &errorMessage)) {
m_forceClose = false;
setCommitData(data); setCommitData(data);
submitEditorWidget()->refreshLog(m_workingDirectory); submitEditorWidget()->refreshLog(m_workingDirectory);
widget()->setEnabled(true); widget()->setEnabled(true);
} else { } else {
// Nothing to commit left! // Nothing to commit left!
VcsBase::VcsBaseOutputWindow::instance()->appendError(errorMessage); VcsBase::VcsBaseOutputWindow::instance()->appendError(errorMessage);
m_forceClose = true;
m_model->clear(); m_model->clear();
widget()->setEnabled(false); widget()->setEnabled(false);
} }

View File

@@ -53,7 +53,6 @@ public:
void setCommitData(const CommitData &); void setCommitData(const CommitData &);
GitSubmitEditorPanelData panelData() const; GitSubmitEditorPanelData panelData() const;
bool forceClose() { updateFileModel(); return m_forceClose; }
CommitType commitType() const { return m_commitType; } CommitType commitType() const { return m_commitType; }
QString amendSHA1() const; QString amendSHA1() const;
@@ -78,7 +77,6 @@ private:
QTextCodec *m_commitEncoding; QTextCodec *m_commitEncoding;
CommitType m_commitType; CommitType m_commitType;
QString m_amendSHA1; QString m_amendSHA1;
bool m_forceClose;
QString m_workingDirectory; QString m_workingDirectory;
bool m_firstUpdate; bool m_firstUpdate;
}; };

View File

@@ -547,6 +547,9 @@ VcsBaseSubmitEditor::PromptSubmitResult
Core::EditorManager::activateEditor(this, Core::EditorManager::IgnoreNavigationHistory); Core::EditorManager::activateEditor(this, Core::EditorManager::IgnoreNavigationHistory);
if (!submitWidget->isEnabled())
return SubmitDiscarded;
QString errorMessage; QString errorMessage;
QMessageBox::StandardButton answer = QMessageBox::Yes; QMessageBox::StandardButton answer = QMessageBox::Yes;