From 1593f869ed0bc9e8341a62239800b00ad84cb669 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Fri, 21 Oct 2022 15:41:08 +0300 Subject: [PATCH] VCS: Remove "Commit" option when closing commit editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: QTCREATORBUG-22233 Change-Id: I1270cc58a823b919475fc51ac5fc71b892b379b6 Reviewed-by: André Hartmann --- src/plugins/git/gitplugin.cpp | 1 - src/plugins/vcsbase/vcsbaseplugin.h | 1 - src/plugins/vcsbase/vcsbasesubmiteditor.cpp | 35 ++------------------- 3 files changed, 3 insertions(+), 34 deletions(-) diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 47217a0728a..e269dc386ee 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -252,7 +252,6 @@ public: void updateActions(VcsBasePluginPrivate::ActionState) override; bool submitEditorAboutToClose() override; void discardCommit() override { cleanCommitMessageFile(); } - bool canCommitOnFailure() const override { return false; } void diffCurrentFile(); void diffCurrentProject(); diff --git a/src/plugins/vcsbase/vcsbaseplugin.h b/src/plugins/vcsbase/vcsbaseplugin.h index d29689fe883..602444416ca 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.h +++ b/src/plugins/vcsbase/vcsbaseplugin.h @@ -137,7 +137,6 @@ public: virtual QString commitDisplayName() const; void commitFromEditor(); - virtual bool canCommitOnFailure() const { return true; } bool submitActionTriggered() const { return m_submitActionTriggered; } protected: diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index 3d03ac63b2b..1ed7a489e04 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -478,22 +478,6 @@ void VcsBaseSubmitEditor::setDescriptionMandatory(bool v) enum { checkDialogMinimumWidth = 500 }; -static QString withUnusedMnemonic(QString string, const QList &otherButtons) -{ - QSet mnemonics; - for (QAbstractButton *button : otherButtons) { - const QString text = button->text(); - const int ampersandPos = text.indexOf('&'); - if (ampersandPos >= 0 && ampersandPos < text.size() - 1) - mnemonics.insert(text.at(ampersandPos + 1)); - } - for (int i = 0, total = string.length(); i < total; ++i) { - if (!mnemonics.contains(string.at(i))) - return string.insert(i, '&'); - } - return string; -} - VcsBaseSubmitEditor::PromptSubmitResult VcsBaseSubmitEditor::promptSubmit(VcsBasePluginPrivate *plugin) { auto submitWidget = static_cast(this->widget()); @@ -525,28 +509,15 @@ VcsBaseSubmitEditor::PromptSubmitResult VcsBaseSubmitEditor::promptSubmit(VcsBas errorMessage.isEmpty() ? errorMessage : ": " + errorMessage); } mb.setText(message); - QMessageBox::StandardButtons buttons = QMessageBox::Close | QMessageBox::Cancel; - if (canCommit || plugin->canCommitOnFailure()) - buttons |= QMessageBox::Ok; - mb.setStandardButtons(buttons); - QAbstractButton *cancelButton = mb.button(QMessageBox::Cancel); + mb.setStandardButtons(QMessageBox::Close | QMessageBox::Cancel); // On Windows there is no mnemonic for Close. Set it explicitly. mb.button(QMessageBox::Close)->setText(tr("&Close")); - cancelButton->setText(tr("&Keep Editing")); + mb.button(QMessageBox::Cancel)->setText(tr("&Keep Editing")); // prompt is true when the editor is closed, and false when triggered by the submit action if (prompt) mb.setDefaultButton(QMessageBox::Cancel); - if (QAbstractButton *commitButton = mb.button(QMessageBox::Ok)) { - commitButton->setText(withUnusedMnemonic(commitName, - {cancelButton, mb.button(QMessageBox::Close)})); - } mb.exec(); - QAbstractButton *chosen = mb.clickedButton(); - if (!chosen || chosen == cancelButton) - return SubmitCanceled; - if (chosen == mb.button(QMessageBox::Close)) - return SubmitDiscarded; - return SubmitConfirmed; + return mb.result() == QMessageBox::Close ? SubmitDiscarded : SubmitCanceled; } QString VcsBaseSubmitEditor::promptForNickName()