1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-15 08:07:38 +00:00
Commit graph

8334 commits

Author SHA1 Message Date
savary1
dd912bd351 PixelPaint: Add grayscale filter
Add a new Color category to the Filter menu. Add the Grayscale
filter under Filter->Color to turn the selected layer to grey colors.
Created GrayscaleFilter.h. Modify Filter.h to allow filters
without parameters.
2021-08-31 17:02:27 +02:00
Mustafa Quraish
fdc9ff2ee7 KeyboardSettings: Use LibConfig intead of Core::ConfigFile 2021-08-31 17:00:41 +02:00
Mustafa Quraish
8fdb435d24 DisplaySettings: Use LibConfig where possible
Some places here still need to open `/etc/WindowServer.ini` which
we can't do with th ConfigServer yet.
2021-08-31 17:00:41 +02:00
Mustafa Quraish
d276657f85 LibGUI/Desktop: Use LibConfig instead of Core::ConfigFile 2021-08-31 17:00:41 +02:00
Peter Elliott
dee84113ab LibMarkdown: Match HTML formatting of Commonmark tests
This patch changes the HTML formatting (where to put newlines, etc...)
to better match commonmark's test cases. This has minimal effect of the
correctness of our markdown implementation, but makes it easier to test.

Changes:
 - Use <em> instead of <i>.
 - Newline before end of code block.
 - <hr /> instead of <hr>.
 - Newline before first list item.
 - Newline between lines of a paragraph.
 - Trim whitespace on lines of paragraphs.

 Tests passed: 33/652 -> 87/652
2021-08-31 16:53:51 +02:00
Peter Elliott
57ec19f963 LibMarkdown: Add render_to_inline_html() to Document
This api is useful when you want to render a markdown document to HTML,
but you want to embed it in a existing html document.
2021-08-31 16:53:51 +02:00
Peter Elliott
83680934e5 LibTest: Add TEST_SETUP macro that runs before all test cases 2021-08-31 16:53:51 +02:00
Mustafa Quraish
b0bd4be59a Config CLI: Handle missing config values correctly
If the domain/group/key doesn't exist in the config, exit with
non-zero status and don't print out anything.

Previously the CLI would print a single empty line if the config
value was not found with LibConfig. Now, we use the proper
`Config::Client::the().read_string()` API which can return an
`Optional` type indicating failure.`
2021-08-31 16:52:58 +02:00
TheFightingCatfish
c9b384da92 echo: Support octal, hexadecimal and unicode escape sequences 2021-08-31 16:49:45 +02:00
Joe Bentley
c2f62a03ff AudioApplet: Fix applet positioning bug
Currently when clicking the percentage toggle, there is a delay
in moving the applet window position. This is because after
the applet is resized, the applet area is repositioned
asynchronously. This takes advantage of the new AppletAreaRectChange
event to reposition the slider window when necessary.
2021-08-31 16:49:22 +02:00
Joe Bentley
9df79a77da WindowServer: Add message to notify clients of applet area resize
Applets and windows would like to be able to know when the applet
area has been resized. For example, this happens asynchronously after
an applet has been resized, so we cannot then rely on the applet area
position synchronously after resizing. This adds a new message
applet_area_rect_changed and associated Event AppletAreaRectChange,
and the appropriate virtual functions.
2021-08-31 16:49:22 +02:00
Musab Kılıç
1179d5d921 GameOfLife: Don't enable rotate button if a pattern isn't selected 2021-08-31 15:46:58 +01:00
Andreas Kling
0819f0a3fd LibELF: Allow (but ignore) PT_LOAD headers with zero size
GNU ld sometimes generates zero-sized PT_LOAD headers when running with
the "-z separate-code" option. Let's not choke on such headers, we can
just ignore them and move along.
2021-08-31 16:46:16 +02:00
Mustafa Quraish
c853bc2ba6 PixelPaint: Rename Mode to FillMode for Ellipse/Rectangle
The prior commits add the `DrawMode` enum to keep track of where
the shape is being drawn from. With this addition, the prior `Mode`
enum name is confusing, so this commit renames it to `FillMode` to
be more explicit :^)
2021-08-31 16:45:57 +02:00
Mustafa Quraish
6ccdc018b4 PixelPaint: Add ability to draw rectangle from center
Essentially the same logic as the prior commit, but now for the
`RectangleTool` class. Pressing `alt` lets you draw the rectangle
with the starting position as the center.
2021-08-31 16:45:57 +02:00
Mustafa Quraish
1a3481f35b PixelPaint: Add ability to draw ellipse from center
Like other common image editing applications, now if you press
`alt` while drawing an ellipse, it uses the starting position as
the center of the ellipse as opposed to one of the corners of the
bounding rect.

The EllipseTool class now keeps track of a `DrawMode`, which is
either `DrawMode::FromCorner` (default), or `DrawMode::FromCenter`
(the option added by this commit).

The `draw_using()` function was modified to now take in the start
and end positions and construct the `ellipse_intersecting_rect`
itself, since we need to construct it differently based on the
drawing mode.
2021-08-31 16:45:57 +02:00
Karol Kosek
d04c8d478f KeyboardSettings: Reuse generic GUI::ItemListModel
This change removes the manually created model class
in order to use a generic GUI::ItemListModel.

Besides from code reusability, it also makes the list
searchable as you type.
2021-08-31 16:43:18 +02:00
Karol Kosek
4bad2bf100 LibGUI: Reuse draw_item_text function in ListView
This commit will highlight searched text!
2021-08-31 16:43:18 +02:00
Karol Kosek
ebe8778876 LibGUI: Enable searching through ListView items by keyboard
ComboBoxes and a FontPicker window will now react to keyboard press.
2021-08-31 16:43:18 +02:00
Karol Kosek
c2a89cac4e LibGUI: Make ItemListModel searchable 2021-08-31 16:43:18 +02:00
Karol Kosek
8dbb996200 Spreadsheet: Implement begin() and end() 2021-08-31 16:43:18 +02:00
Karol Kosek
f56e240981 Spreadsheet: Add RowIterator::index() 2021-08-31 16:43:18 +02:00
Jesse Buhagiar
59eab8148d Kernel/Userland: Expose usb device address and use it in lsusb
We now expose the `USBDevice`'s address in the SysFS object. This means
that device addresses are no longer determined by the name of the file
in the `/bus/usb/` directory. This was an incorrect way of determining
device address, as a standard PC can have multiple USB controllers
(and hence multiple buses) that can have overlapping device IDs.
2021-08-31 16:38:49 +02:00
Tobias Christiansen
32b4470ea3 Shell: Use new Statistics tool in 'time -n' command
The new Statistics utility is now used when calling 'time -n' to get
some more information of the timings. For now only the standard
deviation is given in addition to the average.

This commit completely undos #9645 because everything that touched moved
into AK::Statistics.
2021-08-31 16:38:22 +02:00
Ali Mohammad Pur
98624fe03f LibRegex: Implement min/max repetition using the Repeat bytecode
This makes repetitions with large max bounds work correctly.
Also fixes an OOM issue found by OSS-Fuzz:
https://oss-fuzz.com/testcase?key=4725721980338176
2021-08-31 16:37:49 +02:00
Ali Mohammad Pur
b64d6bb3a3 LibWasm: Limit the number of function locals
It's possible for the module to request too many locals, we now reject
such modules instead of trying to allocate space for them.
The value itself is chosen arbitrarily, so future tweaks _might_ be
necessary.
Found by OSS-Fuzz: https://oss-fuzz.com/testcase?key=4755809098661888
2021-08-31 16:37:49 +02:00
Ali Mohammad Pur
05c65f9b5d LibRegex: Limit the number of nested capture groups allowed in BRE
Found by OSS-Fuzz: https://oss-fuzz.com/testcase?key=4869334212673536
2021-08-31 16:37:49 +02:00
Linus Groh
c171aa40a8 LibJS: Implement Temporal.Instant.prototype.toJSON() 2021-08-31 16:35:51 +02:00
Linus Groh
463eb361ad LibJS: Implement Temporal.Instant.prototype.toLocaleString() 2021-08-31 16:35:51 +02:00
Linus Groh
576be0f8e7 LibJS: Implement Temporal.Instant.prototype.toString() 2021-08-31 16:35:51 +02:00
Karol Kosek
1c65ee6edf LibAudio: Implement decoding verbatim blocks in FLAC
They're mostly used in literal random data, so it isn't like
there is a high demand for it, but it's cool to have more complete
implementation anyway. :^)
2021-08-31 16:35:37 +02:00
sin-ack
a086be993b LibGUI: Bias text towards bottom when tabs at top have uneven spacing
This makes the text on inactive tabs in Browser look a lil' bit nicer.
:^)
2021-08-31 16:34:55 +02:00
sin-ack
4959fa4f1e LibGUI: Adjust content area and focus rect of tab buttons
This improves the look of tabs and their focus rects. In particular, the
concept of a "text rect" is removed, and whatever tab content area is
left over after the icon and close button are added is used as the area
to draw the text into. This approach is simpler than having a separate
text rect.
2021-08-31 16:34:55 +02:00
kleines Filmröllchen
0dc6fe9102 Piano: Use LibDSP to implement delay
This is the first step in transitioning Piano to a full LibDSP backend.
For now, the delay effect is replaced with a (mostly identical)
implementation in LibDSP.

The new ProcessorParameterSlider attaches to a LibDSP::Processor's
range parameter (LibDSP::ProcessorRangeParameter) and changes it
automatically. It also has the ability to update an external GUI::Label.
This is used for the three delay parameters and it will become useful
for auto-generating UI for Processors.
2021-08-31 17:03:55 +04:30
kleines Filmröllchen
a749b16674 Libraries: Add LibDSP
LibDSP is a library for digital signal processing, and is primarily
intended to support the future DAW version of Piano.
2021-08-31 17:03:55 +04:30
kleines Filmröllchen
ad6a332268 Piano: Add velocity and pitch support
As Piano will later move to the RollNote defintions of LibDSP, it's a
good idea to already insert velocity and pitch support, even though it's
currently not used.
2021-08-31 17:03:55 +04:30
Nicholas Hollett
0d98bba167 Profiler: Add a flamegraph view for the stack
The flamegraph makes it easier to quickly spot expensive functions,
based on the width of their bar.
2021-08-31 12:40:51 +02:00
Nicholas Hollett
4fe380f6da LibGfx: Add color helper for getting shades and tints
Shades are colors darker than the color, tints are colors lighter.
This is helpful in places where we need a bunch of similar colors
with some small differences.
2021-08-31 12:40:51 +02:00
Andreas Kling
a5992a4ef8 FileManager: Tweak layout spacing in file properties window
There wasn't enough vertical spacing between the TabWidget and the three
(Ok/Cancel/Apply) buttons at the bottom.
2021-08-31 02:43:50 +02:00
Andreas Kling
af9d4281eb LibC: Run clang-format on setjmp.h 2021-08-31 01:37:30 +02:00
Andreas Kling
6cb536daa8 FileManager: Hide the Inode and Symlink Target columns in TableView
These are not generally interesting, so let's hide them by default.
The user can re-enable them if they want.
2021-08-31 01:35:09 +02:00
Andreas Kling
887ab3cc9a LibGUI: Rename FileSystemModel's "Owner" column to "User"
A file is owned by a User+Group, not an Owner+Group.
2021-08-31 01:35:08 +02:00
Andreas Kling
34f186e1e6 LibGUI: Tweak scrollbar arrows
Remove the base, leaving only the pointy triangle part. :^)
2021-08-31 01:35:08 +02:00
Andreas Kling
b8416df173 LibGUI+LibGfx: Make scrollbar buttons a little bit thicker
The common thin-cap button look (1px highlight, 2px shadow) looks nice
on regular buttons, but the scrollbar didn't feel quite right.
This patch adds 1px of offset to the highlight, giving it a thick-cap
look (which I have named Gfx::ButtonStyle::ThickCap) :^)
2021-08-31 01:35:08 +02:00
Andreas Kling
087bd7f767 Userland: Use Rect::centered_within() where useful 2021-08-31 01:35:08 +02:00
Andreas Kling
43220568b0 LibGfx: Add Rect::centered_within(Rect)
I've wanted this API a number of times but never added it.
2021-08-31 01:35:08 +02:00
Dimenus
de0861581e Userland: Guard set_jmp.h static_assert check to cpp impls only 2021-08-31 00:47:18 +02:00
Karol Kosek
1700b6d113 FileManager: Remove tree_view_directory_context_menu
It isn't used anywhere and the tree view shows only directories
(and that is covered by the tree_view_directory_context_menu).
2021-08-31 00:46:43 +02:00
Karol Kosek
7d6308523a FileManager: Add 'Open in Terminal' action for selected dirs on desktop
This is to be more similar to the context menu from the windowed
instance of File Manager.
2021-08-31 00:46:43 +02:00
Karol Kosek
dd75ed0c5e FileManager: Add default 'Open' action in context menu for directories
This makes the directory context menu more similar to the file context
menu.
2021-08-31 00:46:43 +02:00