summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-06-06 16:18:22 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-06-06 21:32:47 +0200
commitd125024874da5d22abf0d60b8a13c355effff495 (patch)
treef0745f1b50e64f5aea255c0e634b9f37f1040ca2 /vcl
parent162f5a20095c6937030d23ee03fb8f72c51eefa1 (diff)
gtk4: set same use-underline on inserted GtkLabel as parent GtkButton
Change-Id: I6618433faf2379bfadf7a257e394785360d07526 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116760 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/gtk4/convert3to4.cxx19
1 files changed, 16 insertions, 3 deletions
diff --git a/vcl/unx/gtk4/convert3to4.cxx b/vcl/unx/gtk4/convert3to4.cxx
index da0ef100a6ef..88d3de723d39 100644
--- a/vcl/unx/gtk4/convert3to4.cxx
+++ b/vcl/unx/gtk4/convert3to4.cxx
@@ -257,15 +257,17 @@ struct ConvertResult
bool m_bHasVisible;
bool m_bHasSymbolicIconName;
bool m_bAlwaysShowImage;
+ bool m_bUseUnderline;
css::uno::Reference<css::xml::dom::XNode> m_xPropertyLabel;
ConvertResult(bool bChildCanFocus, bool bHasVisible, bool bHasSymbolicIconName,
- bool bAlwaysShowImage,
+ bool bAlwaysShowImage, bool bUseUnderline,
const css::uno::Reference<css::xml::dom::XNode>& rPropertyLabel)
: m_bChildCanFocus(bChildCanFocus)
, m_bHasVisible(bHasVisible)
, m_bHasSymbolicIconName(bHasSymbolicIconName)
, m_bAlwaysShowImage(bAlwaysShowImage)
+ , m_bUseUnderline(bUseUnderline)
, m_xPropertyLabel(rPropertyLabel)
{
}
@@ -281,7 +283,7 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
{
css::uno::Reference<css::xml::dom::XNodeList> xNodeList = xNode->getChildNodes();
if (!xNodeList.is())
- return ConvertResult(false, false, false, false, nullptr);
+ return ConvertResult(false, false, false, false, false, nullptr);
std::vector<css::uno::Reference<css::xml::dom::XNode>> xRemoveList;
@@ -290,6 +292,7 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
bool bHasVisible = false;
bool bHasSymbolicIconName = false;
bool bAlwaysShowImage = false;
+ bool bUseUnderline = false;
css::uno::Reference<css::xml::dom::XNode> xPropertyLabel;
css::uno::Reference<css::xml::dom::XNode> xCantFocus;
@@ -487,6 +490,9 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
}
}
+ if (sName == "use-underline")
+ bUseUnderline = toBool(xChild->getFirstChild()->getNodeValue());
+
if (sName == "relief")
{
if (GetParentObjectType(xChild) == "GtkToggleButton"
@@ -759,6 +765,7 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
bool bChildHasSymbolicIconName = false;
bool bChildHasVisible = false;
bool bChildAlwaysShowImage = false;
+ bool bChildUseUnderline = false;
css::uno::Reference<css::xml::dom::XNode> xChildPropertyLabel;
if (xChild->hasChildNodes())
{
@@ -774,6 +781,7 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
bChildHasVisible = aChildRes.m_bHasVisible;
bChildHasSymbolicIconName = aChildRes.m_bHasSymbolicIconName;
bChildAlwaysShowImage = aChildRes.m_bAlwaysShowImage;
+ bChildUseUnderline = aChildRes.m_bUseUnderline;
xChildPropertyLabel = aChildRes.m_xPropertyLabel;
}
}
@@ -1030,6 +1038,11 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
if (xChildPropertyLabel)
xNewChildObjectNode->appendChild(
xChildPropertyLabel->getParentNode()->removeChild(xChildPropertyLabel));
+ if (bChildUseUnderline)
+ {
+ auto xUseUnderline = CreateProperty(xDoc, "use-underline", "True");
+ xNewChildObjectNode->appendChild(xUseUnderline);
+ }
xNewLabelChildNode->appendChild(xNewChildObjectNode);
if (xImageCandidateNode)
@@ -1048,7 +1061,7 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
xNode->removeChild(xRemove);
return ConvertResult(bChildCanFocus, bHasVisible, bHasSymbolicIconName, bAlwaysShowImage,
- xPropertyLabel);
+ bUseUnderline, xPropertyLabel);
}
}