wsd/DocumentBroker.cpp |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

New commits:
commit 293f4913d2cdfe5385e2cdc0e3bebde281da1578
Author:     Tor Lillqvist <[email protected]>
AuthorDate: Mon Apr 6 12:37:12 2020 +0300
Commit:     Tor Lillqvist <[email protected]>
CommitDate: Mon Apr 6 20:52:47 2020 +0200

    On iOS, make the document show up as modified also after auto or explicit 
save
    
    It is not enough to just have the core code rewrite the document file.
    We need to do the same dance as in -[DocumentViewController bye].
    
    I wonder if it would be cleaner to copy the document file to some
    temporary location when opening it, and use only that copy in Online
    and core, and then after core has saved it (either for an auto-save,
    an explicit save, or when closing the document) do the -[UIDocument
    saveToURL:forSaveOperation:completionHandler] thing?
    
    Change-Id: I78fec08a90424780dc6e794347a0acf2c64e1dab
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91741
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Tor Lillqvist <[email protected]>

diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 0c28b94bd..0d5ce909d 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -39,6 +39,10 @@
 #include <common/Unit.hpp>
 #include <common/FileUtil.hpp>
 
+#ifdef IOS
+#import "DocumentViewController.h"
+#endif
+
 #include <sys/types.h>
 #include <sys/wait.h>
 
@@ -1284,6 +1288,17 @@ bool DocumentBroker::sendUnoSave(const std::string& 
sessionId, bool dontTerminat
         const auto command = "uno .uno:Save " + saveArgs;
         forwardToChild(sessionId, command);
         _lastSaveRequestTime = std::chrono::steady_clock::now();
+#ifdef IOS
+        // We need to do this so that file provider extensions notice. Just 
like in
+        // -[DocumentViewController bye] I suspect that will read the file and 
then overwrite it
+        // with the same contents, but oh well.
+        CODocument *document = [[DocumentViewController singleton] document];
+        [document saveToURL:[[[DocumentViewController singleton] document] 
fileURL]
+           forSaveOperation:UIDocumentSaveForOverwriting
+          completionHandler:^(BOOL success) {
+                LOG_TRC("save completion handler gets " << 
(success?"YES":"NO"));
+            }];
+#endif
         return true;
     }
 
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to