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>
