Commit graph

38354 commits

Author SHA1 Message Date
kleines Filmröllchen 37b340a698 LibDSP: Introduce the Keyboard
This is a class for handling user MIDI input, which is combined by the
Track with roll note data if applicable.
2022-05-26 10:24:43 +01:00
huttongrabiel a54b681149 LibGUI: Allow to lowercase conversion in Vim emulation
If Key_U is pressed while in visual mode, the currently selected text
will be converted to lowercase.
2022-05-26 00:33:01 +01:00
huttongrabiel e3bef71d05 LibGUI: Allow to uppercase conversion in Vim emulation
If Shift+Key_U is pressed while in visual mode, the currently selected
text will be converted to uppercase.
2022-05-26 00:33:01 +01:00
huttongrabiel 45c5f68d8a LibGUI: Add casefold_selection function to choose case conversion
Allows the passing of a Casing enum, Lowercase or Uppercase, and
converts the selected text accordingly. If Lowercase is passed as the
parameter, it converts the selected text to lowercase. If Uppercase is
passed as the parameter, it converts the selected text to uppercase.
2022-05-26 00:33:01 +01:00
MacDue 3b0785a636 LibGUI: Invert button icons with low contrast ratios
On some dark themes, it becomes impossible to dark button icons
against their dark button backgrounds. This change tries to
mitigate that by inverting the icon color if the contrast ratio
(against the button background) is less the 4.5 (the recommended
minimum for text).

This is only done for icons that are a solid color (e.g. all back),
where the desired icon would likely be the same inverted anyway.

Fixes a lot of cases of #13978
2022-05-26 00:07:24 +01:00
MacDue 73b05364e8 LibGfx: Add Color::contrast_ratio() 2022-05-26 00:07:24 +01:00
MacDue 8e441d402b LibGfx: Add Bitmap::solid_color()
This function returns an Optional<Color> and is given an
alpha_threshold. If all pixels above that alpha threshold are the
same color, it returns the color, otherwise it returns an empty
optional.
2022-05-26 00:07:24 +01:00
MacDue 48d3db3c3d LibGfx: Add Bitmap::invert()
Helper function to invert a bitmap in-place
2022-05-26 00:07:24 +01:00
EWouters 59598ded15 Documentation: Add ninja command to example
This is needed for the next command to work.
2022-05-25 23:50:57 +01:00
Liav A 102ac09ad7 WindowServer: Stop spurious debug spam after flushing the framebuffer
This became apparent when using the VirtIO graphics device, because the
HardwareScreenBackend object needs to allow flushing of the framebuffer
constantly, and due to incorrect if-else flow, even a non-error response
from the ioctl was leading to a debug spam.
2022-05-25 23:33:31 +01:00
kleines Filmröllchen 6668077965 Base: Document the LibDSP structure in a simple class diagram
This uses UML conventions but just contains the necessary info to get
started with LibDSP development.
2022-05-25 23:27:22 +01:00
kleines Filmröllchen 900349dbe1 Base: Update the audio subsystem documentation
We need to mention the new queue system as well as the userland sample
format.
2022-05-25 23:27:22 +01:00
gouchi 74226a6cb3 Ports: Add RetroArch 2022-05-25 23:19:25 +01:00
Ali Mohammad Pur 78dc77f7e4 LibLine: Add support for user-controlled masking 2022-05-25 23:17:15 +01:00
Ali Mohammad Pur c257d27f0b LibLine: Turn bracketed paste mode off in Editor::restore()
We turn it on in initialize(), so turn it off in restore().
Not all CLI applications can handle this mode correctly, and there's no
reason to leave it on.
2022-05-25 23:17:15 +01:00
EWouters 860c4763c3 Meta: Use Ubuntu 22.04 images for static analysis
Fixes 2f1029e while `ubuntu-latest` is not `ubuntu-22.04`.
2022-05-25 23:15:08 +01:00
MacDue 0c74f30819 DisplaySettings: Link to cursor themes from "Themes" tab
This removes a few clicks to access the mouse settings and puts
all theming actions in one place.
2022-05-25 23:14:22 +01:00
MacDue 7c8541b914 Userland: Use GUI::Process::spawn_or_show_error() for spawn() from a GUI 2022-05-25 23:14:22 +01:00
MacDue 2f2671f2d3 LibGUI: Add GUI::Process::spawn_or_show_error()
This is a wrapper around Core::Process::spawn() for GUI applications,
that shows an error if the call to spawn() failed.
2022-05-25 23:14:22 +01:00
MacDue 3fc0350caf LibCore: Return ErrorOr<pid_t> and support arguments in Process::spawn
This makes the wrapper more like the rest in LibCore, and also
removes the annoying limitation of not supporting arguments.

There are three overloads one for String, char const *, and StringView
argument lists. As long as there are <= 10 arguments the argv list
will be allocated inline, otherwise on the heap.
2022-05-25 23:14:22 +01:00
MacDue 0295d79339 LibCore: Add posix_spawn() wrapper to Core::System 2022-05-25 23:14:22 +01:00
Tim Schumacher 5a24accfa7 Ports: Update SDL2 to 2.0.22 2022-05-25 23:04:52 +01:00
Tim Schumacher cb6a406190 Ports: Return SDL2 to upstream 2022-05-25 23:04:52 +01:00
EWouters 81a2f09a80 Ports: Return nesalizer to upstream
This makes https://github.com/SerenityPorts/nesalizer obsolete.

The patch that hardcoded the SDL2 location is removed. The the patches
to the `Makefile` are quashed. A new install function is added.
2022-05-25 22:55:59 +01:00
Tim Schumacher 317ca37dc6 Ports: Replace the manual dosbox-staging config.sub patch 2022-05-25 22:54:04 +01:00
Tim Schumacher bbd54a5a25 Ports: Replace the gnuapl config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher 99cdafa5bc Ports: Replace the x264 config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher 1371d1d952 Ports: Replace the joe config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher 7ceccb7b82 Ports: Replace the gsl config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher aa18adc43f Ports: Replace the jq config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher 2d3724303a Ports: Replace the manual glu config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher 40b9318695 Ports: Use the official release tarball for glu 2022-05-25 22:54:04 +01:00
Tim Schumacher 22b862e9f0 Ports: Replace the gettext config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher ffe541e4ef Ports: Replace the libiconv config.sub patch with our download 2022-05-25 22:54:04 +01:00
Tim Schumacher f31f25b918 Ports: Use our built-in config.sub download for libuuid 2022-05-25 22:54:04 +01:00
Tim Schumacher 2c886fa93f Ports: Use the official release tarball for libuuid
These already come preconfigured
2022-05-25 22:54:04 +01:00
Tim Schumacher f81e47eea8 Ports: Allow selecting multiple config_{sub,guess}_paths
Some ports may have more than one `config.sub` that is in use (vendored
dependencies, etc.). Instead of fiddling about with space-delimited
strings, let's just make that setting into an array right away.
2022-05-25 22:54:04 +01:00
Tim Schumacher ff90647958 Ports: Fix a typo in get_new_config_guess
While we're at it, we might as well replace the download arguments in
`get_new_config_{sub,guess}` with the variable we defined earlier.
2022-05-25 22:54:04 +01:00
DexesTTP 2ab8d474c6 Lagom: Fix leaks in the IDL Wrapper generator
By using RefPtrs to handle interfaces, the IDL parser could store cyclic
references to interfaces that import each other. One main example is the
"EventTarget.idl" and the "AbortSignal.idl" files, which both reference
each other. This caused huge amounts of memory not to be freed on exit.

To fix this, the parsed IDL interfaces are now stored in a HashTable of
NonnullOwnPtr<Interface>, which serves as the sole reference for every
parsed interface. All other usages of the Interface are changed to use
references instead of RefPtrs, or occasionally as raw pointers where
references don't fit inside the data structures.

This new HashTable is static, and as such will automatically be freed
prior to exiting the generator. This ensures that the code generator
properly cleans up after itself.

With this change, The IDL code generators can properly run on Lagom when
compiled with the -DENABLE_ADDRESS_SANITIZER=ON flag, and gets compiled
properly on the CI :^)
2022-05-25 22:25:09 +01:00
Karol Kosek 67f1ac5de7 ThemeEditor: Use 'open' icon instead of ellipsis on path picker button
The ellipsis seemed a little unclear for me.
2022-05-25 13:42:53 +02:00
Karol Kosek 2d6edd5898 ThemeEditor: Show unsaved changes prompt also in the quit action
While the app displayed the prompt on the close button press, the quit
action from the menu didn't do so.
2022-05-25 13:42:53 +02:00
MacDue 4656198127 Meta: Add -S to Jakt compiler invocation in compile_jakt
This prevents the Jakt compiler from attempting to compile the
generated C++ source itself.
2022-05-25 09:48:28 +02:00
Linus Groh 9400b76d79 LibJS: Remove assertions replaced with structured headers
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/74fd5e8
2022-05-25 00:25:23 +01:00
Linus Groh c3f1d8f5ba LibJS: Correct section IDs of Temporal .prototype property clauses
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/e4eb181
2022-05-25 00:25:23 +01:00
Linus Groh ae1fdf299d LibJS: Use the rounding abstract operations from Intl.NumberFormat V3
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/75279e5

Co-Authored-By: Idan Horowitz <idan.horowitz@gmail.com>
2022-05-25 00:25:23 +01:00
Linus Groh 93a20b3bfb LibJS: Use default argument of CalendarDateFromFields
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/7a4a518
2022-05-25 00:25:23 +01:00
Linus Groh cf1ea18b7f LibJS: Align DifferenceTemporalPlainTime with other Difference* AOs
This is an editorial change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/70f739d
2022-05-25 00:25:23 +01:00
Linus Groh 89d4094709 LibJS: Mark concrete method calls of Environment Records with ?/!
This is an editorial change in the ECMA-262 spec.

See: https://github.com/tc39/ecma262/commit/7ae3ecf
2022-05-25 00:25:23 +01:00
Nathan Wallace cdc5ed2fb5 Meta: Shellcheck ignore for our expr use (SC2307) 2022-05-24 06:30:57 -04:00
Nathan Wallace 0c0a760aad Meta+Documentation: Bump required QEMU version
This commit bumps the required QEMU version to 6.2 and updates the
version checking logic in Meta/run.sh to support checking against
major and minor version numbers instead of checking against the major
version only
2022-05-24 06:30:57 -04:00