sc/qa/uitest/range_name/tdf86214.py |   10 ++++++----
 sc/source/ui/namedlg/namedefdlg.cxx |   34 +++++++++++++++-------------------
 vcl/source/uitest/uiobject.cxx      |    1 +
 3 files changed, 22 insertions(+), 23 deletions(-)

New commits:
commit 58dcf2a88af215df4e912f0cfcb32908c6a298a0
Author:     Andreas Heinisch <andreas.heini...@yahoo.de>
AuthorDate: Fri Apr 2 13:23:46 2021 +0200
Commit:     Heiko Tietze <heiko.tie...@documentfoundation.org>
CommitDate: Mon Apr 12 08:39:47 2021 +0200

    tdf#132869 - Show the error message in a tooltip
    
    In the define name dialog, the input itself should show the error
    message in a tooltip. In addition, the possibility to test the tooltip
    text in python was added.
    
    Change-Id: I9bd7d2b2be8300aa366971f8a1f115e8ae19fb98
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113513
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org>

diff --git a/sc/qa/uitest/range_name/tdf86214.py 
b/sc/qa/uitest/range_name/tdf86214.py
index d529a47b9dd1..48817e0bcc64 100644
--- a/sc/qa/uitest/range_name/tdf86214.py
+++ b/sc/qa/uitest/range_name/tdf86214.py
@@ -39,16 +39,18 @@ class InvalidNames(UITestCase):
                 select_all(xEdit)
                 type_text(xEdit, name)
 
-                new_text = get_state_as_dict(xLabel)["Text"]
-                self.assertNotEqual(success_text, new_text)
+                # tdf#132869 - Without the fix in place, this test would have 
failed with
+                # - Expected: "Invalid name. Start with a letter, use only 
letters, numbers and underscore."
+                # - Actual  : ""
+                self.assertNotEqual(success_text, 
get_state_as_dict(xEdit)["QuickHelpText"])
                 self.assertEqual(get_state_as_dict(xAddBtn)["Enabled"], 
"false")
 
 
         select_all(xEdit)
         type_text(xEdit, "valid_name")
 
-        new_text = get_state_as_dict(xLabel)["Text"]
-        self.assertEqual(success_text, new_text)
+        self.assertEqual(success_text, get_state_as_dict(xLabel)["Text"])
+        self.assertEqual(success_text, 
get_state_as_dict(xEdit)["QuickHelpText"])
         self.assertEqual(get_state_as_dict(xAddBtn)["Enabled"], "true")
 
         self.ui_test.close_dialog_through_button(xAddBtn)
diff --git a/sc/source/ui/namedlg/namedefdlg.cxx 
b/sc/source/ui/namedlg/namedefdlg.cxx
index 25ff6e132a61..658026652c6b 100644
--- a/sc/source/ui/namedlg/namedefdlg.cxx
+++ b/sc/source/ui/namedlg/namedefdlg.cxx
@@ -120,6 +120,9 @@ bool ScNameDefDlg::IsNameValid()
     OUString aScope = m_xLbScope->get_active_text();
     OUString aName = m_xEdName->get_text();
 
+    bool bIsNameValid = true;
+    OUString aHelpText = maStrInfoDefault;
+
     ScRangeName* pRangeName = nullptr;
     if(aScope == maGlobalNameStr)
     {
@@ -131,46 +134,39 @@ bool ScNameDefDlg::IsNameValid()
     }
 
     ScRangeData::IsNameValidType eType;
-    m_xFtInfo->set_label_type(weld::LabelType::Normal);
     if ( aName.isEmpty() )
     {
-        m_xBtnAdd->set_sensitive(false);
-        m_xFtInfo->set_label(maStrInfoDefault);
-        return false;
+        bIsNameValid = false;
     }
     else if ((eType = ScRangeData::IsNameValid(aName, mrDoc))
              != ScRangeData::IsNameValidType::NAME_VALID)
     {
-        m_xFtInfo->set_label_type(weld::LabelType::Error);
         if (eType == ScRangeData::IsNameValidType::NAME_INVALID_BAD_STRING)
         {
-            m_xFtInfo->set_label(maErrInvalidNameStr);
+            aHelpText = maErrInvalidNameStr;
         }
         else if (eType == ScRangeData::IsNameValidType::NAME_INVALID_CELL_REF)
         {
-            m_xFtInfo->set_label(maErrInvalidNameCellRefStr);
+            aHelpText = maErrInvalidNameCellRefStr;
         }
-        m_xBtnAdd->set_sensitive(false);
-        return false;
+        bIsNameValid = false;
     }
     else if 
(pRangeName->findByUpperName(ScGlobal::getCharClassPtr()->uppercase(aName)))
     {
-        m_xFtInfo->set_label_type(weld::LabelType::Error);
-        m_xFtInfo->set_label(maErrNameInUse);
-        m_xBtnAdd->set_sensitive(false);
-        return false;
+        aHelpText = maErrNameInUse;
+        bIsNameValid = false;
     }
 
     if (!IsFormulaValid())
     {
-        m_xFtInfo->set_label_type(weld::LabelType::Error);
-        m_xBtnAdd->set_sensitive(false);
-        return false;
+        bIsNameValid = false;
     }
 
-    m_xFtInfo->set_label(maStrInfoDefault);
-    m_xBtnAdd->set_sensitive(true);
-    return true;
+    m_xEdName->set_tooltip_text(aHelpText);
+    m_xEdName->set_message_type(bIsNameValid || aName.isEmpty() ? 
weld::EntryMessageType::Normal
+                                                                : 
weld::EntryMessageType::Error);
+    m_xBtnAdd->set_sensitive(bIsNameValid);
+    return bIsNameValid;
 }
 
 void ScNameDefDlg::AddPushed()
diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx
index fc72053074c6..4d8390e212a2 100644
--- a/vcl/source/uitest/uiobject.cxx
+++ b/vcl/source/uitest/uiobject.cxx
@@ -785,6 +785,7 @@ StringMap EditUIObject::get_state()
 {
     StringMap aMap = WindowUIObject::get_state();
     aMap["MaxTextLength"] = OUString::number(mxEdit->GetMaxTextLen());
+    aMap["QuickHelpText"] = mxEdit->GetQuickHelpText();
     aMap["SelectedText"] = mxEdit->GetSelected();
     aMap["Text"] = mxEdit->GetText();
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to