extras/Package_gallbullets.mk | 50 +++++++++++----------- extras/source/gallery/gallery_system/bullets.sdg |binary extras/source/gallery/gallery_system/bullets.thm |binary sc/source/ui/view/formatsh.cxx | 17 +++++++ sd/source/filter/eppt/pptx-animations-nodectx.cxx | 5 ++ sd/source/filter/eppt/pptx-animations.cxx | 14 ------ starmath/source/ooxmlimport.cxx | 29 ++++++++++++ starmath/source/ooxmlimport.hxx | 1 8 files changed, 78 insertions(+), 38 deletions(-)
New commits: commit 7608d10867a827569679b43c085998e064894734 Author: Heiko Tietze <[email protected]> AuthorDate: Mon Jan 5 12:17:32 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Jan 7 12:33:06 2026 +0100 Resolves tdf#169812 - Apply last used color for uno:Color Instead of opening the font dialog a shortcut applies now the current color from the color picker Change-Id: Ief2cd085bdec792a050450123bbb019e75c4efd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196556 Reviewed-by: Heiko Tietze <[email protected]> Tested-by: Jenkins (cherry picked from commit 751c78a2ea3cbc34223977b1c51661b51a564e5f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196606 diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx index 6c6c70814bff..d9f4f3bac525 100644 --- a/sc/source/ui/view/formatsh.cxx +++ b/sc/source/ui/view/formatsh.cxx @@ -941,6 +941,23 @@ void ScFormatShell::ExecuteAttr( SfxRequest& rReq ) break; } case SID_ATTR_CHAR_COLOR: + { + Color aColor(COL_TRANSPARENT); + if (auto pObjectShell = pTabViewShell->GetObjectShell()) + { + const std::optional<NamedColor> oColor + = pObjectShell->GetRecentColor(SID_ATTR_CHAR_COLOR); + if (oColor.has_value()) + aColor = (*oColor).getComplexColor().getFinalColor(); + } + + SvxColorItem aColorItem( + pTabViewShell->GetSelectionPattern()->GetItem(ATTR_FONT_COLOR)); + aColorItem.setColor(aColor); + pTabViewShell->ApplyAttr(aColorItem, false); + } + break; + case SID_ATTR_CHAR_FONT: case SID_ATTR_CHAR_FONTHEIGHT: pTabViewShell->ExecuteCellFormatDlg(rReq, u"font"_ustr); // when ToolBar is vertical commit 244ace70fd7e6aaead9d1d2c1118c0fe67152fd7 Author: Heiko Tietze <[email protected]> AuthorDate: Mon Jan 5 17:20:47 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Jan 7 12:33:06 2026 +0100 Revert "Resolves tdf#170019 - Relative links in Bullets gallery" This reverts commit 806794add0115c2896ed19f52e51f89492b8c4f4. Reason for revert: SVG + red cross Change-Id: I5dad3fbc8975f960c079ed9bb6d1567732eaadd4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196576 Tested-by: Jenkins Reviewed-by: Heiko Tietze <[email protected]> diff --git a/extras/Package_gallbullets.mk b/extras/Package_gallbullets.mk index 9f2e9a631c23..9b9b8e17491f 100644 --- a/extras/Package_gallbullets.mk +++ b/extras/Package_gallbullets.mk @@ -10,31 +10,31 @@ $(eval $(call gb_Package_Package,extras_gallbullets,$(SRCDIR)/extras/source/gallery/bullets)) $(eval $(call gb_Package_add_files,extras_gallbullets,$(LIBO_SHARE_FOLDER)/gallery/bullets,\ - circle.png \ - circle-green.png \ - triangle.png \ - triangle-green.png \ - pin.png \ - pin-green.png \ - flag.png \ - flag-green.png \ - stars-empty.png \ - redo.png \ - cross.png \ - check.png \ - cross.png \ - circle-blue.png \ - circle-yellow.png \ - triangle-blue.png \ - triangle-yellow.png \ - pin-blue.png \ - pin-yellow.png \ - flag-blue.png \ - flag-yellow.png \ - undo.png \ - stars.png \ - info.png \ - warning.png \ + circle.svg \ + circle-green.svg \ + triangle.svg \ + triangle-green.svg \ + pin.svg \ + pin-green.svg \ + flag.svg \ + flag-green.svg \ + stars-empty.svg \ + redo.svg \ + cross.svg \ + check.svg \ + cross.svg \ + circle-blue.svg \ + circle-yellow.svg \ + triangle-blue.svg \ + triangle-yellow.svg \ + pin-blue.svg \ + pin-yellow.svg \ + flag-blue.svg \ + flag-yellow.svg \ + undo.svg \ + stars.svg \ + info.svg \ + warning.svg \ )) # vim: set noet sw=4 ts=4: diff --git a/extras/source/gallery/gallery_system/bullets.sdg b/extras/source/gallery/gallery_system/bullets.sdg index 4f699c06bad6..5933048e4df7 100644 Binary files a/extras/source/gallery/gallery_system/bullets.sdg and b/extras/source/gallery/gallery_system/bullets.sdg differ diff --git a/extras/source/gallery/gallery_system/bullets.thm b/extras/source/gallery/gallery_system/bullets.thm index c20af3e4fa56..78240bd17731 100644 Binary files a/extras/source/gallery/gallery_system/bullets.thm and b/extras/source/gallery/gallery_system/bullets.thm differ commit 6e1e877ffb0b088d1110c7d3df93bf885cffd522 Author: Pranam Lashkari <[email protected]> AuthorDate: Wed Dec 24 18:24:16 2025 +0530 Commit: Andras Timar <[email protected]> CommitDate: Wed Jan 7 12:33:06 2026 +0100 tdf#169843 math: OOXML set letter not interpreted correctly problem: OOXML has special property to define set names m:scr with value "double-struck" means text should be interpreted as set names and double-struck letters should be used Change-Id: I8acefb369694ae901fc4df2505a85d0691a2cb16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196199 Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> (cherry picked from commit f325e0de3447c0403656ebb2a2fe4789aa59e78e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196305 Tested-by: Jenkins (cherry picked from commit d2dc364ca322f7331652a184a2a69d585b2615da) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196559 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx index dec486e6025b..d5964a2279a1 100644 --- a/starmath/source/ooxmlimport.cxx +++ b/starmath/source/ooxmlimport.cxx @@ -21,6 +21,7 @@ #include <sal/log.hxx> #include <o3tl/string_view.hxx> #include <parse5.hxx> +#include <unordered_set> using namespace oox::formulaimport; @@ -580,6 +581,7 @@ OUString SmOoxmlImport::handleR() m_rStream.ensureOpeningTag( M_TOKEN( r )); bool normal = false; bool literal = false; + OUString scrString; if( XmlStream::Tag rPr = m_rStream.checkOpeningTag( M_TOKEN( rPr ))) { if( XmlStream::Tag litTag = m_rStream.checkOpeningTag( M_TOKEN( lit ))) @@ -592,6 +594,11 @@ OUString SmOoxmlImport::handleR() normal = norTag.attribute( M_TOKEN( val ), true ); m_rStream.ensureClosingTag( M_TOKEN( nor )); } + if (XmlStream::Tag srcTag = m_rStream.checkOpeningTag( M_TOKEN( scr ))) + { + scrString = srcTag.attribute( M_TOKEN( val ), scrString ); + m_rStream.ensureClosingTag( M_TOKEN( scr )); + } m_rStream.ensureClosingTag( M_TOKEN( rPr )); } OUStringBuffer text; @@ -605,6 +612,10 @@ OUString SmOoxmlImport::handleR() isTagT = true; XmlStream::Tag rtag = m_rStream.ensureOpeningTag( M_TOKEN( t )); OUString sTagText = rtag.text; + if (scrString == "double-struck") + { + sTagText = SmOoxmlImport::handleSetString(sTagText); + } if( rtag.attribute( OOX_TOKEN( xml, space )) != "preserve" ) sTagText = o3tl::trim(sTagText); text.append(sTagText); @@ -617,13 +628,29 @@ OUString SmOoxmlImport::handleR() } } m_rStream.ensureClosingTag( M_TOKEN( r )); - if (normal || literal || isTagT) + if (scrString.isEmpty() && (normal || literal || isTagT)) { return encloseOrEscapeLiteral(text.makeStringAndClear(), normal || literal); } return text.makeStringAndClear(); } +OUString SmOoxmlImport::handleSetString(const OUString& setOUstring) +{ + std::unordered_set<sal_Unicode> setList= {'C', 'N', 'Q', 'R', 'Z', 'c', 'n', 'q', 'r', 'z'}; + OUString result; + for (sal_Int32 i = 0; i < setOUstring.getLength(); i++) + { + if (setList.contains(setOUstring[i])) + { + result += OUString::Concat(" set" ) + OUStringChar(setOUstring[i]) + OUString::Concat(" "); + } + else + result += OUStringChar(setOUstring[i]); + } + return result; +} + OUString SmOoxmlImport::handleRad() { m_rStream.ensureOpeningTag( M_TOKEN( rad )); diff --git a/starmath/source/ooxmlimport.hxx b/starmath/source/ooxmlimport.hxx index 4f8df14bfd16..e3621fdc0dec 100644 --- a/starmath/source/ooxmlimport.hxx +++ b/starmath/source/ooxmlimport.hxx @@ -44,6 +44,7 @@ private: OUString handleSsup(); OUString readOMathArg( int stoptoken ); OUString readOMathArgInElement( int token ); + static OUString handleSetString(const OUString& setOUstring); oox::formulaimport::XmlStream& m_rStream; }; commit 674a54608fe2f0c88efbe40de4d3f920cb531de3 Author: Aron Budea <[email protected]> AuthorDate: Fri Jan 2 21:50:24 2026 +1100 Commit: Andras Timar <[email protected]> CommitDate: Wed Jan 7 12:33:06 2026 +0100 tdf#170202 avoid exporting ANIMATIONPHYSICS node types Implement cbf102d4c1ba73519b49df0d43a87ebdf9267538 differently. After previous commit, tdf136301-1.odp still contained animation elements in slide1.xml when converted to PPTX, and couldn't be opened in PP. Set such nodes invalid instead to avoid processing them at all. Change-Id: I799026c389681b89792bb9765b8f81562743deb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196424 Reviewed-by: Aron Budea <[email protected]> Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> (cherry picked from commit f3943837d75695bc351a55340addd362de33097b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196441 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sd/source/filter/eppt/pptx-animations-nodectx.cxx b/sd/source/filter/eppt/pptx-animations-nodectx.cxx index af843d661b69..0e3c2ee3d4d5 100644 --- a/sd/source/filter/eppt/pptx-animations-nodectx.cxx +++ b/sd/source/filter/eppt/pptx-animations-nodectx.cxx @@ -188,6 +188,11 @@ void NodeContext::initValid(bool bHasValidChild, bool bIsIterateChild) } } } + else if (nType == AnimationNodeType::ANIMATEPHYSICS) + { + // Ignore: we don't support exporting this node type + mbValid = false; + } else { Reference<XAnimate> xAnimate(mxNode, UNO_QUERY); diff --git a/sd/source/filter/eppt/pptx-animations.cxx b/sd/source/filter/eppt/pptx-animations.cxx index bbae2b29682c..3890e392d2aa 100644 --- a/sd/source/filter/eppt/pptx-animations.cxx +++ b/sd/source/filter/eppt/pptx-animations.cxx @@ -951,28 +951,18 @@ void PPTXAnimationExport::WriteAnimationNodeCommonPropsStart() if (!aChildNodes.empty()) { bool bSubTnLst = false; - bool bWroteChildTnList = false; + mpFS->startElementNS(XML_p, XML_childTnLst); for (const NodeContextPtr& pChildContext : aChildNodes) { if (pChildContext->isValid()) { if (pChildContext->isOnSubTnLst()) bSubTnLst = true; - else if (pChildContext->getNode()->getType() == AnimationNodeType::ANIMATEPHYSICS) - ; // ignore we don't support exporting this node type else - { - if (!bWroteChildTnList) - { - bWroteChildTnList = true; - mpFS->startElementNS(XML_p, XML_childTnLst); - } WriteAnimationNode(pChildContext); - } } } - if (bWroteChildTnList) - mpFS->endElementNS(XML_p, XML_childTnLst); + mpFS->endElementNS(XML_p, XML_childTnLst); if (bSubTnLst) {
