diff options
-rw-r--r-- | framework/source/fwe/helper/titlehelper.cxx | 15 | ||||
-rw-r--r-- | include/unotools/mediadescriptor.hxx | 1 | ||||
-rw-r--r-- | unotools/source/misc/mediadescriptor.cxx | 6 |
3 files changed, 22 insertions, 0 deletions
diff --git a/framework/source/fwe/helper/titlehelper.cxx b/framework/source/fwe/helper/titlehelper.cxx index 3d7943623753..36141cfba0f1 100644 --- a/framework/source/fwe/helper/titlehelper.cxx +++ b/framework/source/fwe/helper/titlehelper.cxx @@ -32,6 +32,7 @@ #include <unotools/configmgr.hxx> #include <unotools/bootstrap.hxx> +#include <unotools/mediadescriptor.hxx> #include <comphelper/sequenceashashmap.hxx> #include <rtl/ustrbuf.hxx> #include <osl/mutex.hxx> @@ -39,6 +40,11 @@ #include <vcl/opengl/OpenGLWrapper.hxx> #include <vcl/svapp.hxx> + +using namespace css; +using namespace css::uno; +using namespace css::frame; + namespace framework{ TitleHelper::TitleHelper(const css::uno::Reference< css::uno::XComponentContext >& rxContext) @@ -339,6 +345,10 @@ void TitleHelper::impl_updateTitleForModel (const css::uno::Reference< css::fram if (xURLProvider.is()) sURL = xURLProvider->getLocation (); + utl::MediaDescriptor aDescriptor(xModel->getArgs()); + const OUString sSuggestedSaveAsName = aDescriptor.getUnpackedValueOrDefault( + utl::MediaDescriptor::PROP_SUGGESTEDSAVEASNAME(), OUString()); + if (!sURL.isEmpty()) { sTitle = impl_convertURL2Title(sURL); @@ -346,6 +356,11 @@ void TitleHelper::impl_updateTitleForModel (const css::uno::Reference< css::fram xNumbers->releaseNumber (nLeasedNumber); nLeasedNumber = css::frame::UntitledNumbersConst::INVALID_NUMBER; } + else if (!sSuggestedSaveAsName.isEmpty()) + { + // tdf#121537 Use suggested save as name for title if file has not yet been saved + sTitle = sSuggestedSaveAsName; + } else { if (nLeasedNumber == css::frame::UntitledNumbersConst::INVALID_NUMBER) diff --git a/include/unotools/mediadescriptor.hxx b/include/unotools/mediadescriptor.hxx index 24e8d4678ec0..b568bd770f3a 100644 --- a/include/unotools/mediadescriptor.hxx +++ b/include/unotools/mediadescriptor.hxx @@ -99,6 +99,7 @@ class UNOTOOLS_DLLPUBLIC MediaDescriptor : public comphelper::SequenceAsHashMap static const OUString& PROP_MODEL(); static const OUString& PROP_VIEWONLY(); static const OUString& PROP_DOCUMENTBASEURL(); + static const OUString& PROP_SUGGESTEDSAVEASNAME(); // interface public: diff --git a/unotools/source/misc/mediadescriptor.cxx b/unotools/source/misc/mediadescriptor.cxx index 674f2a98a986..e0222f90ca89 100644 --- a/unotools/source/misc/mediadescriptor.cxx +++ b/unotools/source/misc/mediadescriptor.cxx @@ -326,6 +326,12 @@ const OUString& MediaDescriptor::PROP_DOCUMENTBASEURL() return sProp; } +const OUString& MediaDescriptor::PROP_SUGGESTEDSAVEASNAME() +{ + static const OUString sProp("SuggestedSaveAsName"); + return sProp; +} + MediaDescriptor::MediaDescriptor() : SequenceAsHashMap() { |