summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/source/fwe/helper/titlehelper.cxx15
-rw-r--r--include/unotools/mediadescriptor.hxx1
-rw-r--r--unotools/source/misc/mediadescriptor.cxx6
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()
{