framework/source/fwe/helper/titlehelper.cxx | 30 ++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-)
New commits: commit e9b7aa5c8246e9e199011e2636d79f00efb79b9e Author: Mike Kaganski <[email protected]> AuthorDate: Mon Nov 27 10:16:40 2023 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Thu Nov 30 10:23:57 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 <[email protected]> (cherry picked from commit 6ea42a11669e2b3d3a10dd5eb199f45d6050c86b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160030 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/framework/source/fwe/helper/titlehelper.cxx b/framework/source/fwe/helper/titlehelper.cxx index be779736e0f7..372c9795f3bf 100644 --- a/framework/source/fwe/helper/titlehelper.cxx +++ b/framework/source/fwe/helper/titlehelper.cxx @@ -314,6 +314,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; @@ -342,24 +349,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;
