framework/source/fwe/helper/titlehelper.cxx | 30 ++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-)
New commits: commit 6ea42a11669e2b3d3a10dd5eb199f45d6050c86b Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Mon Nov 27 10:16:40 2023 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Mon Nov 27 12:54:34 2023 +0100 tdf#158396: show DocumentTitle when set in MediaDescriptor Change-Id: Ic89de9e7d83c7c96eb1b2cc51798d354b38f86d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159904 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/framework/source/fwe/helper/titlehelper.cxx b/framework/source/fwe/helper/titlehelper.cxx index 48583681b9a4..5ab03ab10e8f 100644 --- a/framework/source/fwe/helper/titlehelper.cxx +++ b/framework/source/fwe/helper/titlehelper.cxx @@ -298,6 +298,13 @@ void TitleHelper::impl_updateTitle (bool init) } } +static OUString getURLFromModel(const css::uno::Reference< css::frame::XModel3 >& xModel) +{ + if (css::uno::Reference<css::frame::XStorable> xURLProvider{ xModel, css::uno::UNO_QUERY }) + return xURLProvider->getLocation(); + return {}; +} + void TitleHelper::impl_updateTitleForModel (const css::uno::Reference< css::frame::XModel3 >& xModel, bool init) { css::uno::Reference< css::uno::XInterface > xOwner; @@ -326,24 +333,27 @@ void TitleHelper::impl_updateTitleForModel (const css::uno::Reference< css::fram return; OUString sTitle; - OUString sURL; - css::uno::Reference< css::frame::XStorable > xURLProvider(xModel , css::uno::UNO_QUERY); - if (xURLProvider.is()) - sURL = xURLProvider->getLocation (); + utl::MediaDescriptor aDescriptor( + xModel->getArgs2({ utl::MediaDescriptor::PROP_DOCUMENTTITLE, + utl::MediaDescriptor::PROP_SUGGESTEDSAVEASNAME })); - utl::MediaDescriptor aDescriptor(xModel->getArgs2( { utl::MediaDescriptor::PROP_SUGGESTEDSAVEASNAME } )); - const OUString sSuggestedSaveAsName = aDescriptor.getUnpackedValueOrDefault( - utl::MediaDescriptor::PROP_SUGGESTEDSAVEASNAME, OUString()); - - if (!sURL.isEmpty()) + if (const OUString sMediaTitle = aDescriptor.getUnpackedValueOrDefault( + utl::MediaDescriptor::PROP_DOCUMENTTITLE, OUString()); + !sMediaTitle.isEmpty()) + { + sTitle = sMediaTitle; + } + else if (const OUString sURL = getURLFromModel(xModel); !sURL.isEmpty()) { sTitle = impl_convertURL2Title(sURL); if (nLeasedNumber != css::frame::UntitledNumbersConst::INVALID_NUMBER) xNumbers->releaseNumber (nLeasedNumber); nLeasedNumber = css::frame::UntitledNumbersConst::INVALID_NUMBER; } - else if (!sSuggestedSaveAsName.isEmpty()) + else if (const OUString sSuggestedSaveAsName = aDescriptor.getUnpackedValueOrDefault( + utl::MediaDescriptor::PROP_SUGGESTEDSAVEASNAME, OUString()); + !sSuggestedSaveAsName.isEmpty()) { // tdf#121537 Use suggested save as name for title if file has not yet been saved sTitle = sSuggestedSaveAsName;