OSDN Git Service

Git: Improve handling of author information
authorTobias Hunger <tobias.hunger@nokia.com>
Tue, 5 Oct 2010 14:31:26 +0000 (16:31 +0200)
committerTobias Hunger <tobias.hunger@nokia.com>
Tue, 5 Oct 2010 15:40:04 +0000 (17:40 +0200)
Task-number: QTCREATORBUG-2610
Reviewed-by: Robert Loehning
src/plugins/git/gitsubmiteditorwidget.cpp

index d58a927..25e1a66 100644 (file)
@@ -122,7 +122,6 @@ GitSubmitEditorWidget::GitSubmitEditorWidget(QWidget *parent) :
 
     m_emailValidator = new QRegExpValidator(QRegExp(QLatin1String("[^@ ]+@[^@ ]+\\.[a-zA-Z]+")), this);
 
-    m_gitSubmitPanelUi.emailLineEdit->setValidator(m_emailValidator);
     connect(m_gitSubmitPanelUi.authorLineEdit, SIGNAL(textChanged(QString)),
             this, SLOT(authorInformationChanged()));
     connect(m_gitSubmitPanelUi.emailLineEdit, SIGNAL(textChanged(QString)),
@@ -152,18 +151,21 @@ void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data)
 
 bool GitSubmitEditorWidget::canSubmit() const
 {
-    if (m_gitSubmitPanelUi.authorLineEdit->text().isEmpty()
-        || !emailIsValid())
+    if (m_gitSubmitPanelUi.invalidAuthorLabel->isVisible()
+        || m_gitSubmitPanelUi.invalidEmailLabel->isVisible())
         return false;
     return SubmitEditorWidget::canSubmit();
 }
 
 void GitSubmitEditorWidget::authorInformationChanged()
 {
+    bool bothEmpty = m_gitSubmitPanelUi.authorLineEdit->text().isEmpty() &&
+            m_gitSubmitPanelUi.emailLineEdit->text().isEmpty();
+
     m_gitSubmitPanelUi.invalidAuthorLabel->
-            setVisible(m_gitSubmitPanelUi.authorLineEdit->text().isEmpty());
+            setVisible(m_gitSubmitPanelUi.authorLineEdit->text().isEmpty() && !bothEmpty);
     m_gitSubmitPanelUi.invalidEmailLabel->
-            setVisible(!emailIsValid());
+            setVisible(!emailIsValid() && !bothEmpty);
 
    updateSubmitAction();
 }