forked from qt-creator/qt-creator
VCS: Simplify promptSubmit a bit more
+ fix regression for Git, which allowed to commit invalid commits.
Amends commit 9b61e484be
.
Change-Id: I7571863bb982bfae1aa040e08f8c68010b14b147
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
committed by
Orgad Shaneh
parent
54604b56db
commit
890b85d17e
@@ -252,6 +252,7 @@ public:
|
|||||||
void updateActions(VcsBasePluginPrivate::ActionState) override;
|
void updateActions(VcsBasePluginPrivate::ActionState) override;
|
||||||
bool submitEditorAboutToClose() override;
|
bool submitEditorAboutToClose() override;
|
||||||
void discardCommit() override { cleanCommitMessageFile(); }
|
void discardCommit() override { cleanCommitMessageFile(); }
|
||||||
|
bool canCommitOnFailure() const override { return false; }
|
||||||
|
|
||||||
void diffCurrentFile();
|
void diffCurrentFile();
|
||||||
void diffCurrentProject();
|
void diffCurrentProject();
|
||||||
|
@@ -529,8 +529,7 @@ void VcsBasePluginPrivate::slotSubmitEditorAboutToClose(VcsBaseSubmitEditor *sub
|
|||||||
<< "closing submit editor" << submitEditor
|
<< "closing submit editor" << submitEditor
|
||||||
<< (submitEditor ? submitEditor->document()->id().name() : QByteArray());
|
<< (submitEditor ? submitEditor->document()->id().name() : QByteArray());
|
||||||
if (submitEditor == m_submitEditor) {
|
if (submitEditor == m_submitEditor) {
|
||||||
const VcsBaseSubmitEditor::PromptSubmitResult response =
|
const VcsBaseSubmitEditor::PromptSubmitResult response = submitEditor->promptSubmit(this);
|
||||||
submitEditor->promptSubmit(this, !m_submitActionTriggered);
|
|
||||||
m_submitActionTriggered = false;
|
m_submitActionTriggered = false;
|
||||||
|
|
||||||
switch (response) {
|
switch (response) {
|
||||||
|
@@ -137,6 +137,8 @@ public:
|
|||||||
virtual QString commitDisplayName() const;
|
virtual QString commitDisplayName() const;
|
||||||
|
|
||||||
void commitFromEditor();
|
void commitFromEditor();
|
||||||
|
virtual bool canCommitOnFailure() const { return true; }
|
||||||
|
bool submitActionTriggered() const { return m_submitActionTriggered; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Prompt to save all files before commit:
|
// Prompt to save all files before commit:
|
||||||
|
@@ -495,10 +495,7 @@ static QString withUnusedMnemonic(QString string, const QList<QPushButton *> &ot
|
|||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
VcsBaseSubmitEditor::PromptSubmitResult
|
VcsBaseSubmitEditor::PromptSubmitResult VcsBaseSubmitEditor::promptSubmit(VcsBasePluginPrivate *plugin)
|
||||||
VcsBaseSubmitEditor::promptSubmit(VcsBasePluginPrivate *plugin,
|
|
||||||
bool prompt,
|
|
||||||
bool canCommitOnFailure)
|
|
||||||
{
|
{
|
||||||
auto submitWidget = static_cast<SubmitEditorWidget *>(this->widget());
|
auto submitWidget = static_cast<SubmitEditorWidget *>(this->widget());
|
||||||
|
|
||||||
@@ -512,6 +509,7 @@ VcsBaseSubmitEditor::PromptSubmitResult
|
|||||||
// Pop up a message depending on whether the check succeeded and the
|
// Pop up a message depending on whether the check succeeded and the
|
||||||
// user wants to be prompted
|
// user wants to be prompted
|
||||||
bool canCommit = checkSubmitMessage(&errorMessage) && submitWidget->canSubmit(&errorMessage);
|
bool canCommit = checkSubmitMessage(&errorMessage) && submitWidget->canSubmit(&errorMessage);
|
||||||
|
const bool prompt = !plugin->submitActionTriggered();
|
||||||
if (canCommit && !prompt)
|
if (canCommit && !prompt)
|
||||||
return SubmitConfirmed;
|
return SubmitConfirmed;
|
||||||
CheckableMessageBox mb(Core::ICore::dialogParent());
|
CheckableMessageBox mb(Core::ICore::dialogParent());
|
||||||
@@ -529,7 +527,7 @@ VcsBaseSubmitEditor::PromptSubmitResult
|
|||||||
}
|
}
|
||||||
mb.setText(message);
|
mb.setText(message);
|
||||||
QDialogButtonBox::StandardButtons buttons = QDialogButtonBox::Close | QDialogButtonBox::Cancel;
|
QDialogButtonBox::StandardButtons buttons = QDialogButtonBox::Close | QDialogButtonBox::Cancel;
|
||||||
if (canCommit || canCommitOnFailure)
|
if (canCommit || plugin->canCommitOnFailure())
|
||||||
buttons |= QDialogButtonBox::Ok;
|
buttons |= QDialogButtonBox::Ok;
|
||||||
mb.setStandardButtons(buttons);
|
mb.setStandardButtons(buttons);
|
||||||
QPushButton *cancelButton = mb.button(QDialogButtonBox::Cancel);
|
QPushButton *cancelButton = mb.button(QDialogButtonBox::Cancel);
|
||||||
|
@@ -54,9 +54,7 @@ public:
|
|||||||
// 'promptSetting' points to a bool variable containing the plugin's
|
// 'promptSetting' points to a bool variable containing the plugin's
|
||||||
// prompt setting. The user can uncheck it from the message box.
|
// prompt setting. The user can uncheck it from the message box.
|
||||||
enum PromptSubmitResult { SubmitConfirmed, SubmitCanceled, SubmitDiscarded };
|
enum PromptSubmitResult { SubmitConfirmed, SubmitCanceled, SubmitDiscarded };
|
||||||
PromptSubmitResult promptSubmit(VcsBasePluginPrivate *plugin,
|
PromptSubmitResult promptSubmit(VcsBasePluginPrivate *plugin);
|
||||||
bool prompt,
|
|
||||||
bool canCommitOnFailure = true);
|
|
||||||
|
|
||||||
QAbstractItemView::SelectionMode fileListSelectionMode() const;
|
QAbstractItemView::SelectionMode fileListSelectionMode() const;
|
||||||
void setFileListSelectionMode(QAbstractItemView::SelectionMode sm);
|
void setFileListSelectionMode(QAbstractItemView::SelectionMode sm);
|
||||||
|
Reference in New Issue
Block a user