kit/ChildSession.cpp |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

New commits:
commit a64eebb6ae70b34ed691f1b94e64c73ed98a4fec
Author: Jan Holesovsky <ke...@collabora.com>
Date:   Tue Nov 7 14:30:52 2017 +0100

    Save As: If the LOK's saveAs failed, try under a different name.
    
    This helps when the caller omitted the extension...
    
    Change-Id: Ib7602ce8fa88bc867198dbba36b2582145bd0994
    Reviewed-on: https://gerrit.libreoffice.org/44405
    Reviewed-by: pranavk <pran...@collabora.co.uk>
    Tested-by: pranavk <pran...@collabora.co.uk>

diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp
index ec439918..8103f998 100644
--- a/kit/ChildSession.cpp
+++ b/kit/ChildSession.cpp
@@ -947,6 +947,27 @@ bool ChildSession::saveAs(const char* /*buffer*/, int 
/*length*/, const std::vec
         success = getLOKitDocument()->saveAs(url.c_str(),
                 format.size() == 0 ? nullptr :format.c_str(),
                 filterOptions.size() == 0 ? nullptr : filterOptions.c_str());
+
+        if (!success)
+        {
+            // a desperate try - add an extension hoping that it'll help
+            bool retry = true;
+            switch (getLOKitDocument()->getDocumentType())
+            {
+                case LOK_DOCTYPE_TEXT:         url += ".odt"; wopiFilename += 
".odt"; break;
+                case LOK_DOCTYPE_SPREADSHEET:  url += ".ods"; wopiFilename += 
".ods"; break;
+                case LOK_DOCTYPE_PRESENTATION: url += ".odp"; wopiFilename += 
".odp"; break;
+                case LOK_DOCTYPE_DRAWING:      url += ".odg"; wopiFilename += 
".odg"; break;
+                default:                       retry = false; break;
+            }
+
+            if (retry)
+            {
+                success = getLOKitDocument()->saveAs(url.c_str(),
+                        format.size() == 0 ? nullptr :format.c_str(),
+                        filterOptions.size() == 0 ? nullptr : 
filterOptions.c_str());
+            }
+        }
     }
 
     std::string encodedURL, encodedWopiFilename;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to