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 <orgads@gmail.com>
This commit is contained in:
Tasuku Suzuki
2023-01-16 10:46:18 +09:00
parent 7ecc507b75
commit b7efb22aa9

View File

@@ -107,6 +107,7 @@ struct SubmitEditorWidgetPrivate
QShortcut *m_submitShortcut = nullptr; QShortcut *m_submitShortcut = nullptr;
QActionPushButton *m_submitButton = nullptr; QActionPushButton *m_submitButton = nullptr;
QString m_description; QString m_description;
QTimer delayedVerifyDescriptionTimer;
int m_lineWidth = defaultLineWidth; int m_lineWidth = defaultLineWidth;
int m_activatedRow = -1; int m_activatedRow = -1;
@@ -149,6 +150,11 @@ SubmitEditorWidget::SubmitEditorWidget() :
d->descriptionLayout->addWidget(d->description); 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")); auto groupBox = new QGroupBox(tr("F&iles"));
groupBox->setObjectName("groupBox"); groupBox->setObjectName("groupBox");
groupBox->setFlat(true); groupBox->setFlat(true);
@@ -589,7 +595,7 @@ void SubmitEditorWidget::verifyDescription()
enum { MinSubjectLength = 20, MaxSubjectLength = 72, WarningSubjectLength = 55 }; enum { MinSubjectLength = 20, MaxSubjectLength = 72, WarningSubjectLength = 55 };
QStringList hints; QStringList hints;
if (subjectLength < MinSubjectLength) if (0 < subjectLength && subjectLength < MinSubjectLength)
hints.append(warning + tr("Warning: The commit subject is very short.")); hints.append(warning + tr("Warning: The commit subject is very short."));
if (subjectLength > MaxSubjectLength) if (subjectLength > MaxSubjectLength)
@@ -617,7 +623,7 @@ void SubmitEditorWidget::verifyDescription()
void SubmitEditorWidget::descriptionTextChanged() void SubmitEditorWidget::descriptionTextChanged()
{ {
d->m_description = cleanupDescription(d->description->toPlainText()); d->m_description = cleanupDescription(d->description->toPlainText());
verifyDescription(); d->delayedVerifyDescriptionTimer.start();
wrapDescription(); wrapDescription();
trimDescription(); trimDescription();
// append field entries // append field entries