From b7efb22aa9f28f2c4dddf155fac9dd1b35a9a785 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Mon, 16 Jan 2023 10:46:18 +0900 Subject: [PATCH] Git: improve "The commit subject is very short." - Hide it when commit subject is empty (initial state) - Delay the check 500ms for commiter to focus writing commit message Change-Id: Ia111bb01d2819750e053e06875d529a14d1ac07d Reviewed-by: Orgad Shaneh --- src/plugins/vcsbase/submiteditorwidget.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/vcsbase/submiteditorwidget.cpp b/src/plugins/vcsbase/submiteditorwidget.cpp index 62474b8ac65..b93e2090928 100644 --- a/src/plugins/vcsbase/submiteditorwidget.cpp +++ b/src/plugins/vcsbase/submiteditorwidget.cpp @@ -107,6 +107,7 @@ struct SubmitEditorWidgetPrivate QShortcut *m_submitShortcut = nullptr; QActionPushButton *m_submitButton = nullptr; QString m_description; + QTimer delayedVerifyDescriptionTimer; int m_lineWidth = defaultLineWidth; int m_activatedRow = -1; @@ -149,6 +150,11 @@ SubmitEditorWidget::SubmitEditorWidget() : d->descriptionLayout->addWidget(d->description); + d->delayedVerifyDescriptionTimer.setSingleShot(true); + d->delayedVerifyDescriptionTimer.setInterval(500); + connect(&d->delayedVerifyDescriptionTimer, &QTimer::timeout, + this, &SubmitEditorWidget::verifyDescription); + auto groupBox = new QGroupBox(tr("F&iles")); groupBox->setObjectName("groupBox"); groupBox->setFlat(true); @@ -589,7 +595,7 @@ void SubmitEditorWidget::verifyDescription() enum { MinSubjectLength = 20, MaxSubjectLength = 72, WarningSubjectLength = 55 }; QStringList hints; - if (subjectLength < MinSubjectLength) + if (0 < subjectLength && subjectLength < MinSubjectLength) hints.append(warning + tr("Warning: The commit subject is very short.")); if (subjectLength > MaxSubjectLength) @@ -617,7 +623,7 @@ void SubmitEditorWidget::verifyDescription() void SubmitEditorWidget::descriptionTextChanged() { d->m_description = cleanupDescription(d->description->toPlainText()); - verifyDescription(); + d->delayedVerifyDescriptionTimer.start(); wrapDescription(); trimDescription(); // append field entries