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;
|
||||
bool submitEditorAboutToClose() override;
|
||||
void discardCommit() override { cleanCommitMessageFile(); }
|
||||
bool canCommitOnFailure() const override { return false; }
|
||||
|
||||
void diffCurrentFile();
|
||||
void diffCurrentProject();
|
||||
|
@@ -529,8 +529,7 @@ void VcsBasePluginPrivate::slotSubmitEditorAboutToClose(VcsBaseSubmitEditor *sub
|
||||
<< "closing submit editor" << submitEditor
|
||||
<< (submitEditor ? submitEditor->document()->id().name() : QByteArray());
|
||||
if (submitEditor == m_submitEditor) {
|
||||
const VcsBaseSubmitEditor::PromptSubmitResult response =
|
||||
submitEditor->promptSubmit(this, !m_submitActionTriggered);
|
||||
const VcsBaseSubmitEditor::PromptSubmitResult response = submitEditor->promptSubmit(this);
|
||||
m_submitActionTriggered = false;
|
||||
|
||||
switch (response) {
|
||||
|
@@ -137,6 +137,8 @@ public:
|
||||
virtual QString commitDisplayName() const;
|
||||
|
||||
void commitFromEditor();
|
||||
virtual bool canCommitOnFailure() const { return true; }
|
||||
bool submitActionTriggered() const { return m_submitActionTriggered; }
|
||||
|
||||
protected:
|
||||
// Prompt to save all files before commit:
|
||||
|
@@ -495,10 +495,7 @@ static QString withUnusedMnemonic(QString string, const QList<QPushButton *> &ot
|
||||
return string;
|
||||
}
|
||||
|
||||
VcsBaseSubmitEditor::PromptSubmitResult
|
||||
VcsBaseSubmitEditor::promptSubmit(VcsBasePluginPrivate *plugin,
|
||||
bool prompt,
|
||||
bool canCommitOnFailure)
|
||||
VcsBaseSubmitEditor::PromptSubmitResult VcsBaseSubmitEditor::promptSubmit(VcsBasePluginPrivate *plugin)
|
||||
{
|
||||
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
|
||||
// user wants to be prompted
|
||||
bool canCommit = checkSubmitMessage(&errorMessage) && submitWidget->canSubmit(&errorMessage);
|
||||
const bool prompt = !plugin->submitActionTriggered();
|
||||
if (canCommit && !prompt)
|
||||
return SubmitConfirmed;
|
||||
CheckableMessageBox mb(Core::ICore::dialogParent());
|
||||
@@ -529,7 +527,7 @@ VcsBaseSubmitEditor::PromptSubmitResult
|
||||
}
|
||||
mb.setText(message);
|
||||
QDialogButtonBox::StandardButtons buttons = QDialogButtonBox::Close | QDialogButtonBox::Cancel;
|
||||
if (canCommit || canCommitOnFailure)
|
||||
if (canCommit || plugin->canCommitOnFailure())
|
||||
buttons |= QDialogButtonBox::Ok;
|
||||
mb.setStandardButtons(buttons);
|
||||
QPushButton *cancelButton = mb.button(QDialogButtonBox::Cancel);
|
||||
|
@@ -54,9 +54,7 @@ public:
|
||||
// 'promptSetting' points to a bool variable containing the plugin's
|
||||
// prompt setting. The user can uncheck it from the message box.
|
||||
enum PromptSubmitResult { SubmitConfirmed, SubmitCanceled, SubmitDiscarded };
|
||||
PromptSubmitResult promptSubmit(VcsBasePluginPrivate *plugin,
|
||||
bool prompt,
|
||||
bool canCommitOnFailure = true);
|
||||
PromptSubmitResult promptSubmit(VcsBasePluginPrivate *plugin);
|
||||
|
||||
QAbstractItemView::SelectionMode fileListSelectionMode() const;
|
||||
void setFileListSelectionMode(QAbstractItemView::SelectionMode sm);
|
||||
|
Reference in New Issue
Block a user