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
