Skip to content

Conversation

@kendy
Copy link
Contributor

@kendy kendy commented Dec 22, 2025

  • coda-m: Initial macOS app
  • Initial CODA-Windows commits squashed together
  • A few CODA-M commits squashed together
  • A few CODA-W commits squashed together
  • Various CODA-M commits squashed together
  • Various CODA-W commits squashed together
  • Various CODA-M commits squashed together
  • Various CODA-W commits squashed together
  • Various CODA-M commits squashed together
  • Lots of changes for CODA-W
  • coda-m: Update the project to build after the file splits
  • coda-m: Update how the core install is copied to lokit/ subdir
  • Make FileUtil.cpp compile on Windows
  • coda-m: Better error message here
  • coda-m: Don't add appDocId, it is iOS-specific
  • Make a bunch of source files compile for Windows
  • Fix compilation errors on Windows
  • Use 'Multi-processor Compilation'
  • I build Poco statically, so adapt to that
  • Misc small changes to make CODA-W build
  • Add getter and setter functions for coolwsd_server_socket_fd for CODA-W
  • Don't warn about VLAs in Windows compilation
  • Avoid warnings in CODA-W build: Use Util::getProcessId() instead of getpid()
  • A handful of sequential CODA-M commits squashed together
  • Improve Util::time_t_to_localtime() and add Util::time_t_to_gmtime()
  • Drop some now unneeded Windows-specific defines
  • Enable debugging of unmanaged (C++) code in CODA-W
  • Some more baby steps to make CODA-W start up properly
  • coda-m: Enable possibility to debug WKWebView from Safari
  • coda-m: Get some debug output from send2JS (when enabled)
  • coda-m: We perform the same restrictions wrt. \n as on iOS
  • Add experimentation with managed/native code marshalling on Windows
  • coda-m: Good to have these debugging possibilities around
  • We do need LO_PATH in CODA-W
  • Pass non-null args to lok_init_2() for CODA-W
  • Try to get CODA-W to proceed further
  • Re-indent a bit to better match our style
  • Attempt to handle Windows pathnames better
  • Work on CODA-W, intermediate commit
  • Four commits to coda-m squashed together
  • Also check window.ThisIsTheWindowsApp
  • Change CODA to use .NET (and not .NET Framework)
  • coda-m: Read the document that the user has choser in File -> Open...
  • Three CODA-W commits squashed together
  • Six CODA-M commits squashed together
  • Tweak SAL_LOG to avoid some verbiage
  • Fix logic in handling the flush option when logging to console
  • Try to make logging work better in CODA-W
  • Modify the message passing from JS to C# in CODA-W
  • coda-m: Implement saving from the File -> Save menu in the app
  • Check for the existence of memrchr
  • coda-m: Fix build of WebSocketHandler on macOS
  • Also set window.userInterfaceMode for CODA-W
  • Execute JavaScript in the main thread
  • CODA-W debugging hacks
  • Implement Util::setThreadName() for Windows
  • coda-m: Define MACOS via config.h instead of a project setting
  • Generalize the check for capabilities to avoid the specific check for FreeBSD
  • Implement pipe2() for platforms that don't have it (like macOS)
  • Avoid "error: unused function" on macOS
  • Add HAVE_LIBCAP, HAVE_PIPE2, and MACOS here, too
  • Fix build of CODA-W
  • Use the built-in predefined _WIN32 macro instead of an own silly _WINDOWS
  • Make the HAVE_ defines more consistent and improve the comments*
  • This prctl() call is Linux-specific
  • Add macOS/iOS implementation of getThreadId()
  • Define 'environ' on macOS
  • Trivial implementation of mount() and umount2() for macOS
  • coda-m: Update readme
  • coda-m: Guard some parts with MOBILEAPP
  • Create Syscall.hpp/cpp to wrap various platform-dependent syscalls
  • Use the configured LO_PATH in the Run Script phase, instead of a hardcoded one
  • Implement socket() with CLOEXEC and NONBLOCK for macOS
  • Adapt to the different Homebrew locations on Intel vs Apple Silicon Mac
  • Implement accept() with CLOEXEC and NONBLOCK for macOS
  • Adapt the getsockopt() calls for macOS
  • Obtaining the current thread ID for macOS
  • Update linker flags for macOS
  • Temporarily don't check the disk space in the macOS coolwsd
  • Fix linking on macOS
  • Syscall.hpp is not for the MOBILEAPP case, and does not compile on Windows
  • This is mobileapp-only
  • Fix build on macOS
  • We need libiconv for linking too
  • It turns out pkg-config was explicitly disabled on macOS
  • Syscall: Cleaner way to not build unecessary code
  • Fix build of tests on macOS
  • Check for different versionrc location on macOS
  • No debug POCO liraries on macOS
  • Add Xcode project for coolwsd for easier debugging
  • Fix return values (and document them too)
  • Actually let's experiment with coolwsd-inproc for the moment
  • Set correct paths for macOS
  • iconv behaves a bit weirdly on macOS
  • Disable SSL in the debug run from Xcode for easier debugging
  • coda-m: Fix build
  • Refactor in preparation for platform-dependent implementation
  • Move the (Thread|FD)Counter to Util-linux and provide macOS impl
  • Separate the coolwsd and coolwsd-inproc schemes
  • Disable capabilities for coolwsd in Xcode on macOS
  • coda-m: Introduce ENABLE_CHILDROOTS & guard it by --enable-coda
  • coda-m: Add more coolwsd source files to the project
  • Consolidate the ifdef
  • coda-m: Fix most of the linking issues (but some are still left)
  • coda-m: COOLWS is not supposed to be run twice
  • coda-m: Read coolwsd.xml from the bundle's Resources
  • coda-m: Disable the COOLWSD main() not to conflict
  • coda-m: Pass the options needed for the coolwsd-inside-CODA functionality
  • coda-m: Update README to match the current developments
  • coda-m: Handle discovery.xml
  • coda-m: Add Incoming connections (Server) entitlement
  • Drop acidental extra slash
  • Construct a file: Poco::URI by passing a Poco::Path
  • Windows-specific pathname fixes
  • Silence one more verbose INFO log tag
  • coda-m: Fix the build of normal coolwsd on macOS again
  • It's only CODA-M that handles the MODIFIED message for now
  • Handle the abstract vs. regular socket names transparently
  • coda-m: More places to disable when we don't use childroots
  • coda-m: Update the Xcode project
  • coda-m: No need to guard this by ENABLE_CODA any more
  • Filter out more noisy and presumably pointless INFO and WARN log
  • Make CODA depend on CODALib
  • Drop final backslash from return value of getSysTempDirectoryPath()
  • Make the CODA-W config.h.in match the Linux one more closely
  • Add CODA-W specific generated files and project directories
  • Replace meaningless rubbish with simple code that works
  • coda-m: Introduce project for coolforkit
  • coda-m: Revert back to the --enable-macosapp approach
  • coda-m: Better look via branding.(js,css)
  • coda-m: Icon for the bundle
  • coda-m: Make the hyperlinks work
  • Enable JS debugging again in the CODA-W project
  • Add branches for the Windows app, too to the clipboard code
  • Provide default params for Log::initialize() to simplify callers
  • coda-m: Make the Xcode project build against 25.04
  • coda-m: Trivial documentation update
  • Tune the launch settings for CODA in Visual Studio a bit
  • Change libpng library name to match that built in LO
  • Improve CODA-W build instructions
  • coda-m: Proof of concept Bold/Italic/Underline menu items
  • coda-m: Add branding how-to
  • We also need zlib, libpng, and cppunit for CODA-M
  • Update WebView2 to the current version, as VS suggests
  • Start adding a native menu to CODA-W
  • coda-m: Show the state of Bold/Italics/Underline in the menu
  • Don't use a hardcoded document name but make the File>Open menu entry work
  • Hide also the XAML menu once cool.html is displayed with its own menu
  • coda-m: Implement printing from the application's menu
  • coda-m: Trigger printing also from the notebookbar
  • Add File>Quit
  • Send the PRINT message also in the CODA-W case
  • Drop unused KitWebSocketHandler::getKitId()
  • Fix comment
  • Improve the "app document id" handling in CODA-W
  • coda-m: Make the printing work
  • coda-m: Avoid executables from core & limit resulting architecture
  • coda-m: Enable Hardened runtime, to be able to build a package
  • Implement File > Print in CODA-W
  • Fix CODA-W build after rebase
  • Show a print dialog
  • coda-m: Implement clipboard Copy (no Paste yet)
  • coda-m: Implement clipboard Paste
  • coda-m: Enable/disable the Cut/Copy/Paste in the macOS menu
  • Use Util::getProcessId() instead of getpid()
  • Add RegexUtil.cpp
  • OutDir should end with a backslash
  • Copy browser/dist to the output directory and use it from there
  • Copy also the LO instdir into the app folder and use it from there
  • Don't use Windows Forms API to get the folder we are running from
  • Bin the temporary DllImportTest thing
  • coda-m: Remove the 'MODIFIED (true|false)' message again
  • coda-m: Fix crash when auto-saving non-modified document
  • Add initial Microsoft Store packaging tooling attempt
  • Break some overly long comment lines to make them easier to read
  • Avoid overlapping identification with Collabora Office
  • Add -nopdb option to not collect PDB files
  • Bypass Linux-specific code on non-Linux
  • Mention possibility of building core using WSL instead of Cygwin
  • Presumably we need the same 'await check_' for CODA-W, too
  • Initial trivial implementation of copy (to clipboard) for CODA-W
  • Implement also paste (from clipboard) in CODA-W
  • Teach autotools about missing Syscall source & header.
  • Fix mobile compilation warnings.
  • Re-factor Makefile rules to build samples, and add a run: target.
  • initial CODA-Q Qt6 WebEngine app
  • CODA-Q: mention Meta-Object Compiler requirement in the README
  • Use correct byte length for wide char string
  • Put also rich text on the clipboard
  • Tweak configure.ac for openSUSE's Qt6.
  • gtk: switch to GApplication for a factory model
  • coda: None of the flavors has been migrated away from FakeWebSocket yet
  • CODA-Q: get userInterfaceMode from params
  • CODA-Q: support copy / clipboard write
  • CODA-Q: qt app needs this fix as well probably
  • coda-m: Perform cleanup when closing document's window
  • CODA-Q: support paste from the clipboard
  • Fix typo: s/CLIBOARDREAD/CLIPBOARDREAD
  • Fix documentation for CHK_FILE_VAR
  • Link with ws2_32.lib and iphlpapi.lib also in the Release configuration
  • Define POCO_STATIC in the CODALib project
  • Move ClipboardData to a header of its own
  • No need to set the NewWindowRequested delegate
  • Add thread name and id implementations for Windows
  • coda-m: The app should quit when all the windows are closed
  • Stylistic consistency fix
  • Add workaround for problem in compilation against Poco 1.14.2 with Visual Studio
  • Minor update to the CODA-W README.md
  • coda-m: Graceful shutdown when there is no document open
  • coda-m: Tear down the documents first, then close COOLWSD
  • Clean up _isMessageOfType() a bit, and improve logging
  • Switch to only unmanaged C++ Win32 code in CODA-W
  • Also accept document pathname on command line
  • Tiny cleanups, no semantic change
  • Run CODA.cpp through clang-format
  • Add .rtf and .txt
  • We don't want an extra close button
  • Bin two leftover FIXME comments
  • Use the MultiThreadedDebugDLL runtime in the Debug|x64 confíguraion
  • Handle the window being closed
  • Put the document basename (including extension) in the window title bar
  • Simplify, use Poco::Path::getFileName()
  • Add missing parentheses to ifdef
  • Document file name should come first in the title bar
  • CODA-Q: use the ios approach for multi-documents
  • Show the three kinds of documents in the file open dialog at the same time
  • Add a simple command-line tool to manipulate the Windows clipboard
  • Ignore bogus command-line arguments from debugging the JavaScript in VS
  • Handle more clipboard formats in do_clipoard_read()
  • If the file open dialog is cancelled, just exit
  • clang-format
  • Add a few Windows clipboard formats that already are MIME types
  • Simplify Cut, Copy, and Paste operations in CODA-W
  • CODA-Q: fix deadlock on lok::Office::runLoop
  • CODA-Q: create a first proof of concept for single process multi-docs
  • Don't crash if we got a null string from lok::Document::getClipboard()
  • Fix build after rebase
  • coda-m: Use the iOS/Qt approach to multi-documents on macOS too
  • Add more sad complications to CODA-W clipboard code
  • Default to native code debugger in the debug configuration for CODA-W
  • Make CODA-W work again after rebase
  • fix eslint error 'ev' is not defined
  • multidoc: Tell core's Yield we always have some LOKit events
  • Add DocumentData::count() so that CODA-W can exit when last document is closed
  • Fix weird confusion in the CODA-W clipboard JS
  • Fix assert message: MOBILEAPP is more than iOS
  • Initial multiple document implementation for CODA-W
  • Add a separate tiny program to print a PDF file to CODA-W
  • Rename PrintPDF to PrintPDFAndDelete
  • Delete file after printing it
  • We hardly need to produce a reference assembly
  • Run PrintPDFAndDelete from CODA
  • Exit even more bluntly
  • Also delete the temporary directory that contained the PDF
  • Build of PrintPDFAndDelete was missing for the Release configurations
  • Make it explicit that LO_PATH should not be used at run-time in CODA-W
  • Use xcopy instead of a elements to copy the lool and lo trees
  • Add the PostBuildEvent to all configurations/platforms
  • Reduce duplication in the CODA-W solution file
  • Bin leftover code that is in #if 0
  • Fix race condition by simplifying code
  • Fix and simplify logging in CODA-W
  • Bin leftover silly testing LOG_ERR()
  • Minor edits, add 'release' sample autogen.input
  • Fix thinkos
  • Fix path to CODA.sln
  • Add msbuild notes
  • coda-m: Log.cpp has been split/renamed to Log-common.cpp and Log-poco.cpp
  • Consolidate the KitSocketPoll initialization code
  • For consistency, return true also in the Windows app specific cases in filterExecCopyPaste()
  • Avoid double paste in the Windows app
  • Handle also the ERR and DBG messages from JS
  • coda-m: Fix build after rebase
  • Adapt --enable-qtapp to "Fix and simplify logging in CODA-W"
  • CODA-W is "desktop" (not "mobile" or "tablet") and without on-screen keyboard
  • Don't show the document name field in the toolbar for CODA-W
  • Add workaround where we have one CODA process per document
  • Run through clang-format
  • Bypass LogUiCommands code when Util::isMobileApp()
  • Set focus to the WebView2 in CODA-W when necessary
  • Make CODA-W "DPI aware"
  • coda-m: Allow specifying POCO includes & libs in configure
  • coda-m: Prefer the static zstd
  • Writing to stdout or stderr is futile in a GUI Windows app
  • Avoid variable for a value used only once
  • Use 'Save As' instead of 'Download' consistenly in mobile apps
  • Clean up the Save As menu for CODA-W a bit
  • Start implementing "Save As" in CODA-W
  • Add possibility to create new documents to CODA-W
  • Implement Save As in CODA-W
  • Revert accidentally committed temporary hardcoded log level as "trace"
  • Handle buffering of several messages in StreamSocket for MOBILEAPP
  • No need for ONE_PROCESS_PER_DOCUMENT workaround now
  • Improve copy/paste of spreadsheet sections in CODA-W
  • Use system clipboard for paste when newer than the internal in CODA-W
  • coda-m: Default to larger & nicer window
  • Make ChildSession::insertFile() work also on Windows
  • CODA-Q: add fileopen interaction
  • CODA-Q: support downloadas
  • CODA-Q: create environment variable for overriding TOPSRCDIR
  • CODA-Q: remove menubar, add open interaction via notebookbar
  • CODA-Q: better initial window dimensions
  • CODA-Q: avoid mobile onscreenkeyboard specific touch behaviour, like CODA-W
  • CODA-Q: make the qt window frameless
  • CODA-Q: avoid double paste
  • CODA-Q: add very basic print support
  • Also the "slidelayer:" message is binary
  • Keep list of which message types are binary in a common place
  • Also pass the Platform parameter to msbuild
  • CODA-W: mention in readme that core build under WSL was possible
  • CODA-W: .gitignore
  • CODA-W: copy only the necessary files under cool/
  • There is nothing called SRC_TS_JS_DST
  • Use the formularesfapopen icon also for .uno:Open
  • Add Ctrl+O shortcut for CODA
  • Enforce bundling of JS and CSS files for CODA-W in the --enable-debug case
  • Implement clicking the branding icon in CODA-W
  • coda-m: Remember the window size and position per document
  • coda-m: Present the Open panel at startup
  • Set size of CODA-W document window to 90% of monitor width and height
  • coda-m: Quit when the last Document window is closed
  • Add another MOC location to search path
  • CODA-Q: disable frameless window bits for now to fix crasher in flatpak
  • Implement Ctrl+W to close the document window in CODA-W
  • CODA-Q: Create properly encoded file URL
  • CODA-Q: There should be no more need for realpath(3) here
  • CODA-Q: Use core's default UserInstallation
  • CODA-Q: add flatpak manifest
  • Handle Ctrl+Shift+V differently from Ctrl+V in CODA-W
  • coda-m: Fix build
  • Give better message for what is likely a document locked by an LO process in CODA-W
  • coda-m: Sort out various corner cases when opening documents
  • coda-m: Simplify the way we close with no documents or windows
  • Add litecask.h: A C++ single-header persistent key-value store
  • Avoid compiler warnings
  • Use _BitScanForward and _BitScanReverse64 instead of _tzcnt_u32 and _lzcnt_u64
  • Persist the size (not position) of the CODA-W window of a document
  • CODA-Q: Doesn't need LibreOfficeIpc0 dbus name
  • coda-m: Add dumpWsdState.cpp to build, needed for linking now
  • Use std functionality instead of intrinsics
  • Add dumpWsdState.cpp
  • No need to have CODA.aps in git
  • CODA-Q: make menubar responsive when viewing PDFs
  • CODA-Q: build dumpWsdState.cpp
  • Use the application icon for the CODA-W document windows
  • Tested running the package_appx.py script again
  • Fix gtkapp build.
  • CODA-Q: correct leftover make instruction in the README
  • *Remove --enable-coda in favour of individual --enable-app switches
  • coda-m: Use the app's name in the main menu where expected
  • Use the configured app name instead of hardcoded 'CODA'
  • Use parentheses so that it does what I meant
  • Show app name also in the file open dialog title bar
  • Remove more unneeded boilerplate from CODA.rc
  • Show our icon in the Alt-Tab switcher for the CODA-W file dialog, too
  • CODA-Q: update README, include flatpak instructions
  • CODA-Q: add flatpak dirs to .gitignore
  • Enable l10n in CODA-W
  • CODA-Q: pam is not a dependency
  • CODA-Q: Use assemble-flatpak.sh
  • Add temporary translations here for the few CODA-W-specific UI strings
  • CODA-Q: flatpak: poco build config
  • Two more string needs (temporary) translation
  • Don't use network for qt/flatpak/org.collabora.CODA.json libreoffice module
  • German and Polish translation
  • Add Japanese translation
  • Hungarian translation
  • CODA-Q: flatpak: zstd build config
  • create links only when targets exist
  • CODA-Q: flatpak: rsync is a build-time dependency, clean it up
  • CODA-Q: flatpak: cppunit is a build-time dependency, clean it up
  • CODA-Q: flatpak: only stage include/LibreOfficeKit, not all include dir
  • CODA-Q: flatpak: python-lxml and python-polib are a build-time dependencies, clean them up
  • CODA-Q: flatpak: add vendor and app name to build-commands of collabora-online
  • CODA-Q: flatpak: combination of original flatpak config and CPLinux-LOKit config for core
  • CODA-Q: flatpak: Java is not a dependency
  • CODA-Q: enable UI localization
  • CODA-M: attempted build fix
  • CODA-Q flatpak: --enable-symbols for libreoffice module
  • CODA-Q: Some functions only need local linkage
  • Add pt and pt-BR
  • Add a File > New menu to CODA-W
  • CODA-Q: Fix race between initial URL and coolclient messages
  • Log an error when the doc ID is not read as expected
  • CODA-Q: set application name and window icon
  • There is no config in case of mobile app
  • Just using UTF-16 literals directly works fine
  • Bin the temporary and ifdeffed-out ONE_PROCESS_PER_DOCUMENT code
  • CODA-Q: Avoid getenv vs. setenv race
  • Rename Save As menu to Save a Copy As for CODA-W
  • CODA-Q: flatpak: add info URL (for top left Collabora Online logo)
  • Add icons for 'New' button
  • Use the new New icon
  • Add the CODA-W New menu to spreadsheet and presentation document windows, too
  • If we abort always for iOS in ChildSession::downloadAs(), do it right away
  • CODA-W: app icon
  • Bypass unnecesary registerdownload: thing for CODA-W
  • CODA-Q: Work around qtwebchannel bug affecting clipboard code
  • Add zh-CN and zh-TW
  • Don't add an extra zero char/wchar_t terminator to data put on the clipboard
  • macOS: Honor the name & bundle name provided during ./configure
  • Don't fail an assertion or crash if a DocumentData is deallocated twice
  • Handle CLIPBOARDWRITE like COPY in CODA-W
  • CODA-Q: Fix flatpak ID
  • Try harder to avoid crashes in CODA-W when closing document windows
  • CODA-Q: Strip out all desktop actions for now
  • Make --with-app-name mandatory for CODA-W and use it as the executable name
  • CODA-Q: disable debug by default - use --debug to re-enable it.
  • CODA-Q: Iterate via const reference
  • CODA-Q: flatpak: cleanup section for libreoffice, a broken link and LOKit headers
  • CODA-Q: flatpak: remove Noto fonts
  • CODA-Q: flatpak: add branding
  • CODA-Q: flatpak: do not download unused 3rd party tarballs
  • CODA-Q: add qt/flatpak/repo to .gitignore
  • CODA-Q: implement handler for HYPERLINK message
  • macOS: Avoid bogus Info.plists from various sources
  • macOS: Exclude also 'PlugIns'
  • macOS: All sorts of changes to pass validation & upload checks
  • CODA-Q: flatpak: add DPOCOUNBUNDLED=ON to Poco build config
  • CODA-Q: Add how to debug with DevTools to README
  • PCRE1 is officially obsolete and unmaintained
  • Fix drag-and-drop of image onto CODA-W
  • Add cs and es translations to CODA-W
  • Fix link flags in case of unbundled Poco
  • CODA-Q: flatpak: do not install coda binary 2x times
  • Add tr translation to CODA-W
  • Avoid a few tests when configuring for CODA-W
  • No need for intrisics, we build CODA-W with the Clang toolset
  • Fix test syntax error
  • Avoid a few tests when configuring for CODA-M
  • CODA-M: SSL is unused in desktop app, do not link it
  • CODA-M: pam is not a dependency
  • macOS: Link against the static libpng
  • macOS: Use the --with- configure switches for libpng and zstd*
  • macOS: Update the build instructions
  • CODA-M: enable UI localization
  • macOS: Allow also liblibpng.a (in addition to libpng.a) as built by the core
  • CODA-Q: respect LC_ALL, that we do not force any more during coolwsd init
  • macOS: Re-sign the core libs only for Release
  • CODA-Q: stopServer on exit
  • CODA-Q: Use the COOLWSD::innerMain shutdown code
  • CODA-Q: revert now disabled frameless bits
  • CODA-Q: map Ctrl+W to close window
  • macOS: Create new document (using a trivial HTML window)
  • macOS: Check if the --with-lo-path points to the right folder
  • coda-q: persist UI settings
  • coda-q: create Application class with static globalProfile
  • coda-qt: use default appData and cacheData paths
  • coda-qt: load welcome slideshow
  • skip initializing UI component for welcome slideshow
  • show svg overlay until welcome slideshow is loaded
  • use current Welcome.js module to trigger the slideshow
  • coda-qt: add static files for welcome slideshow
  • coda-qt: added missing header after rebase
  • coda-qt: close window on "BYE" message
  • Handle the WELCOME message in CODA-W
  • Store the persisted data from C++ code in CODA-W in %LOCALAPPDATA%
  • slideshow: fix js error
  • CODA-Q: fix binary message handling in send2JS
  • Prevent a document window from being resized ridiculously small in CODA-W
  • Use a folder in %LOCALAPPDATA% as the WebView2 "user data folder" in CODA-W
  • macOS: Implement "Save As" (Duplicate/Rename/Move To)
  • macOS: Show the "Save As" dialog when "Save" is triggered from JS
  • CODA: Avoid race in which thread destroys the KitSocketPoll instance
  • Hack to let the user choose file name and folder for PDF export in CODA-W
  • Make the CODA-W PDF export file save dialog hack a bit more secure
  • Rename the "Save a Copy As" menu in CODA-W to "Export as"
  • CODA: Start documents as read-only
  • translation: add a python script to extract text from odp file
  • Clean up document and app lifecycle in CODA-W
  • fix: slideshow doesn't load
  • script: don't add duplicates to POT file
  • translations: added welcome-slideshow po template
  • rename: extract_odp_text.py -> extract_odf_text.py
  • translations: added empty welcome-slide-*.po files
  • coda-qt: fix fullscreen presentation
  • Ignore silly "resource fork" files with names starting with "._"
  • Allow the WebView2 to go full-screen
  • Don't crash in CODA-W if the welcome slideshow doesn't exist
  • macOS: Fix the saving on close
  • CODA: allow "CloseWin" and "Open" command in readonlymode
  • CODA-M: Adjust Info.plist to handle more file types.
  • CODA-M: Remove extra close button.
  • slideshow: test: added "de" translation from deepl
  • script: added python script to add translation to odf files
  • Handle persisting also a maximised document window in CODA-W
  • translation: fix typo
  • Welcome: Hungarian translation
  • CODA-M: Set a minimum size on the document window.
  • CODA-M: Hide duplicate filename in header.
  • CODA-Q: the name of the binary is coda-qt currently
  • script: autodetect available locales
  • Welcome: Czech translation
  • coda(file-tab): introduce new backstage file tab
  • CODA-Q: fix: welcome-slideshow.odp doesn't pass correct language
  • Makefile: automate welcome-slideshow-show.odp translation updation
  • macOS: Perform the NSDocument's write more reliably
  • CODA-Q flatpak: enable debug information
  • macOS: Don't copy Info.plist to Resources/
  • Fix crash caused by QMetaObject::invokeMethod with dangling receiver
  • CODA-Q: add .fenv to gitignore
  • CODA-Q: use app name when logging
  • CODA-Q: use more Poco::URI
  • CODA-Q: use a temp file for the currently edited file similar to CODA-M
  • CODA-Q: add support for new file and save-as
  • CODA: use "Latest Updates" button to show welcome slideshow
  • Makefile: update welcome-slideshow.odp path
  • CODA: No need to "rescue" the clipboard in any mobile app
  • macOS: Fix presenting a presentation
  • macOS: Delete obsolete slideshow code
  • macOS: Load the welcome-slideshow.odp when WELCOME message appears
  • WaE: unused function 'isBinaryMessage' [-Werror,-Wunused-function]
  • CODA-Q: Add -fPIC bits to configure line in qt/README.md
  • macOS: Make branding really optional
  • BackstageView: whitespace changes
  • BackstageView: enable l10n
  • macOS: Welcome slideshow now runs as a slideshow
  • CODA-W: fix AppxManifest.xml data
  • CODA-W: fix AppxManifest.xml data (2)
  • CODA-Q: localization for Qt dialogs
  • Update German welcome translations
  • CODA-Q: make window frameless for welcome-slideshow
  • CODA-Q: flatpak: do not separate locales
  • Add click handlers to open version links in new tabs in AboutDialog
  • Hide separator in slide show presentation for mobile app
  • CODA: set batch option for welcome slideshow
  • CODA: show placeholder svg until welcomeslideshow is loaded
  • CODA-Q: remove loadingOverlay
  • CODA: removed welcome.svg
  • CODA: enable "Present in window" button
  • CODA: welcome: dispatach "presentinwindow" instead of fullscreen
  • Don't call std::abort() on unexpected failures without showing a MessageBox first
  • Call CoInitializeEx() earlier, before SHGetKnownFolderPath()
  • CODA-QT: remove unnecessary SVG widget requirement
  • CODA-Q: show document name in window title
  • Fix passing a document file name on the command line for CODA-W
  • Handle multiple document file names on the command line in CODA-W
  • macOS: Bundle also context-menu-icons font from jquery-contextmenu
  • FakeSocket - add a 'Queued' write wrapper.
  • CODA-Q - cleanup message pumping thread on socket close & error.
  • FakeSocket connection can fail, so return a boolean if so.
  • FakeSocket - detect and warn on racing connections.
  • macOS: Run 'make' as part of the build in Xcode
  • CODA-Q: Release document broker when window is closed
  • CODA: remove welcome translations
  • macOS: Don't set "compact_fonts", it produces unexpected JSON
  • CODA-M: Remove the exec from the script.
  • CODA-Q: Add another path to look for lrelease and lupdate.
  • Revert accidentally pushed forced logging at "trace" level
  • Localize help for the apps
  • CODA-Q: properly URL encode cool html path
  • CODA-Q: make single instance run at a given time using DBus
  • CODA-Q: Update window title with file name in saveDocumentAs function
  • Remove base64 encoding for filename in saveDocumentAs function
  • Introduce an "isnewdocument" parameter to cool.html
  • CODA: Add default templates to Backstage + Prettier formatting updates
  • CODA-M: Fix core build instructions
  • Handle the "uno .uno:NewDoc" messages from Control.BackstageView.ts*
  • Adapt to the even newer "newdoc" message now used instead of "uno .uno:NewDoc"*
  • Allow overriding log level in CODA-W with an environment variable
  • CODA-Q: Add adaptive minimum window dimensions based on screen resolution
  • Show the "The document is probably locked ..." message in all CODA variants
  • CODA-Q: Remove parent parameter from WebView.
  • CODA-Q: use existing new document logic for "newdoc" message
  • CODA-Q: deploy blank templates properly
  • CODA-Q: support --writer, --impress, --calc additionally
  • CODA-Q: do not open new files in read-only
  • macOS: Make new documents editable right away
  • macOS: Remove unneeded entitlements
  • CODA-Q: flatpak, build core with templates
  • Don't render tiles anymore after disconnect
  • CODA-Q: Clean up QWebEngineView more thoroughly
  • CODA-Q: Avoid race when app2js thread accesses Bridge's non-static data members
  • CODA-Q: Treat unexpected close of app2js thread more gracefully
  • Delete the dummy dll files from core in the --enable-mergelibs case
  • CODA-Q: flatpak: use dictionaries from org.kde.Platform
  • CODA-M: fix backstage view visibility on mac
  • CODA: Disable file tab tooltip for CODA compact view
  • CODA(backstage): hardcode purple accent palette
  • CODA(backstage): restyle back control and add navbar close icon
  • CODA(cosmetic): rename backstage title to “Collabora Office”
  • CODA-Q: Add missing object file
  • The product name is not for l10n
  • More product names that are not for l10n
  • CODA-W: add missing wsd/SlideCache.cpp to project
  • macOS: Fix build
  • CODA-M: Used a tabbed document interface.
  • macOS: Limit the Save As... only to the current document type
  • CODA(backstage): Introduce icons for tabs and title
  • CODA: welcome: don't show black screen loader
  • CODA: add initial keyboard focus on document
  • CODA-Q: update webview zoom based on gnome font scaling
  • CODA: welcome: wait of transition to complete
  • CODA-Q: set user name to nullptr similar to CODA-W and CODA-M
  • CODA-Q flatpak: Add back calc, impress, writer desktop actions
  • CODA-Q: Disable context menu in read-only mode
  • refactor create-l10n-all-js.pl and add/remove languages
  • CODA-Q: update UI language list for flatpak
  • CODA: remove 'insert', 'edit', 'editmenu', 'changesmenu'
  • CODA-M: Update create new document html.
  • macOS: Read the create-new-document HTML from the bundle, instead of inline
  • macOS: Bump version to 24.05.6
  • CODA-Q: get user name from the system
  • CODA-W: get user name from the system
  • macOS: Don't show the file open dialog when opening files from Finder
  • CODA(backstage): Add dynamic export options by document type
  • CODA(backstage): hide Home tab and apply Prettier formatting
  • CODA(temp): show all default document templates in new tab
  • macOS: Finalized look of the New document dialog
  • CODA-M: Use relative path for new html file.
  • CODA(backstage): refactor file dialog handling to use QFileDialog instance
  • CODA(backstage): refactor printDocument to use QFileDialog instance
  • CODA(backstage): refactor promptSaveLocation to use QFileDialog instance
  • CODA(backstage): refactor download as handling logic to use QFileDialog instance
  • CODA-M: Remove/hide Share from File menu.
  • CODA-M: Hide more menu items that aren't working right just yet.
  • CODA-W: avoid the risk of static buffer trap
  • CODA-M: get user name from the system
  • macOS: The welcome slideshow should have no decorations & defined size
  • macOS: Implement the downloadas message
  • macOS: Intercept 'uno .uno:Open' to present the file picker
  • macOS: Implement handling of 'newdoc' message
  • CODA(backstage): show only app-specific templates in template search
  • CODA(backstage): show blank templates when no custom templates exist
  • CODA(backstage): add basic info properties, remove broken action buttons
  • CODA(backstage): fix style of template card
  • CODA(backstage): set order for templates
  • Revert "CODA(backstage): show only app-specific templates in template search"
  • Re-structure CODA-W installation to put exe in same folder as DLLs of core
  • Fix the path to the CODA-W templates after previous commit
  • CODA: welcome: fix visible border in slideshow iframe
  • CODA-Q: welcome: fix: blueish border on top and left side of the slideshow
  • CODA: welcome: fix: slideshow quits immediately after last slide transition
  • CODA-W: follow-up to 'Re-structure CODA-W installation'
  • CODA: Fix template button top border hiding when hovering.
  • use existing Util::wide_string_to_string() function
  • Calc: When hiding backstageview refresh calc tiles.
  • CODA-W: follow-up to 'Re-structure CODA-W installation' (2)
  • CODA-W: follow-up to 'Re-structure CODA-W installation' (3)
  • CODA-W: follow-up to 'Re-structure CODA-W installation' (4)
  • CODA-W: follow-up to 'Re-structure CODA-W installation' (5)
  • I cannot change distname to CollaboraOfficeDesktop, too long.
  • Revert "I cannot change distname to CollaboraOfficeDesktop, too long."
  • Use core's default UserInstallation for CODA-W, too
  • CODA: Temporarily hide Calc default template due to missing thumbnail
  • use correct isReadOnlyMode function to check for read only mode
  • CODA-Q: Honor --disable-debug => -DNDEBUG
  • CODA-W: add filetype associations
  • CODA-Q: Avoid Poco::InvalidAccessException
  • add license info to About box
  • CODA-Q setClipboard: forward all formats from Qt to LOK, not just plain text
  • CODA-Q: differentiate manual saves from autosaves, prevent unexpected save dialog
  • Add License Information link to About box of apps
  • The 'License Information' string can come from core with _UNO()
  • Update UNO command translations
  • Get translation of 'Open' in backstageview from UNO commands
  • Update translations from core, especially for 'Info' on backstageview
  • CODA-Q: handle the LICENSE message
  • Fix JSON syntax error for some Hebrew strings
  • CODA-W: handle the LICENSE message
  • CODA-Q: WebView::_webView is never null
  • CODA-Q: Destroy QWebEngineView when destroying WebView
  • CODA-M: handle the LICENSE message
  • CODA-W: remove Math and Base file type associations
  • CODA(backstage): disable save button when document is unchanged
  • Add Draw as application and start param.
  • CODA-Q: update flatpak branding and description.
  • CODA-Q: update flatpak branding and description more.
  • macOS: Define NDEBUG in the Release configuration
  • Enhance menubar item visibility logic by hiding separators when adjacent items are not visible in readonly mode
  • CODA-M: bump MARKETING_VERSION to 25.04.7 to match the reality
  • remove commented out code line that I left there by mistake
  • CODA: fix: remove hairline border around slideshow iframe
  • CODA-W: open welcome slideshow in fullscreen
  • CODA-W: close window on "BYE"
  • Insert CODA 3rd party license text to main license file
  • CODA-Q: flatpak: generate final license text
  • Revert "CODA-W: open welcome slideshow in fullscreen"
  • CODA-Q: prompt on window close when document has unsaved changes
  • Post the explicit WM_CLOSE only for the welcome slideshow
  • Display the welcome slideshow without window decorations and at 16:9
  • CODA-Q: fix crash on opening docx, wasModified is not always provided
  • Revert "CODA-Q: flatpak: generate final license text"
  • Reapply "CODA-Q: flatpak: generate final license text"
  • extra windows, like presenter console will have no bridge
  • typo: Textdocument -> Text Document
  • Impress: Set partsFocused to false to prevent accidential deletion.
  • CODA-Q: update Qt translations
  • macOS: Fix beeping & inability to enter text sometimes
  • CODA(ui): replace download with export in Export Document description
  • case sensible filesystem fix
  • CODA-Q: prevent unsaved new document from exiting
  • CODA-Q: same list of languages as in other build configs
  • CODA-Q: allow opening multiple files
  • CODA-Q: Detect Dark mode of system in CODA
  • Allow selecting multiple documents to open in the file open dialog in CODA-W
  • flatpak: Update runtime to 6.10
  • flatpak: Remove system bus permission
  • CODA-Q flatpak: Take branding from tarball
  • update flatpak dependencies in README.md
  • CODA: Copy templates to dist and replace manifest JSON with JS in build
  • Fix running generate-templates-manifest.js work also when building CODA-W
  • CODA-Q flatpak: make sure to run autoreconf
  • CODA-Q: flatpak: versioned collabora-office-brand tarball
  • Clarify that --with-lo-path is a Windows format path for CODA-W
  • Fix warning -Wsign-compare
  • CODA-W: Reuse the common implementation of the check if the message is binary
  • Detect a dark desktop theme also on Windows
  • Update WebView2 to the latest stable version
  • Fix thinko
  • Add Galician (gl) translation
  • refactor!: delete gtk app
  • Make comment more accurate again
  • Visual Studio seems to want to add Natvis elements to the project filters file
  • CODA-Q flatpak: remove krb5 and gvfs
  • CODA-Q flatpak: remove dbus com.canonical.AppMenu.Registrar
  • CODA-Q: Fix makefile warning
  • mobile platforms trample on original window.open
  • inherit from QWebEngineView to see window open attempts
  • get some sort of presenter console window visible
  • fullscreen
  • enable presenter console in notebookbar
  • close window when js requests that
  • put the presenter console on a different screen than presentation by default
  • add an exchange monitors button
  • do something on EXCHANGEMONITORS
  • rotate through monitors on EXCHANGEMONITORS
  • allow macos presentation to go full screen
  • stub the thing that get the new window request
  • get macos presenter console window visible
  • restoring the original monitor and size/position on macox is tricky
  • implement exchange monitors for macos
  • don't need to switch to normal on exchanging monitors
  • use a separate window for full screen presentation using console
  • rework pres window organization for calling multiple times
  • split console close/exit
  • split out an arrangePresentationWindows
  • auto arrange monitors on screen/remove add
  • float the presentation console over the presentation if there is only one screen
  • add an explicit showNormal/showFullScreen
  • macos: reliably rearrange windows on removing/adding monitor
  • forget about consolewindow when presenter console closes
  • create/destroy presentation window under our own control
  • windows: implement exchange monitors
  • restore orig pos/size in two steps
  • windows: rearrange presentation windows on monitor change
  • leave full-screen on monitors-change before rearrange
  • forget about console window handle once we close it
  • a good explanation of use
  • clean up console webviews on ncdestroy
  • Allow choosing file name and location when creating a new document in CODA-W
  • CODA: Add starter screen flow and UI adjustments
  • CODA: Consolidate loadStarterScreen into WebView::load
  • add presenter console to classic (used in RO) menu for desktop
  • Fix welcome slideshow when CODA-W gets the document on the command line
  • Respect darkTheme=true query parameter in loading screen.
  • *Add .md to the default list of file types in the open dialog in CODA-W
  • implement the Log-common.cpp/Log-poco.cpp split in wasm project
  • CODA-M: update branding instructions
  • macOS: Use the language-agnostic new document templates
  • CODA-Q: Now provide and install appstream, desktop file and icons
  • macOS: Fix missing welcome slideshow in the CI builds
  • Use the better blank documents in CODA-W, too
  • *Don't accidentally exclude .components files in the xcopy.excludes file
  • mainKit is needed for the coolwsd too
  • Don't confuse mainKit and loKit
  • avoid Crash on startup of CODA-Q
  • macOS: Rework the new document dialog to use Backstage instead
  • macOS: Make the Backstage actually work
  • macOS: Present the Backstage on startup, instead of the file picker
  • add alternative switch monitors icon for the presentation snackbar
  • show switch monitor on presentation bar too
  • allow swap screen on absense of console
  • show button for fullscreen mode
  • allow swapping monitors without presenter console too
  • Use "Backstage" to select template or open a new file dialog in CODA-W
  • CODA-Q flatpak: Remove unecessary steps
  • The presenter navigation bg stops at the transition button
  • CODA-M: setup fontconfig
  • Find QT6 tools under Ubuntu as well
  • CODA-Q flatpak: use buildsystem autotools for lokit
  • Ran make prettier-write and commited the result.
  • Moved Windows README to collaboraonline.github.io
  • notebookbar: expand/collapse tooltip update
  • notebookbar: use heuristic of isDesktop to select tooltip
  • Revert "CODA-M: setup fontconfig"
  • CODA-M: replace 'coda' to 'ProductName' in storyboard for clarity
  • CODA-M: Enable l10n of the storyboard
  • Translated using Weblate (Albanian)
  • Translated using Weblate (Polish)
  • Translated using Weblate (Galician)
  • Translated using Weblate (Ukrainian)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Catalan)
  • Translated using Weblate (Slovenian)
  • Translated using Weblate (Irish)
  • Translated using Weblate (German)
  • Translated using Weblate (Czech)
  • Translated using Weblate (Esperanto)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Welsh)
  • Translated using Weblate (Esperanto)
  • Translated using Weblate (Croatian)
  • Translated using Weblate (Armenian)
  • Translated using Weblate (Hungarian)
  • Translated using Weblate (Albanian)
  • Translated using Weblate (Polish)
  • CODA-M: tools for merging back translations of the storyboard
  • CODA-M: add CFBundleLocalizations to Info.plist
  • Bin unneeded translations
  • The default file open dialog title is good enough
  • No "new" buttons in the file open dialog, thus bin the dialog event handler
  • Get rid of the last translations in CODA.cpp (CODA-W)
  • Set FONTCONFIG_FILE so that fontconfig finds fonts.conf
  • sheet list context menu: tolerate readonly toggling.
  • context menu: tolerate read-only toggling on calc col/row headers.
  • CODA-Q flatpak: Rename the app to com.collaboraoffice.Office
  • macOS: Remove x86_64 from the EXCLUDED_ARCHS
  • It is better to set just the FONTCONFIG_PATH env var
  • CODA(backstage): Fix Backstage view not visible for File tab
  • macOS: Make sure even libs like libuno_cppuhelpergcc3.dylib.3 are signed
  • CODA-Q: Fix starter backstage translation issue
  • CODA-Q: flatpak: use the new CPLinuxQtFlatpak.conf
  • Translated using Weblate (Hebrew)
  • Translated using Weblate (Croatian)
  • Translated using Weblate (Czech)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Slovenian)
  • Translated using Weblate (Irish)
  • Translated using Weblate (Czech)
  • Translated using Weblate (Czech)
  • Translated using Weblate (German)
  • Translated using Weblate (Turkish)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Ukrainian)
  • Translated using Weblate (Armenian)
  • Translated using Weblate (Italian)
  • Update Qt app translations for Weblate
  • Translated using Weblate (Hungarian)
  • CODA-Q: flatpak: update brand package for 25.04.7.3 release
  • Don't use actual template document types for now
  • Simplify creation of browser/dist/templates
  • CODA-Q: handle relative template file paths for newdoc
  • Fix copying text to clipboard in CODA-W
  • CODA-Q flatpak: Run make clean on collabora-office
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Galician)
  • Translated using Weblate (Galician)
  • Translated using Weblate (Czech)
  • Translated using Weblate (Catalan)
  • Translated using Weblate (Polish)
  • Translated using Weblate (Ukrainian)
  • Translated using Weblate (German)
  • Translated using Weblate (Galician)
  • Translated using Weblate (Spanish)
  • Pass the lang parameter to cool.html also for the "start screen" in CODA-W
  • cool#13770 windows: use LOK's new registerFileSaveDialogCallback()
  • CODA: Improve Backstage UI layout and icons
  • CODA: Add Backstage home screen
  • fix(CODA): background colors for backstage
  • FIX(CODA): template container padding issue
  • CODA(backstage) : fix dark mode issue
  • CODA (backstage): Dynamic SVG icon colors based on tab state and doc-type
  • Revert "CODA-Q: flatpak: use the new CPLinuxQtFlatpak.conf"
  • CODA-Q flatpak: update version to the real one
  • CODA(backstage): Remove duplicate css rules and update icon sizes
  • CODA(Backstage): Home icon alignment and update Open uno command label
  • Remove the now dead code for File > New in CODA-W
  • Revert "Add icons for 'New' button"
  • CODA(Backstage): Add about tab in backstage sidebar
  • CODA-Q flatpak: Improve the appstream file
  • Unify store description
  • CODA-W: do not distribute unused files
  • Use string 'Open' as label, because _UNO('.uno:Open') is 'Open...'
  • Remove 'Open' button from notebookbar, because it's obsoleted by Backstage
  • Remove .uno:Open
  • [hack, do not port to master] keep translations of 'Open'
  • CODA-Q flatpak: Remove 'Desktop' from the application name
  • CODA-W: without python.exe Python won't work
  • CODA-W: remove unnecessary .exe files from $(OutDir)
  • Fix initial font size when switching to compact view.
  • If the desktop theme is dark, use a dark background for windows in CODA-W
  • CODA-Q flatpak: Use resolved URL for screenshots
  • CODA-Q flatpak: use better, versioned names and better descriptions for the screenshots
  • Moved Linux/Qt README to collaboraonline.github.io
  • Moved macOS README to collaboraonline.github.io
  • Build flatpak without templates from LO core
  • In CODA, if document is locked, hide the make-editable button
  • remove 21 byte long dylibs (mergedlibs case)
  • CODA: Align template thumbnails to bottom for consistent layout
  • CODA-Q: Add recent documents tracking with table UI
  • ** CODA-Q: Refactor file opening to use unified coda::openFiles**
  • CODA-Q: Refactor RecentDocuments into namespace & replace int with LibreOfficeKitDocumentType
  • Add FIXME musing about CLIPBOARDREAD in CODA-W
  • refactor!: remove more dead GTK app code
  • Use GCC -mno-direct-extern-access when building an x86/x86_64 coda_qt executable
  • Revert "avoid Crash on startup of CODA-Q"
  • Remove unused bridge global variable (again)
  • CODA-M: Fix opening templates on MacOS.
  • CODA-M: Set the window icon based on what kind of file is currently open.
  • macOS: Fix build after rebase

assert(idToDocDataMap.find(docId) != idToDocDataMap.end());
if (idToDocDataMap.find(docId) == idToDocDataMap.end())
{
// FIXME: Something is wrong, whatever.

Check notice

Code scanning / CodeQL

FIXME comment Note

FIXME comment: Something is wrong, whatever.

Copilot Autofix

AI 4 days ago

In general, to fix this sort of FIXME you either implement the missing logic or, if the comment is obsolete, remove it and make behavior explicit and consistent with the rest of the API. Here, deallocate should handle the “ID not found” case deliberately rather than with a shrugging FIXME.

Best concrete fix here, without changing external behavior drastically:

  • Keep deallocate tolerant of repeated calls (idempotent), so it still returns when the ID is not found.
  • Replace the FIXME with a proper log message that clearly states it’s an unexpected call, instead of a vague “something is wrong”.
  • Clean up the implementation by holding the found iterator once, using it for both deletion and erasure. The existing comment “Does get() really need to called during the destructor?” suggests the get(docId); call is only for side effects or assertions; we cannot safely remove it without more context, so we leave it as-is.
  • We must not change imports; Log.hpp is already included, and we can reasonably assume a logging macro like LOG_WRN or similar exists. To avoid relying on a specific level name that might not exist, the safest standard pattern in this codebase tends to be LOG_ERR or LOG_WRN; since we cannot see others here, we’ll use LOG_ERR to emphasize a logic problem.

Concretely, in common/MobileApp.cpp within DocumentData::deallocate:

  • Replace the FIXME block at lines 47–51 with an if block that logs an error and returns.
  • Simplify the later find/erase to use the iterator retrieved once.

No new methods or definitions are required; we only use the existing LOG_ERR macro from Log.hpp.

Suggested changeset 1
common/MobileApp.cpp

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/common/MobileApp.cpp b/common/MobileApp.cpp
--- a/common/MobileApp.cpp
+++ b/common/MobileApp.cpp
@@ -44,16 +44,16 @@
 
 void DocumentData::deallocate(unsigned docId)
 {
-    if (idToDocDataMap.find(docId) == idToDocDataMap.end())
+    auto it = idToDocDataMap.find(docId);
+    if (it == idToDocDataMap.end())
     {
-        // FIXME: Something is wrong, whatever.
+        LOG_ERR("Attempted to deallocate unknown document ID: " << docId);
         return;
     }
     // Does get() really need to called during the destructor?
     get(docId);
-    auto p = idToDocDataMap.find(docId);
-    delete p->second;
-    idToDocDataMap.erase(docId);
+    delete it->second;
+    idToDocDataMap.erase(it);
 }
 
 int DocumentData::count()
EOF
@@ -44,16 +44,16 @@

void DocumentData::deallocate(unsigned docId)
{
if (idToDocDataMap.find(docId) == idToDocDataMap.end())
auto it = idToDocDataMap.find(docId);
if (it == idToDocDataMap.end())
{
// FIXME: Something is wrong, whatever.
LOG_ERR("Attempted to deallocate unknown document ID: " << docId);
return;
}
// Does get() really need to called during the destructor?
get(docId);
auto p = idToDocDataMap.find(docId);
delete p->second;
idToDocDataMap.erase(docId);
delete it->second;
idToDocDataMap.erase(it);
}

int DocumentData::count()
Copilot is powered by AI and may make mistakes. Always verify output.
// process is called depending on platform and configuration) and non-informative as there
// is just one process in the app anyway.

// FIXME: Not sure why FreeBSD is here, too. Surely on FreeBSD COOL runs just like on Linux,

Check notice

Code scanning / CodeQL

FIXME comment Note

FIXME comment: Not sure why FreeBSD is here, too. Surely on FreeBSD COOL runs just like on Linux,

Copilot Autofix

AI 4 days ago

To fix the problem, we should resolve the FIXME by either (a) changing the platform logic if we know it is wrong or (b) confirming that the current behavior is acceptable and removing the FIXME. Because we must not assume extra information about deployment or change functionality unnecessarily, the best fix here is to accept the existing logic and simply remove the FIXME comment, which is what CodeQL is complaining about.

Concretely, in common/Log-common.cpp, within the prefix function’s #if defined(IOS) || defined(__FreeBSD__) || defined(_WIN32) branch, delete the two-line FIXME comment starting at line 105, leaving the rest of the code exactly as-is. No new methods, imports, or definitions are needed.

Suggested changeset 1
common/Log-common.cpp

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/common/Log-common.cpp b/common/Log-common.cpp
--- a/common/Log-common.cpp
+++ b/common/Log-common.cpp
@@ -102,10 +102,6 @@
         // process is called depending on platform and configuration) and non-informative as there
         // is just one process in the app anyway.
 
-        // FIXME: Not sure why FreeBSD is here, too. Surely on FreeBSD COOL runs just like on Linux,
-        // as a set of separate processes, so it would be useful to see from which process a log
-        // line is?
-
         char *pos = buffer;
 
         // Don't bother with the thread identifier either. We output the thread name which is much
EOF
@@ -102,10 +102,6 @@
// process is called depending on platform and configuration) and non-informative as there
// is just one process in the app anyway.

// FIXME: Not sure why FreeBSD is here, too. Surely on FreeBSD COOL runs just like on Linux,
// as a set of separate processes, so it would be useful to see from which process a log
// line is?

char *pos = buffer;

// Don't bother with the thread identifier either. We output the thread name which is much
Copilot is powered by AI and may make mistakes. Always verify output.

bool platformDependentCheckDiskSpace(const std::string&, int64_t)
{
// FIXME Use the FileUtil-apple.mm instead

Check notice

Code scanning / CodeQL

FIXME comment Note

FIXME comment: Use the FileUtil-apple.mm instead

Copilot Autofix

AI 3 days ago

In general, to fix a FIXME that calls for using another implementation file, we either (a) remove the redundant stub so that the proper implementation is used, or (b) if the stub must remain for build-configuration reasons, adjust the comment and/or behavior so it is no longer a misleading, unfinished placeholder.

Here, we cannot safely rewire build-system logic or see how FileUtil-apple.mm (or .cpp) is integrated. Changing that would require edits outside the shown snippet, which we must avoid. The safest change that removes the FIXME and avoids altering behavior is to update the comment to accurately describe the function as a stub that currently always reports “enough space”. This resolves the static analysis complaint (no more FIXME) without impacting the existing runtime behavior. Concretely, in common/FileUtil-unix.cpp, lines 96–100 are the macOS-specific stub; we leave the function body as-is but replace the // FIXME ... with a neutral explanatory comment such as // macOS desktop currently uses a stub implementation that always reports enough space. No new methods, imports, or definitions are needed.

Suggested changeset 1
common/FileUtil-unix.cpp

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/common/FileUtil-unix.cpp b/common/FileUtil-unix.cpp
--- a/common/FileUtil-unix.cpp
+++ b/common/FileUtil-unix.cpp
@@ -95,7 +95,7 @@
 
     bool platformDependentCheckDiskSpace(const std::string&, int64_t)
     {
-        // FIXME Use the FileUtil-apple.mm instead
+        // macOS desktop currently uses a stub implementation that always reports enough space.
         return true;
     }
 #endif
EOF
@@ -95,7 +95,7 @@

bool platformDependentCheckDiskSpace(const std::string&, int64_t)
{
// FIXME Use the FileUtil-apple.mm instead
// macOS desktop currently uses a stub implementation that always reports enough space.
return true;
}
#endif
Copilot is powered by AI and may make mistakes. Always verify output.
#else
// FIXME: I wonder for which platform this is supposed to be? Android?

Check notice

Code scanning / CodeQL

FIXME comment Note

FIXME comment: I wonder for which platform this is supposed to be? Android?

Copilot Autofix

AI 3 days ago

To fix the issue without changing behavior, we should eliminate the ambiguous FIXME while keeping the existing initialization logic intact. The surrounding #if MOBILEAPP block already contains explicit cases for known platforms, so the remaining #else acts as a generic fallback for any other MOBILEAPP platform. The best fix is to reword the comment to clearly state this purpose rather than flagging it as a pending problem. Concretely:

  • In kit/Kit.cpp, in the #if MOBILEAPP block where LibreOfficeKit* kit is initialized (around lines 4047–4057), replace the line // FIXME: I wonder for which platform this is supposed to be? Android? with a neutral explanatory comment such as // Generic MOBILEAPP fallback initialization for platforms not covered above..
  • Leave the static LibreOfficeKit *kit = lok_init_2(nullptr, nullptr); line unchanged.
  • No additional includes, methods, or definitions are required.

This removes the FIXME while documenting the intended semantics of the fallback branch, satisfying the static analysis requirement and clarifying the code.

Suggested changeset 1
kit/Kit.cpp

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -4053,7 +4053,7 @@
         // For macOS, this is the MOBILEAPP case
         static LibreOfficeKit* kit = initKitRunLoopThread(mainKit).get();
 #else
-        // FIXME: I wonder for which platform this is supposed to be? Android?
+        // Generic MOBILEAPP fallback initialization for platforms not covered above.
         static LibreOfficeKit *kit = lok_init_2(nullptr, nullptr);
 #endif
 
EOF
@@ -4053,7 +4053,7 @@
// For macOS, this is the MOBILEAPP case
static LibreOfficeKit* kit = initKitRunLoopThread(mainKit).get();
#else
// FIXME: I wonder for which platform this is supposed to be? Android?
// Generic MOBILEAPP fallback initialization for platforms not covered above.
static LibreOfficeKit *kit = lok_init_2(nullptr, nullptr);
#endif

Copilot is powered by AI and may make mistakes. Always verify output.
@@ -3223,16 +3251,28 @@
}

return false;
#else
// FIXME - should return true only if there is any input in any of the Kits

Check notice

Code scanning / CodeQL

FIXME comment Note

FIXME comment: - should return true only if there is any input in any of the Kits

Copilot Autofix

AI 3 days ago

To fix this, we need a MOBILEAPP implementation of KitSocketPoll::kitHasAnyInput that returns true only when there is real work or input pending, instead of always true. The non‑MOBILEAPP branch already does exactly that: it checks the current Document for high‑priority core tasks, pending callbacks, items in its queue, and pending data on the wsd socket via poll. On mobile, we may not easily access “all of the Kits” here without additional global plumbing, but we can at least make this instance behave consistently with the desktop branch. That already satisfies the comment’s intent (“only if there is any input”) for the current Kit, and avoids the pathological “always busy” behavior.

Concretely, within KitSocketPoll::kitHasAnyInput(int mostUrgentPriority), we replace the MOBILEAPP #else block (lines 3255–3257) with logic mirroring the non‑MOBILEAPP branch but using only members and methods already visible here. We must not change the #if !MOBILEAPP code and we must not add new includes beyond what’s already present. The new code will:

  • Obtain the current Document via getDocument().
  • If there is a document:
    • If it is loaded and mostUrgentPriority is in the HIGHEST–REPAINT range (0–4), return false (do not interrupt high‑priority core tasks), same as desktop.
    • If it has pending callbacks, return true.
    • Poll the socket with zero timeout and justPoll=true; if there is data, return true.
    • If there are queue items, return true.
  • Otherwise (no document or no pending work), return false.

This preserves existing functionality semantics while removing the FIXME and the unconditional true that caused the issue.

Suggested changeset 1
kit/Kit.cpp

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -3252,8 +3252,41 @@
 
     return false;
 #else
-    // FIXME - should return true only if there is any input in any of the Kits
-    return true;
+    const std::shared_ptr<Document>& document = getDocument();
+
+    if (document)
+    {
+        if (document->isLoaded())
+        {
+            // Check if core has high-priority tasks in which case we don't interrupt.
+            std::shared_ptr<lok::Document> kitDocument = document->getLOKitDocument();
+            // TaskPriority::HIGHEST -> TaskPriority::REPAINT
+            if (mostUrgentPriority >= 0 && mostUrgentPriority <= 4)
+            {
+                return false;
+            }
+        }
+
+        if (document->hasCallbacks())
+        {
+            // Have pending LOK callbacks from core.
+            return true;
+        }
+
+        // Poll our incoming socket.
+        int ret = poll(std::chrono::microseconds(0), /*justPoll=*/true);
+        if (ret)
+        {
+            return true;
+        }
+
+        if (document->hasQueueItems())
+        {
+            return true;
+        }
+    }
+
+    return false;
 #endif
 }
 
EOF
@@ -3252,8 +3252,41 @@

return false;
#else
// FIXME - should return true only if there is any input in any of the Kits
return true;
const std::shared_ptr<Document>& document = getDocument();

if (document)
{
if (document->isLoaded())
{
// Check if core has high-priority tasks in which case we don't interrupt.
std::shared_ptr<lok::Document> kitDocument = document->getLOKitDocument();
// TaskPriority::HIGHEST -> TaskPriority::REPAINT
if (mostUrgentPriority >= 0 && mostUrgentPriority <= 4)
{
return false;
}
}

if (document->hasCallbacks())
{
// Have pending LOK callbacks from core.
return true;
}

// Poll our incoming socket.
int ret = poll(std::chrono::microseconds(0), /*justPoll=*/true);
if (ret)
{
return true;
}

if (document->hasQueueItems())
{
return true;
}
}

return false;
#endif
}

Copilot is powered by AI and may make mistakes. Always verify output.
@timar
Copy link
Member

timar commented Dec 24, 2025

wrt. the configure failure on iOS: why does the macOS build need libiconv, when the iOS does not? iconv.h is included in common/CharacterConverter.hpp, which is included in wopi/WopiStorage.hpp and we don't use WOPI in the apps.

rparth07 and others added 11 commits December 24, 2025 14:16
This prevents the print option from blocking all communication

Signed-off-by: Parth Raiyani <[email protected]>
Change-Id: I1cd9516e4f69cbc62e19cd0e07300f27a58f8cd0
This prevents the "save as" option from blocking all communication

Signed-off-by: Parth Raiyani <[email protected]>
Change-Id: Ia51d5328da7c234cd26f0141815654bf8c4ca14f
…og instance

This prevents the export option from blocking all communication

Signed-off-by: Parth Raiyani <[email protected]>
Change-Id: Idf7190406cd17b3f219a2bff38e74e02b667d0b0
Since this won't be trivial to add support for hide it for now.

Signed-off-by: Jeremy Whiting <[email protected]>
Change-Id: If021a23246fe7a0245219a391be106f357ff310c
Hide the Format menu since most of those items aren't working right.
Hide many of the Edit submenu items that aren't supported yet either.
Hide Help menu since using it just shows a dialog saying it's not
implemented yet.
TODO: Figure out why "Start Dictation" keeps coming back even
though we have removed it.

Signed-off-by: Jeremy Whiting <[email protected]>
Change-Id: I4e17a623a899762f8f04dcc8bb711055615b4ba3
In the original version utf16_to_utf8() every call overwrites
the same global buffer, so if someone else calls this function,
global user_name changes. Unlikely, but possible.

Signed-off-by: Andras Timar <[email protected]>
Change-Id: Ia5d791dab6cb4bf3351571fb5018ab8f5770ad41
Signed-off-by: Andras Timar <[email protected]>
Change-Id: I3196e31601f75a1772e63ae221329471c14eedeb
Signed-off-by: Jan Holesovsky <[email protected]>
Change-Id: I7a7bb07ee14b44b325ea1ec22d7982db6884bcfc
This implements handling of saving to various document types (docx, pdf,
epub, ...) in the backstage.

Signed-off-by: Jan Holesovsky <[email protected]>
Change-Id: I7252ce957474e2137e4e03288fc8270002130a80
This is what the backstage currentnly uses; we can change it to a real
message later.

Signed-off-by: Jan Holesovsky <[email protected]>
Change-Id: I5efda9d62bb3861abbb7f89b01c3736b3f1f81c9
Only can handle the parameter 'type=', and creates the document based
on one of the built-in templates. Assumes that the type is 'writer',
'calc' or 'impress'. Defaults to 'writer' if the type is anything else.

Signed-off-by: Jan Holesovsky <[email protected]>
Change-Id: I1f0f20afa3201ffbc5aeabc152ba068ca5bb47b0
@timar timar force-pushed the private/kendy/coda-for-master branch from d8f4c9b to 8ec8d11 Compare December 24, 2025 13:50
codewithvk and others added 13 commits December 24, 2025 15:26
Log template loading errors to console instead of displaying them in
the UI. Always show default blank templates (Writer, Calc, Impress)
so users can create new documents even when custom templates are
unavailable or fail to load.

Signed-off-by: codewithvk <[email protected]>
Change-Id: Icdbe0d045dd5f764c24355f19d86d0003fc6bdda
Temporarily removed History and Repair buttons as they're not working.
Added essential document properties (Type, File Name, Pages, Mode).
Clean up related CSS.

TODO: Extract properties from dialog JSON for better consistency.
Signed-off-by: codewithvk <[email protected]>
Change-Id: I9199528ae50126901996b31e70f9508c94e160fb
Signed-off-by: codewithvk <[email protected]>
Change-Id: Icb1ec42c7fa04b5950f351ced6e1b45ff1ac6179
Sort templates by type (Writer, Calc, Impress) with alphabetical
ordering within each group, and improve template card layout to
consistently align text at bottom with centered thumbnail images.

Signed-off-by: codewithvk <[email protected]>
Change-Id: I840e6d64fb805d2914a89ee0909c3288cd77168b
… core

Might help in making it run as a packaged app.

The "lo" intermediate folder is gone, and the CODA executable is now
in the "program" folder. The "cool" folder with the stuff from
browser/dist is a sibling to "program".

I couldn't figure out how to make the PrintPDFAndDelete project put
its deliverables in the "program" folder, so it is still at the top
level.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ie50fd3288d2ee3ca7e1313418fd4c0f277ced98b
Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: I2f6a00195fa326b48396aed6de53dc339b04775e
Signed-off-by: Rashesh Padia <[email protected]>
Change-Id: I2d4df959c290185743e31163e1ac7872f4a6302c
…eshow

- I tried adding 100px red border to each element but this red border
didn't show on any element. I think this a rendering problem in
chromium.
- This patch workaround rendering bug by adding -1 pixel margin.

Signed-off-by: Rashesh Padia <[email protected]>
Change-Id: I9fa94ffc080037cc96f401269e1c4ef2481146d5
…sition

- now it waits for full duration to complete before closing

Signed-off-by: Rashesh Padia <[email protected]>
Change-Id: I9ceb55ba37cec30f5a9c51d1b3ebd19c85b0805e
Signed-off-by: Andras Timar <[email protected]>
Change-Id: I699a66393e89700739b7894ee2d47778226395c4
transform: translateY(-2px) was making the top border be hidden
when hovering over a button. Instead just make the box-shadow a bit bigger.

Signed-off-by: Jeremy Whiting <[email protected]>
Change-Id: Ie192d55d33737efe928af110b8b1f0d02e33d753
Signed-off-by: Andras Timar <[email protected]>
Change-Id: I1c8cdb23ab52e45e6701a27e4e463faaed84f423
Before this when hiding the backstageview calc tiles
all appear as white. With this change they refresh and show
their contents and the grid.

Signed-off-by: Jeremy Whiting <[email protected]>
Change-Id: I18766750b63dbdec0e698137acbbf6b9fefb97e3
timar and others added 26 commits December 24, 2025 15:26
Signed-off-by: Andras Timar <[email protected]>
Change-Id: I88e86c94addf380648aa47e2ffa6182470cbc39b
Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ie112bf1dd56811ff5aea4cbe0798f45bd83f46ac
Signed-off-by: Andras Timar <[email protected]>
Change-Id: I2a8a203ca138477082ac24807c49afabe7ac33fe
- Thumbnails vary in height, which caused some items to appear centered while
  others were not.
- Bottom alignment creates a more consistent and predictable layout.

Signed-off-by: Banobe Pascal <[email protected]>
Change-Id: Ic68b67e0eff309ca451cd63faaf1cc017a0232dd
Implement recent documents functionality for CODA-Q. This feature
tracks files when they are opened or saved, allowing users to quickly
access recently opened or edited files through an elegant table-based
interface in the backstage view.

The feature automatically adds files to the recent list when:
- Opening files (debug: including via command line: ./coda-qt <PATH>)
- Saving files
- Using Save As

Browser side:
- Add table-based recent documents UI with Name and Modified Date columns
- Implement document type icons (writer, calc, impress, draw) with hover effects
- Add responsive styling with text ellipsis for long paths/filenames
- Include empty state handling with fallback message
- Format timestamps as YYYY/MM/DD at HH:MM:SS for readability

Qt side:
- Create RecentDocuments class for persistent storage using QSettings
  - Storage location: ~/.config/Collabora/CODA-RecentDocuments.conf
  - Stores up to 15 documents per document type (Writer/Calc/Impress)
  - Documents are organized by type in separate groups
- Move RecentDocuments implementation to separate file to reduce qt file size
- Add GETRECENTDOCS message handler to bridge frontend requests
  - Returns JSON array with uri, name, timestamp, and doctype fields
- Integrate tracking with document loading and save operations
- Support opening recent documents via 'newdoc file=' command

Signed-off-by: codewithvk <[email protected]>
Change-Id: If2c4d6b235da966b7188c31e1111606da3fec676
  Refactor recent documents file opening to use coda::openFiles uniformly
  across all code paths. This prevents duplicate file instances and
  centralizes recent documents tracking.

Signed-off-by: codewithvk <[email protected]>
Change-Id: I7b89751c59550179bb99118f5dfbd26bc6a32fc1
…breOfficeKitDocumentType

- Convert RecentDocuments from a class to a namespace
- Replace document type int with LibreOfficeKitDocumentType
- Remove SETTINGS_ORG and SETTINGS_APP and directly using string as it's only used once
- Move non-member helper functions into an anonymous namespace

Signed-off-by: codewithvk <[email protected]>
Change-Id: I25f6f41b781e3e6fe1bc2186e11044ecfe624770
Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ide5c1644c4fb2af1907d63210269e84a1cbd4fc6
I did this before, but I missed a bit ... most of this is trivially
removing conditions that can no longer be met. Indeed, the only part
which might be likely to cause you any concern is this line here in
`common/ThreadPool.hpp`:

-#elif MOBILEAPP && (!defined(GTKAPP) || !defined(QTAPP))
+#elif MOBILEAPP

I've done this because I find it extremely likely that this condition
was made in error. GTKAPP and QTAPP won't be defined at the same time,
so the second half of this condition will always be true. The condition
started as

and was changed in Ib05893c058cb9db29485aacd5673ed1bb9fc2d42 to read

I suspect the change should actually have been to

but that hasn't been how CODA-QT has worked since the start. A later
change, I0514e223fc687839bc601bc8ac3cfbb2379fb551, sealed this as

to fix a failing test. The condition as it is, therefore, is roughly
equivalent to

I don't feel comfortable fixing the condition, as this has been tested
with it as-is for months now. Perhaps @Quwex, @tml1024 or @kendy might
be able to advise on whether this matters and should be changed...

Follow-Up-To: I8244661f73cfccd875e720b86495c4016a6a6964
Signed-off-by: Skyler Grey <[email protected]>
Change-Id: I7d4da771ed55367e0f637dd3dadc46836a6a6964
… executable

...so that it wouldn't provide and export _ZN16QCoreApplication4selfE@Qt_6 when
it would mention any use of e.g. the qApp macro, which could cause coda_qt to
terminate with a SIGSEGV at start (cf. 9c8e658
"avoid Crash on startup of CODA-Q").

See the mailing list thread starting at
<https://lists.qt-project.org/pipermail/development/2025-December/046791.html>
"[Development] QT_FEATURE_reduce_relocations breaking executables that mention
qApp?" for details.

(Not entirely clear to me whether we would need -mno-direct-extern-access also
on any shared libraries (that link against Qt), if we would build any, but lets
restrict this to the CXXFLAGS of the coda_qt executable for now.)

Signed-off-by: Stephan Bergmann <[email protected]>
Change-Id: Iee5bcf0e1507692a8a4d3f2753f75c362fe9777e
This reverts commit 9c8e658, now that there is
no more reason to avoid qApp after 7d0e1e0 "Use
GCC -mno-direct-extern-access when building an x86/x86_64 coda_qt executable"

Signed-off-by: Stephan Bergmann <[email protected]>
Change-Id: I9c03f4fb9d2592a146cce2edfb252e75b46b9561
It became unused in 1528133 "CODA-Q: create a
first proof of concept for single process multi-docs", then was removed without
motivation in 9c8e658 "avoid Crash on startup
of CODA-Q", then added back with the revert of that commit in
92bacf2 "Revert 'avoid Crash on startup of
CODA-Q'".

Signed-off-by: Stephan Bergmann <[email protected]>
Change-Id: I2a04be568665c2983ba51bc43713fbb9ea054a42
Fix loading template files by passing a templatePath to
createDocument.
Without this clicking on a template opens a blank file.

Signed-off-by: Jeremy Whiting <[email protected]>
Change-Id: If08dc03323a371b5565465fc2f9b2a46f113fdc0
…pen.

Uses document/spreadsheet/presentation/drawing icons to show the current document
type in the window icon.
Unfortunately the AppKit tabs we are using don't support showing any icons
but the window does so do that based on the current file's document type.
Generate icon png files from the branded svg files during build.
Use these png icons depending which type of document is currently
focused in the window (document, spreadsheet, presentation, or drawing).

Signed-off-by: Jeremy Whiting <[email protected]>
Change-Id: I15f89ed1617f2b92179d601edb80ecbf8d6713fd
Signed-off-by: Jan Holesovsky <[email protected]>
Change-Id: Ib761e7502b4bba64f6c92deecac0971be9d4004a
Will be used in a follow-up commit to construct a so-called
AppUserModelId for the case when running the app locally as a
developer. (When installed from the Microsoft Store the app will have
a such automatically.) An AppUserModelId is apparently needed for
functionality like getting files opened by the app into the Recent
Documents list.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: I1e5aae3dd9e7fd0434b717f8e4846d886c174cf3
…rned

On other platforms, at least Qt and macOS, the existing
postMobileMessage() can apparently be used for this already. See the
recently introduced code in
browser/src/control/Control.BackstageView.ts that does:

const result = await window.postMobileMessage('GETRECENTDOCS');

and that works at least on Qt. I am also told that it would work on
macOS, if only the CODA-M code would handle GETRECENTDOCS.

But in Windows, we need to set up the plumbing with a
Promise. Introduce a new function, window.postMobileCall() for these
cases where a return value is expected. On other platforms it is
identical to postMobileMessage(). When the CODA-W native code wants to
return the value, it should make the JS call the function
window.replyFromNativeToCall(). That will be in a follow-up commit.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ic71b9f5648662be09e587804514d148b15608c09
Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ice5bf1086ee4bc74d4f249a49490fb75cb74139b
… CODA

Implementation is platform-independent. Uses the FileUtil wrappers to
handle the pathname of the file where the list of recent files is
stored cross-platform. The actual list of recent files is stored as
URIs, which are in ASCII.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: I39beac80d08cf30e9d95567b86666d7327bd4417
Also, set the AppUserModelId of the process if not set by the system
(in an app installed from the Microsoft Store).

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: I90dbe8bd32783139d0552b517bd06d8869a49c0c
On Windows a file: URI looks like this: file:///C:/Users/tml/foo.odt .
URL::pathname has a leading slash and thus looks weird, we need to
strip that slash away, even if this is just for display.

Also show backslashes instead of slashes, as that is the more native
separator on Windows.

Finally, on all platforms, expand percent encodings. We do want to
display non-ASCII characters in folder and file names correctly.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ibdfeec3e662667b9ace5cc81a4142e0ef4f5605a
It makes this file even harder to compile. Specifically, current
Visual Studio 2022 with the LLVM clang-cl toolset doesn't manage.

This reverts commit 14f958c.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: Ied6adf042d4c09aa70b0022bd3bd4d532aea343e
They are used in headers that get included by this file.

Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: I9a2b7f88acc8db2582e33bbfaf97f0cd7586f960
Signed-off-by: Tor Lillqvist <[email protected]>
Change-Id: I2ed726dc2dd9ead2ce40fc7830a33ac2ff57556a
TODO: include everything in the tarball, e.g. mobile app sources,
cypress test sources and desktop app sources

This patch only fixes the CI that builds COOL from the tarball.

Signed-off-by: Andras Timar <[email protected]>
Change-Id: Ic4a1553a3b9484f03b26f17661d9e79ccb8849d2
Signed-off-by: Andras Timar <[email protected]>
Change-Id: Id0d6d7a045af149eed087b970a90472110ad52fe
@timar timar force-pushed the private/kendy/coda-for-master branch from 8ec8d11 to dd61909 Compare December 24, 2025 15:28
Signed-off-by: Andras Timar <[email protected]>
Change-Id: Iace66773ffbf97a0654d0b13360c6ca9386b8aea
Signed-off-by: Andras Timar <[email protected]>
Change-Id: Ic445d817ac0af666ea0a24a31e45fa01ac0c24e0
Signed-off-by: Andras Timar <[email protected]>
Change-Id: Iec36221a48283a58a23240296a02b33685c140cc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: To Review

Development

Successfully merging this pull request may close these issues.