-
Notifications
You must be signed in to change notification settings - Fork 940
private/kendy/coda for master #13906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
4678679 to
e2e3ec4
Compare
| 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
Show autofix suggestion
Hide autofix suggestion
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
deallocatetolerant 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.hppis already included, and we can reasonably assume a logging macro likeLOG_WRNor similar exists. To avoid relying on a specific level name that might not exist, the safest standard pattern in this codebase tends to beLOG_ERRorLOG_WRN; since we cannot see others here, we’ll useLOG_ERRto emphasize a logic problem.
Concretely, in common/MobileApp.cpp within DocumentData::deallocate:
- Replace the FIXME block at lines 47–51 with an
ifblock 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.
-
Copy modified lines R47-R48 -
Copy modified line R50 -
Copy modified lines R55-R56
| @@ -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() |
| // 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
Show autofix suggestion
Hide autofix suggestion
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.
| @@ -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 |
|
|
||
| bool platformDependentCheckDiskSpace(const std::string&, int64_t) | ||
| { | ||
| // FIXME Use the FileUtil-apple.mm instead |
Check notice
Code scanning / CodeQL
FIXME comment Note
Show autofix suggestion
Hide autofix suggestion
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.
-
Copy modified line R98
| @@ -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 |
| #else | ||
| // FIXME: I wonder for which platform this is supposed to be? Android? |
Check notice
Code scanning / CodeQL
FIXME comment Note
Show autofix suggestion
Hide autofix suggestion
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 MOBILEAPPblock whereLibreOfficeKit* kitis 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.
-
Copy modified line R4056
| @@ -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 | ||
|
|
| @@ -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
Show autofix suggestion
Hide autofix suggestion
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
DocumentviagetDocument(). - If there is a document:
- If it is loaded and
mostUrgentPriorityis in the HIGHEST–REPAINT range (0–4), returnfalse(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, returntrue. - If there are queue items, return
true.
- If it is loaded and
- 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.
-
Copy modified lines R3255-R3289
| @@ -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 | ||
| } | ||
|
|
|
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. |
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
d8f4c9b to
8ec8d11
Compare
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
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
8ec8d11 to
dd61909
Compare
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
newdoc