diff options
author | Mert Tumer <mert.tumer@collabora.com> | 2022-04-06 16:59:53 +0300 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2022-04-06 22:20:14 +0200 |
commit | 49f8a7333bddceb3b8bd18d81ff593fa39f5a437 (patch) | |
tree | a62b4be391b8b7c7f8c66b139c027658f84885eb | |
parent | 2861fcac6dd80b6e84e6853c2a47fe371b75e3a0 (diff) |
lok: load template documents as regular documents
cp-6.4-60
otherwise lok cannot save them directly because
libreoffice will try to open a save-as dialog
For odg, change the draw8_template type draw8
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I34b0ed03adcac89eaa926f8ae6c57e6f622a90f0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132633
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
-rw-r--r-- | desktop/source/lib/init.cxx | 9 | ||||
-rw-r--r-- | filter/source/storagefilterdetect/filterdetect.cxx | 7 |
2 files changed, 15 insertions, 1 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 5721b56573d6..f3396a3f4bc7 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2380,7 +2380,7 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions(LibreOfficeKit* pThis, Application::SetDialogCancelMode(DialogCancelMode::LOKSilent); } - uno::Sequence<css::beans::PropertyValue> aFilterOptions(3); + uno::Sequence<css::beans::PropertyValue> aFilterOptions(4); aFilterOptions[0] = css::beans::PropertyValue( "FilterOptions", 0, uno::makeAny(aOptions), @@ -2427,6 +2427,13 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions(LibreOfficeKit* pThis, aFilterOptions[3].Value <<= nUpdateDoc; */ + // set this explicitly false to be able to load template files + // as regular files, otherwise we cannot save them; it will try + // to bring saveas dialog which cannot work with LOK case + aFilterOptions[3].Name = "AsTemplate"; + aFilterOptions[3].Value <<= false; + + const int nThisDocumentId = nDocumentIdCounter++; SfxViewShell::SetCurrentDocId(ViewShellDocId(nThisDocumentId)); uno::Reference<lang::XComponent> xComponent = xComponentLoader->loadComponentFromURL( diff --git a/filter/source/storagefilterdetect/filterdetect.cxx b/filter/source/storagefilterdetect/filterdetect.cxx index 02ed875c6699..694251c389b3 100644 --- a/filter/source/storagefilterdetect/filterdetect.cxx +++ b/filter/source/storagefilterdetect/filterdetect.cxx @@ -33,6 +33,8 @@ #include <com/sun/star/packages/zip/ZipIOException.hpp> #include <com/sun/star/task/XInteractionHandler.hpp> +#include <comphelper/lok.hxx> + using namespace ::com::sun::star; using utl::MediaDescriptor; @@ -103,6 +105,11 @@ OUString SAL_CALL StorageFilterDetect::detect(uno::Sequence<beans::PropertyValue OUString aMediaType; xStorageProperties->getPropertyValue( "MediaType" ) >>= aMediaType; aTypeName = getInternalFromMediaType( aMediaType ); + if (comphelper::LibreOfficeKit::isActive() && aTypeName == "draw8_template") + { + // save it as draw8 instead of template format + aTypeName = "draw8"; + } } catch( const lang::WrappedTargetException& aWrap ) |