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;
if (editor->forceClose()) {
answer = VcsBase::VcsBaseSubmitEditor::SubmitDiscarded;
} else {
bool promptData = false; bool promptData = false;
answer = editor->promptSubmit(tr("Closing Git Editor"), const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer
= editor->promptSubmit(tr("Closing Git Editor"),
tr("Do you want to commit the change?"), tr("Do you want to commit the change?"),
tr("Git will not accept this commit. Do you want to continue to edit it?"), tr("Git will not accept this commit. Do you want to continue to edit it?"),
&promptData, !m_submitActionTriggered, false); &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;