cui/uiconfig/ui/aboutdialog.ui |  282 ++++++++++++++++++++---------------------
 include/vcl/builderbase.hxx    |    1 
 vcl/qt5/QtBuilder.cxx          |    1 
 vcl/source/window/builder.cxx  |   28 ++--
 4 files changed, 157 insertions(+), 155 deletions(-)

New commits:
commit 59d8a8b03a0c23842e567d5dc1fb2051d8685c0e
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Oct 29 07:19:48 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Oct 29 12:17:12 2024 +0100

    tdf#130857 qt weld: Set widget tooltip defined in .ui file
    
    If a tooltip is defined for a widget in a .ui file,
    set that tooltip using QWidget::setToolTip.
    
    This e.g. makes the tooltip for the copy button in the
    "Help" -> "About" dialog shown as
    "Copy all version information in English" when hovering
    over the button with the mouse.
    
    Change-Id: Ida22b3fb8b3626474d4377aac6c51d9f7c7ba2ca
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175775
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx
index a25f419a915b..740acb951631 100644
--- a/vcl/qt5/QtBuilder.cxx
+++ b/vcl/qt5/QtBuilder.cxx
@@ -238,6 +238,7 @@ QObject* QtBuilder::makeObject(QObject* pParent, 
std::u16string_view sName, cons
 
         QtInstanceWidget::setHelpId(*pWidget, getHelpRoot() + sID);
 
+        pWidget->setToolTip(toQString(extractTooltipText(rMap)));
         pWidget->setVisible(extractVisible(rMap));
 
 #if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)
commit 8dd7232a88803de15728b0b78df04b13bca4d944
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Oct 29 07:17:12 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Oct 29 12:17:06 2024 +0100

    tdf#130857 VclBuilder: Move extractTooltipText to BuilderBase
    
    Turn this local helper function into a static method
    in the BuilderBase class, for reuse in QtBuilder
    in an upcoming commit.
    
    Change-Id: Ib1129801bc7315b1745d1b2690d59747c8db7ed6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175774
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/include/vcl/builderbase.hxx b/include/vcl/builderbase.hxx
index d811b3ca8d49..829e3dff8f52 100644
--- a/include/vcl/builderbase.hxx
+++ b/include/vcl/builderbase.hxx
@@ -85,6 +85,7 @@ protected:
     void collectProperty(xmlreader::XmlReader& rReader, stringmap& rMap) const;
     static bool extractEntry(stringmap& rMap);
     static OUString extractIconName(stringmap& rMap);
+    static OUString extractTooltipText(stringmap& rMap);
     static bool extractVisible(stringmap& rMap);
     void extractClassAndIdAndCustomProperty(xmlreader::XmlReader& reader, 
OUString& rClass,
                                             OUString& rId, OUString& 
rCustomProperty);
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 88d60255c7db..14bebb7d724f 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -1066,20 +1066,6 @@ namespace
         return Size(sWidthRequest.toInt32(), sHeightRequest.toInt32());
     }
 
-    OUString extractTooltipText(VclBuilder::stringmap &rMap)
-    {
-        OUString sTooltipText;
-        VclBuilder::stringmap::iterator aFind = 
rMap.find(u"tooltip-text"_ustr);
-        if (aFind == rMap.end())
-            aFind = rMap.find(u"tooltip-markup"_ustr);
-        if (aFind != rMap.end())
-        {
-            sTooltipText = aFind->second;
-            rMap.erase(aFind);
-        }
-        return sTooltipText;
-    }
-
     float extractAlignment(VclBuilder::stringmap &rMap)
     {
         float f = 0.0;
@@ -3773,6 +3759,20 @@ OUString 
BuilderBase::extractIconName(VclBuilder::stringmap &rMap)
     return !sReplace.isEmpty() ? sReplace : sIconName;
 }
 
+OUString BuilderBase::extractTooltipText(stringmap& rMap)
+{
+    OUString sTooltipText;
+    VclBuilder::stringmap::iterator aFind = rMap.find(u"tooltip-text"_ustr);
+    if (aFind == rMap.end())
+        aFind = rMap.find(u"tooltip-markup"_ustr);
+    if (aFind != rMap.end())
+    {
+        sTooltipText = aFind->second;
+        rMap.erase(aFind);
+    }
+    return sTooltipText;
+}
+
 bool BuilderBase::extractVisible(VclBuilder::stringmap& rMap)
 {
     bool bRet = false;
commit 638945011baabf86b2529ba68cb5cb4d49813a33
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Oct 29 07:05:43 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Oct 29 12:16:59 2024 +0100

    tdf#130857 aboutdialog.ui: Define grid children in order
    
    Reorder children of the top-level grid in the .ui file so
    that the order matches the visual appearance, which makes
    sure that tab focus order with the Qt-based VCL plugins is
    correct as well the "Help" -> "About LibreOffice(Dev)" dialog.
    dialog.
    
    See
    
        commit 02692566ad9fc7c3484f8581ffa0004cd4e43987
        Author: Michael Weghorn <[email protected]>
        Date:   Thu Oct 24 17:43:35 2024 +0200
    
            tdf#130857 optnewdictionarydialog.ui: Define focusable widgets in 
order
    
    for more background.
    
    Change-Id: I069fc7c290d2c98180345d350504068a2dc19d40
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175773
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/cui/uiconfig/ui/aboutdialog.ui b/cui/uiconfig/ui/aboutdialog.ui
index 83805a52ad18..8759b1c5ec03 100644
--- a/cui/uiconfig/ui/aboutdialog.ui
+++ b/cui/uiconfig/ui/aboutdialog.ui
@@ -90,6 +90,147 @@
                 <property name="top-attach">0</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkLabel" id="lbAbout">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="valign">end</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="label" translatable="yes" 
context="aboutdialog|description">%PRODUCTNAME is a modern, easy-to-use, open 
source productivity suite for word processing, spreadsheets, presentations and 
more.</property>
+                <property name="wrap">True</property>
+                <property name="max-width-chars">60</property>
+                <property name="xalign">0</property>
+              </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="lbCopyright">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="valign">start</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="label" 
context="aboutdialog|copyright">%COPYRIGHT</property>
+                <property name="wrap">True</property>
+                <property name="max-width-chars">60</property>
+                <property name="xalign">0</property>
+                <attributes>
+                  <attribute name="scale" value="0.9"/>
+                </attributes>
+              </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="halign">center</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLinkButton" id="btnCredits">
+                    <property name="label" translatable="yes" 
context="aboutdialog|credits">Credits</property>
+                    <property name="name">lbCredit</property>
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="relief">none</property>
+                    <property name="xalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLinkButton" id="btnWebsite">
+                    <property name="label" translatable="yes" 
context="aboutdialog|website">Website</property>
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="relief">none</property>
+                    <property name="xalign">0</property>
+                    <property 
name="uri">https://www.libreoffice.org/</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLinkButton" id="btnReleaseNotes">
+                    <property name="label" translatable="yes" 
context="aboutdialog|releasenotes">Release Notes</property>
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="relief">none</property>
+                    <property name="xalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">4</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="lbVersionInfo">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="aboutdialog|lbVersionInfo">Version Information</property>
+                    <property name="use-underline">True</property>
+                    <property name="mnemonic-widget">btnCopyVersion</property>
+                    <property name="xalign">0</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="btnCopyVersion">
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="tooltip-text" translatable="yes" 
context="aboutdialog|btnCopyVersionTooltip">Copy all version information in 
English</property>
+                    <property name="image">imCopy</property>
+                    <property name="always-show-image">True</property>
+                    <accelerator key="c" signal="clicked" 
modifiers="GDK_CONTROL_MASK"/>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">5</property>
+              </packing>
+            </child>
             <child>
               <!-- n-columns=2 n-rows=6 -->
               <object class="GtkGrid">
@@ -338,147 +479,6 @@
                 <property name="top-attach">6</property>
               </packing>
             </child>
-            <child>
-              <object class="GtkLabel" id="lbAbout">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="valign">end</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
-                <property name="label" translatable="yes" 
context="aboutdialog|description">%PRODUCTNAME is a modern, easy-to-use, open 
source productivity suite for word processing, spreadsheets, presentations and 
more.</property>
-                <property name="wrap">True</property>
-                <property name="max-width-chars">60</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left-attach">1</property>
-                <property name="top-attach">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="lbCopyright">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="valign">start</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
-                <property name="label" 
context="aboutdialog|copyright">%COPYRIGHT</property>
-                <property name="wrap">True</property>
-                <property name="max-width-chars">60</property>
-                <property name="xalign">0</property>
-                <attributes>
-                  <attribute name="scale" value="0.9"/>
-                </attributes>
-              </object>
-              <packing>
-                <property name="left-attach">1</property>
-                <property name="top-attach">3</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="halign">center</property>
-                <property name="spacing">12</property>
-                <child>
-                  <object class="GtkLinkButton" id="btnCredits">
-                    <property name="label" translatable="yes" 
context="aboutdialog|credits">Credits</property>
-                    <property name="name">lbCredit</property>
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">True</property>
-                    <property name="relief">none</property>
-                    <property name="xalign">0</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLinkButton" id="btnWebsite">
-                    <property name="label" translatable="yes" 
context="aboutdialog|website">Website</property>
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">True</property>
-                    <property name="relief">none</property>
-                    <property name="xalign">0</property>
-                    <property 
name="uri">https://www.libreoffice.org/</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLinkButton" id="btnReleaseNotes">
-                    <property name="label" translatable="yes" 
context="aboutdialog|releasenotes">Release Notes</property>
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">True</property>
-                    <property name="relief">none</property>
-                    <property name="xalign">0</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left-attach">1</property>
-                <property name="top-attach">4</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="spacing">12</property>
-                <child>
-                  <object class="GtkLabel" id="lbVersionInfo">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                    <property name="label" translatable="yes" 
context="aboutdialog|lbVersionInfo">Version Information</property>
-                    <property name="use-underline">True</property>
-                    <property name="mnemonic-widget">btnCopyVersion</property>
-                    <property name="xalign">0</property>
-                    <attributes>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="btnCopyVersion">
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">True</property>
-                    <property name="tooltip-text" translatable="yes" 
context="aboutdialog|btnCopyVersionTooltip">Copy all version information in 
English</property>
-                    <property name="image">imCopy</property>
-                    <property name="always-show-image">True</property>
-                    <accelerator key="c" signal="clicked" 
modifiers="GDK_CONTROL_MASK"/>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left-attach">1</property>
-                <property name="top-attach">5</property>
-              </packing>
-            </child>
             <child>
               <placeholder/>
             </child>

Reply via email to