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

3869 commits

Author SHA1 Message Date
Andreas Kling
32b73dd4af PixelPaint: Restore image size from snapshots
This will make undoing a resize or rotate operation actually restore the
size of the image as well.
2022-08-22 21:55:19 +02:00
Sam Atkins
cde4552710 GamesSettings: Add a preview for the current card-game settings :^) 2022-08-22 12:50:41 +02:00
Sam Atkins
deeef8c412 GamesSettings: Add a setting for the card-back image
And also add a couple of images so there's more than one option. :^)

(My yak silhouette isn't very good, so please replace that, artists!)
2022-08-22 12:50:41 +02:00
Sam Atkins
a01c4c50d1 GamesSettings: Introduce a new GamesSettings application :^)
This currently has exactly one setting: The background colour for card
games. My thinking is, it's better to not have a Settings application
for each individual game we include in the system, since most will only
have a small number of settings, all Settings windows have tabs anyway,
and I don't want to flood the Settings app list unnecessarily.

As for having a single setting for all the card games: it's nice when
things match. :^)
2022-08-22 12:50:41 +02:00
Roberto Bampi
1c52ca9693 PixelPaint: Push layer creation onto the undo stack
Before this change, creating a layer, painting something on it and
undoing would delete the layer as well as the paint on it.
2022-08-22 12:49:11 +02:00
Jannis Weis
8fa34b43ce HexEditor: Fix utf16 validation
Previously the utf8_view was validated for the utf16 valude instead
of the utf16_view.
2022-08-22 12:48:47 +02:00
Jannis Weis
3911758277 FileManager: Disable open_child_directory_action if no child exists 2022-08-22 12:48:11 +02:00
Jannis Weis
8b395ffcc5 FileManager: Respond to all selection changes in the Breadcrumbbar
Use Breadcrumbbars on_segment_change instead of on_segment_click.
This allows us to remove the manual handler invokation in the
open_child_directory_action
2022-08-22 12:48:11 +02:00
Andreas Kling
bf25b0a0b5 PixelPaint: Show more specific Undo/Redo action text
The Undo/Redo actions now tell you what kind of action will be
undone/redone. This is achieved by adding an "action text" field to the
ImageUndoCommand and having everyone who calls did_complete_action()
provide this text.
2022-08-21 20:33:03 +02:00
Andreas Kling
101eb53de5 PixelPaint: Add Tool::tool_name() as a single-point-of-truth
Let the tools know what their names are.
2022-08-21 20:33:01 +02:00
Andreas Kling
c45f99f735 PixelPaint: Make Filter::filter_name() const 2022-08-21 20:19:59 +02:00
MacDue
78813313f9 PixelPaint: Fix tool preview positions after moving a layer
Previously the tool previews did not account for the position of
the layer, so would be drawn in the wrong location if the layer was
not at 0,0.
2022-08-21 14:13:08 +02:00
MacDue
973771f8f4 PixelPaint: Make outline ellipse the same size as other ellipses
The non-AA outline ellipse was drawn outside the bounding rectangle
unlike all other ellipses. This commit now scales it to match the
size of the other ellipse drawing modes (AA, filled, etc).
2022-08-21 14:13:08 +02:00
Liav A
0eaee045cf SystemMonitor: Don't unveil /boot/Kernel.debug if it does not exist
If the user decided for some reason to not include Kernel debug symbols
in the disk image, let's not try to unveil it.
2022-08-21 10:54:40 +01:00
Andreas Kling
81ee870c9b FileManager: Add "open child directory" action (Alt+Down)
This mirrors the "open parent directory" action, but traverses the
breadcrumbbar segments from left-to-right instead. The name is a little
bit strange, and maybe we can come up with something better.

It does feel pretty nice to use though. :^)
2022-08-18 20:44:15 +02:00
Timothy Flynn
299cebbbcb FileManager: Do not activate "Show Dotfiles" action on every startup
Commit 75d1840cf detects if the initial path provided to the FileManager
contains a dotfile, and if so, forces the FileManager to show dotfiles.
However, it does this by activating the "Show Dotfiles" action. This has
the side effect of always setting and persisting the configuration,
overriding whatever the user's preference was.

Instead, only transiently update the view to show dotfiles if the path
contains a dotfile.
2022-08-18 15:58:41 +02:00
thankyouverycool
a74f512f6b LibGUI+WindowServer+DisplaySettings: Add Tooltips to SystemEffects
Tooltips can now be toggled on and off system-wide.
2022-08-16 16:53:00 +02:00
thankyouverycool
71a437b512 DisplaySettings: Update Workspaces tab GML
Removes some verbiage and arranges things consistent with other
settings dialogs.

Ideally we shouldn't litter UIs with shortcuts, tips, tricks,
self-evident or redundant descriptions, etc, so this can be
refined again in the future once there's an official way to expose/
customize keyboard shortcuts.
2022-08-16 16:41:47 +02:00
huttongrabiel
279caade73 TextEditor: Correct typo in MainWidget.{cpp,h} 2022-08-16 09:53:30 +01:00
Andreas Kling
6135411ea8 Terminal: Enable double-buffering for the terminal widget
This was disabled originally because of performance paranoia, but it
resulted in flickering sometimes, so let's err on the side of nicer
looking terminals. :^)
2022-08-15 17:18:11 +02:00
davidot
e746360b9a LibJS: Use NaN boxing to decrease the memory size of Values
Using the fact that there are 2^52-2 NaN representations we can
"NaN-box" all the Values possible. This means that Value no longer has
an explicit "Type" but that information is now stored in the bits of a
double. This is done by "tagging" the top two bytes of the double.
For a full explanation see the large comment with asserts at the top of
Value.

We can also use the exact representation of the tags to make checking
properties like nullish, or is_cell quicker. But the largest gains are
in the fact that the size of a Value is now halved.

The SunSpider and other benchmarks have been ran to confirm that there
are no regressions in performance compared to the previous
implementation. The tests never performed worse and in some cases
performed better. But the biggest differences can be seen in memory
usage when large arrays are allocated. A simple test which allocates a
1000 arrays of size 100000 has roughly half the memory usage.

There is also space in the representations for future expansions such as
tuples and records.

To ensure that Values on the stack and registers are not lost during
garbage collection we also have to add a check to the Heap to check for
any of the cell tags and extracting the canonical form of the pointer
if it matches.
2022-08-15 17:11:25 +02:00
huttongrabiel
27abbfdf09 TextEditor: Display widget when needle not found in replace all
When the given needle is not found, replace displays a widget that says
the needle is not found, but replace all does not.

This change adds that widget to replace all.
2022-08-15 13:09:56 +02:00
Andreas Kling
418c6eb13b Terminal: Update window size increments on terminal font change
This fixes an issue where the window resize overlay would display
inaccurate "columns x rows" after a font change. This happened because
we kept using size increments derived from the original font.
2022-08-14 23:33:28 +02:00
Andreas Kling
c3873d8709 Terminal: Rename menu item from "Settings" to "Terminal Settings" 2022-08-14 23:33:28 +02:00
Andreas Kling
33c13f1bdc Browser: Rename menu item from "Settings" to "Browser Settings" 2022-08-14 23:33:28 +02:00
Andreas Kling
24956ba65d SystemMonitor: Add some margin around widgets in the process inspector 2022-08-14 23:33:28 +02:00
Andreas Kling
511ccc3e36 SystemMonitor: Make process name appear in the process inspector again
This regressed with the UI layout system changes.
2022-08-14 23:33:28 +02:00
Lucas CHOLLET
1da9375400 Base: Launch ImageDecoder at session start-up 2022-08-14 21:52:35 +01:00
Lucas CHOLLET
e8115bfdb1 Base: Launch FileSystemAccessServer at session start-up 2022-08-14 21:52:35 +01:00
Lucas CHOLLET
ac7b0e69e5 Base: Launch WebContent at session start-up 2022-08-14 21:52:35 +01:00
Lucas CHOLLET
266e18e0b6 Base: Launch Request at session start-up 2022-08-14 21:52:35 +01:00
Lucas CHOLLET
07e89ad538 Base: Launch ConfigServer at session start-up 2022-08-14 21:52:35 +01:00
Lucas CHOLLET
bee5bcda73 Everywhere: Replace hardcoded anon's uid in unveil path with %uid 2022-08-14 21:52:35 +01:00
Lucas CHOLLET
c5b7c9f479 LibCore+LaunchServer: Move portal directory to /tmp/user/%uid
The `/tmp/user` directory is owned by root, this solution prevents
malicious users to interfere with other users' portals.

This commit also moves `launch`'s portal in the user directory.
2022-08-14 21:52:35 +01:00
kleines Filmröllchen
ec52d16f7a PixelPaint: Add Median filter
The median filter replaces a pixel with the median of all pixels
(usually grey value is used) in a square neighborhood. This is a
standard image processing filter used for denoising, as despite its
simplicity it can e.g. retain edges quite well.

The first implementation is quite inefficient mostly to environmental
constraints. Due to how images are passed to the processing function,
two unnecessary copies happen. And because there's no fast sorting
algorithm for small arrays (insertion sort) yet, quick sort needs to be
used which is quite slow on this scale.
2022-08-14 18:24:55 +01:00
Sam Atkins
ca0e32e59f FontEditor: Mark pasted glyphs as modified
Co-authored-by: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com>
2022-08-14 13:59:19 +01:00
Sam Atkins
5b7168b247 FontEditor: Add an option to show or hide modification highlights 2022-08-14 13:59:19 +01:00
Sam Atkins
7f6bf8c7c1 FontEditor: Store glyph modified state on the undo stack
This means that if you modify a glyph, then undo that modification, we
stop showing the glyph as modified.
2022-08-14 13:59:19 +01:00
cflip
0822bf5580 FileManager: Add 'Set as Desktop Wallpaper' action to file context menu 2022-08-14 09:44:08 +01:00
electrikmilk
a5cef2c41a Base: Add Icon for Partition Editor
This adds a 16x16 and 32x32 icon that is missing for the Partition
Editor.
2022-08-14 00:52:56 +01:00
Sam Atkins
913412e0c5 Browser+Base: Allow opening multiple URLs at once from command line
This lets you run `br example.com wikipedia.org some/local/file.html` in
one go and have them all opened as tabs.
2022-08-13 23:32:52 +02:00
Lucas CHOLLET
9df81e20d7 ThemeEditor: Use FileSystemAccessServer instead of unveiling files 2022-08-13 21:04:06 +01:00
cflip
272917de28 PixelPaint: Allow configuration of default image size through GUI
This adds a checkbox to the new image dialog that allows the user to
set the default values without needing to manually edit the config file
2022-08-13 09:10:29 +01:00
Liav A
488f22941b SystemMonitor: Remove GML references to the deleted Hardware tab 2022-08-12 12:24:40 +02:00
Junior Rantila
d40b0439d8 Terminal: Propagate more errors 2022-08-09 20:09:33 -04:00
thankyouverycool
1d445356b6 DisplaySettings: Add an Effects tab
Effects tab provides the UI for setting SystemEffects.
DisplaySettings is getting a bit crowded and might need a re-org
at some point, but this seems like a good home for effects while
the settings mature.
2022-08-09 12:08:21 +02:00
Karol Kosek
5c4d130af5 Browser: Make Refresh action in tab context menu refresh the chosen tab
It was sending refresh requests to the current tab instead.
2022-08-07 20:49:45 +02:00
Karol Kosek
0db481c763 Browser: Make the bookmark button use an action
This merges 2 duplicated definitions (one for button, second just for
the keyboard shortcut) which also makes the button 'react' on that
shortcut. :^)
2022-08-07 20:49:45 +02:00
Karol Kosek
3b5766d078 Browser: Show bookmark and history page lists under the their buttons
Previously they were showing right under the cursor.
2022-08-07 20:49:45 +02:00
Karol Kosek
8f5968d4ad Browser: Set margins for BookmarkBarWidget
It's just what GUI::Toolbar is using. Changed this to make the bookmark
overflow button align with the bookmark button.
2022-08-07 20:49:45 +02:00