summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-05-26LibGfx: Add Bitmap::solid_color()MacDue
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-26LibGfx: Add Bitmap::invert()MacDue
Helper function to invert a bitmap in-place
2022-05-25WindowServer: Stop spurious debug spam after flushing the framebufferLiav A
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-25LibLine: Add support for user-controlled maskingAli Mohammad Pur
2022-05-25LibLine: Turn bracketed paste mode off in Editor::restore()Ali Mohammad Pur
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-25DisplaySettings: Link to cursor themes from "Themes" tabMacDue
This removes a few clicks to access the mouse settings and puts all theming actions in one place.
2022-05-25Userland: Use GUI::Process::spawn_or_show_error() for spawn() from a GUIMacDue
2022-05-25LibGUI: Add GUI::Process::spawn_or_show_error()MacDue
This is a wrapper around Core::Process::spawn() for GUI applications, that shows an error if the call to spawn() failed.
2022-05-25LibCore: Return ErrorOr<pid_t> and support arguments in Process::spawnMacDue
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-25LibCore: Add posix_spawn() wrapper to Core::SystemMacDue
2022-05-25ThemeEditor: Use 'open' icon instead of ellipsis on path picker buttonKarol Kosek
The ellipsis seemed a little unclear for me.
2022-05-25ThemeEditor: Show unsaved changes prompt also in the quit actionKarol Kosek
While the app displayed the prompt on the close button press, the quit action from the menu didn't do so.
2022-05-25LibJS: Remove assertions replaced with structured headersLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/74fd5e8
2022-05-25LibJS: Correct section IDs of Temporal .prototype property clausesLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/e4eb181
2022-05-25LibJS: Use the rounding abstract operations from Intl.NumberFormat V3Linus Groh
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-25LibJS: Use default argument of CalendarDateFromFieldsLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/7a4a518
2022-05-25LibJS: Align DifferenceTemporalPlainTime with other Difference* AOsLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/70f739d
2022-05-25LibJS: Mark concrete method calls of Environment Records with ?/!Linus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/7ae3ecf
2022-05-24Spreadsheet: Make save functions take a Core::File instead of a filenameKarol Kosek
This allows us to use FileSystemAccessClient functions.
2022-05-24Spreadsheet: Open files using FileSystemAccessClient::try_open_file()Karol Kosek
2022-05-24Spreadsheet: Remove unused Workbook::load() functionKarol Kosek
2022-05-24Spreadsheet: Use TRY() on file load and saveKarol Kosek
2022-05-23Meta+Userland: Add jakt as an optional Lagom ToolAndrew Kaster
We can now use ENABLE_JAKT to pull jakt as a host tool and use it to pre-process .jakt files into .cpp files for use in serenity applications
2022-05-23LibC: Add barebones <complex.h>Peter Elliott
2022-05-23PixelPaint: Allow layer to "scale" location when resizingAndrew Smith
2022-05-23PixelPaint: Add Image>Resize Image... dialog. (Front end)Andrew Smith
2022-05-23LibGUI: Add on_return_pressed function to SpinBoxAndrew Smith
2022-05-23SystemServer: Create a /dev/full device using numbers 1, 7Karol Kosek
Previously, the device wasn't being created. The new numbers correspond to those in the FullDevice (which is also a Linux's full device number). Also, I've tweaked the permissions to give everyone read-write access to it.
2022-05-22Spreadsheet: Recognize sheets files by mime type, not by file extensionKarol Kosek
These conditions weren't executed since 933a717f3b and always showed a file import/export wizard.
2022-05-22LibCore: Set mime type for .sheets files to `application/x-sheets+json`Karol Kosek
This is our own format, used by Spreadsheet.
2022-05-21LibHTTP+LibWeb: Accept Brotli encoded responsesMichiel Visser
2022-05-21LibCompress: Implement Brotli decompressorMichiel Visser
This implements the BrotliDecompressionStream, which is a Core::Stream that can decompress another Core::Stream.
2022-05-21LibCore: Add Stream::read_all()Michiel Visser
2022-05-21LibCore: Add LittleEndianInputBitStreamMichiel Visser
As a complement to BigEndianInputStream, this will read the bits from the lowest bits in a byte first.
2022-05-21ThemeEditor: Position preview windows based on the title heightSam Atkins
This means all three window titles are visible, regardless of what the TitleHeight and BorderThickness values are. :^) The one exception is when TitleHeight is less than the height of the title text. WindowManager ensures that the real title height is at least enough to fit the text, so if the value is set to less than that, the window titles will start to overlap. So, don't set values that are impossibly small!
2022-05-21ThemeEditor: Make MainWidget responsible for holding the edited PaletteSam Atkins
Previously, the PreviewWidget was responsible for this, but we will soon have multiple preview widgets, so having it here will make more sense.
2022-05-21ThemeEditor: Convert the widget-preview layout to GMLSam Atkins
This has the nice bonus of fixing the appearance of the status bar. :^)
2022-05-21ThemeEditor: Arrange the theme properties into groupsSam Atkins
This makes it clearer which properties are related, instead of them all being in one list per tab.
2022-05-21ThemeEditor: Give each theme property its own editing widgetSam Atkins
This is quite a radical change. The previous UI was very easy to add new properties to (just add to the FooRole enum and it automatically works), but not so nice to use: A ComboBox for selecting a property, and then a box to edit that property's value. This makes it difficult to compare different properties or edit multiple together without a lot of back-and-forth. This new design gives each property its own editing widgets, with those categorized into several tabs. To try and avoid increasing the maintenance burden for this, the UI is generated from the `windows_tab`, `widgets_tab` and `syntax_highlighting_tab` variables, which are basically just lists of which properties go in that tab. One of the `FooProperty.gml` files is loaded to create each property's widgets.
2022-05-21LibGUI: Add ability to position checkboxes to the right of their textSam Atkins
This uses the new `checkbox_position` property, which can be "Left" or "Right".
2022-05-21ThemeEditor: Actually save alignment rolesSam Atkins
2022-05-21ThemeEditor: Extract most logic into a MainWidget classSam Atkins
2022-05-21Browser: Allow usage of vertical tabsCameron Youell
Add implementation of vertical tabs into the browser, with the new `Ctrl + ,` shortcut, or within the View Options
2022-05-21LibGUI: TabWidget add vertical tabsCameron Youell
Add vertical tabs to TabWidget, this can be set using the ```TabWidget::set_tab_position``` function or in the GML
2022-05-21LibCodeComprehension: Re-organize code comprehension related codeItamar
This moves all code comprehension-related code to a new library, LibCodeComprehension. This also moves some types related to code comprehension tasks (such as autocomplete, find declaration) out of LibGUI and into LibCodeComprehension.
2022-05-21touch: Support custom timestampsAriel Don
Previously, `touch` remained limited to creating files and updating their current access and modifications time to the current time. It's now capable of accepting two different timestamp formats with flags `-d` and `-t` and referencing timestamps of other files with flag `-r`. `touch` can also update only the last access time with `-a`, only the last access time with `-m`, or update both as usual. `touch` updates both left unspecified. With `-c`, `touch` does not create a file if it doesn't already exist.
2022-05-21LibCore: Add Core::Stream::File::exists()Ariel Don
2022-05-21Kernel+LibC: Implement futimens(3)Ariel Don
Implement futimes() in terms of utimensat(). Now, utimensat() strays from POSIX compliance because it also accepts a combination of a file descriptor of a regular file and an empty path. utimensat() then uses this file descriptor instead of the path to update the last access and/or modification time of a file. That being said, its prior behavior remains intact. With the new behavior of utimensat(), `path` must point to a valid string; given a null pointer instead of an empty string, utimensat() sets `errno` to `EFAULT` and returns a failure.
2022-05-21Kernel+LibC+VFS: Implement utimensat(3)Ariel Don
Create POSIX utimensat() library call and corresponding system call to update file access and modification times.
2022-05-21LibC: Add a stub for nice()Simon Danner