forked from qt-creator/qt-creator
VCS: Improve submit message check
Do not show the "commit message is short" text while the user is still typing the first words. Therefore, make the initial timeout larger and restart the timer whenever the submit message changes. After the minimal subject length or a newline is entered, switch to faster evaluation. Change-Id: I41034ed2c8e71e81dae42685bc9ff310edca2543 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
committed by
André Hartmann
parent
f0a24c8093
commit
b4946da9ea
@@ -113,6 +113,7 @@ struct SubmitEditorWidgetPrivate
|
||||
QActionPushButton *m_submitButton = nullptr;
|
||||
QString m_description;
|
||||
QTimer delayedVerifyDescriptionTimer;
|
||||
int m_delayedVerifyDescriptionInterval = 2000;
|
||||
|
||||
int m_lineWidth = defaultLineWidth;
|
||||
int m_activatedRow = -1;
|
||||
@@ -154,7 +155,6 @@ SubmitEditorWidget::SubmitEditorWidget() :
|
||||
d->descriptionLayout->addWidget(d->description);
|
||||
|
||||
d->delayedVerifyDescriptionTimer.setSingleShot(true);
|
||||
d->delayedVerifyDescriptionTimer.setInterval(500);
|
||||
connect(&d->delayedVerifyDescriptionTimer, &QTimer::timeout,
|
||||
this, &SubmitEditorWidget::verifyDescription);
|
||||
|
||||
@@ -337,6 +337,12 @@ void SubmitEditorWidget::wrapDescription()
|
||||
}
|
||||
}
|
||||
|
||||
void VcsBase::SubmitEditorWidget::clearDescriptionHint()
|
||||
{
|
||||
d->descriptionHint->setText(QString());
|
||||
d->descriptionHint->setToolTip(QString());
|
||||
}
|
||||
|
||||
QString SubmitEditorWidget::descriptionText() const
|
||||
{
|
||||
return d->m_description;
|
||||
@@ -579,8 +585,7 @@ void SubmitEditorWidget::hideDescription()
|
||||
void SubmitEditorWidget::verifyDescription()
|
||||
{
|
||||
if (!isEnabled()) {
|
||||
d->descriptionHint->setText(QString());
|
||||
d->descriptionHint->setToolTip(QString());
|
||||
clearDescriptionHint();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -604,7 +609,6 @@ void SubmitEditorWidget::verifyDescription()
|
||||
subjectLength = descriptionLength;
|
||||
}
|
||||
|
||||
enum { MinSubjectLength = 20, MaxSubjectLength = 72, WarningSubjectLength = 55 };
|
||||
QStringList hints;
|
||||
if (0 < subjectLength && subjectLength < MinSubjectLength)
|
||||
hints.append(warning + Tr::tr("Warning: The commit subject is very short."));
|
||||
@@ -635,7 +639,17 @@ void SubmitEditorWidget::verifyDescription()
|
||||
void SubmitEditorWidget::descriptionTextChanged()
|
||||
{
|
||||
d->m_description = cleanupDescription(d->description->toPlainText());
|
||||
d->delayedVerifyDescriptionTimer.start();
|
||||
|
||||
if (d->m_description.isEmpty()) {
|
||||
d->m_delayedVerifyDescriptionInterval = 2000;
|
||||
clearDescriptionHint();
|
||||
} else if (d->m_description.length() > MinSubjectLength || d->m_description.contains("\n")) {
|
||||
d->m_delayedVerifyDescriptionInterval = 100;
|
||||
} else {
|
||||
d->m_delayedVerifyDescriptionInterval = 2000;
|
||||
}
|
||||
d->delayedVerifyDescriptionTimer.start(d->m_delayedVerifyDescriptionInterval);
|
||||
|
||||
wrapDescription();
|
||||
trimDescription();
|
||||
// append field entries
|
||||
|
||||
@@ -95,6 +95,8 @@ protected:
|
||||
void verifyDescription();
|
||||
|
||||
private:
|
||||
enum { MinSubjectLength = 20, MaxSubjectLength = 72, WarningSubjectLength = 55 };
|
||||
|
||||
void updateCheckAllComboBox();
|
||||
void checkAllToggled();
|
||||
|
||||
@@ -110,6 +112,7 @@ private:
|
||||
int checkedFilesCount() const;
|
||||
void wrapDescription();
|
||||
void trimDescription();
|
||||
void clearDescriptionHint();
|
||||
|
||||
SubmitEditorWidgetPrivate *d;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user