summaryrefslogtreecommitdiff
path: root/Userland/Applications
AgeCommit message (Collapse)Author
2021-09-29Browser: Use CommonActions where possible and various fixesMarcus Nilsson
This replaces some actions with CommonActions and also adds '...' to menu items that require user input.
2021-09-28Assistant: Zero initialize fuzzy match arrayBrian Gianforcaro
SonarCloud flagged the read of the matches array as a potential garbage read. I don't believe the case it flagged was possible to reach due to how the code is structured, however we should really just be zero initializing these stack arrays.
2021-09-28SystemMonitor: Unveil /usr/local/libRodrigo Tobar
This is necessary to symbolicate libraries installed under /usr/local/lib.
2021-09-27LibWeb+Browser: Make ad blocking work in the multi-process worldAndreas Kling
We now send the list of content filters over to new WebContent processes after creating an OutOfProcessWebView. :^)
2021-09-26ThemeEditor: Show currently opened theme path in the window titleKarol Kosek
You can open files since #9979, so let's show the path there to distinguish open theme files more easily!
2021-09-25PixelPaint: Close image tabs on middle clickKarol Kosek
2021-09-25PixelPaint: Close New Image dialog after pressing return keyKarol Kosek
13e526de43847ac86d74e3cb0be2d6b930f1d46f added the feature to new Layer dialog. This patch adds it to Image dialog to stay consistent across the app. :^)
2021-09-24FontEditor: Allow editing new font headerthankyouverycool
And make use of mapping functions moved from LibGUI/FontPickerWeightModel.h => LibGfx/FontStyleMapping.h
2021-09-23LibJS: Convert Value::invoke and VM::call to ThrowCompletionOrIdan Horowitz
2021-09-22FontEditor: Keep selected glyph in view on resizethankyouverycool
2021-09-22FontEditor: Make update_{statusbar,preview} member functionsthankyouverycool
For use outside constructor. Renames demo to preview to make the UI and code comport.
2021-09-22FontEditor: Remove reprobe_font()thankyouverycool
This was used to update GlyphMapWidget on Type changes and is no longer needed since removal of Type enumeration in bb592ae.
2021-09-22FontEditor: Sanitize RTL and control glyphs in Clipboard metadatathankyouverycool
Fixes display issues in ClipboardHistory.
2021-09-22FontEditor: Put glyph width changes on the undo stackthankyouverycool
And select the restored glyph on undo/redo.
2021-09-22FontEditor: Set width to zero when deleting a glyphthankyouverycool
Previously, Delete left a glyph's width maximized.
2021-09-22FontEditor: Simplify initialization by disabling widget callbacksthankyouverycool
Reduces some complexity dealing with callback effects and fixes redundant calls to update_title and erroneously set glyph widths.
2021-09-21CrashReporter: Show coredump loading progress in the Taskbar :^)Andreas Kling
2021-09-21CrashReporter+LibCoredump: Show progress window while loading coredumpAndreas Kling
Some coredumps take a long time to symbolicate, so let's show a simple window with a progress bar while they are loading. I'm not super happy with the factoring of this feature, but it's an absolutely kickass feature that makes crashing feel 100% more responsive than before, since you now get GUI feedback almost immediately after a crash occurs. :^)
2021-09-21CrashDaemon+CrashReporter: Streamline crash reporting a little bitAndreas Kling
Before this patch, this is what would happen after something crashed: 1. CrashDaemon finds a new coredump in /tmp 2. CrashDaemon compresses the new coredump (gzip) 3. CrashDaemon parses the uncompressed coredump and prints a backtrace 4. CrashDaemon launches CrashReporter 5. CrashReporter parses the uncompressed coredump (again) 6. CrashReporter unlinks the uncompressed coredump 7. CrashReporter displays a GUI This was taking quite a long time when dealing with large programs crashing (like Browser's WebContent processes.) The new flow: 1. CrashDaemon finds a new coredump in /tmp 2. CrashDaemon mmap()'s the (uncompressed) coredump 3. CrashDaemon launches CrashReporter 4. CrashDaemon goes to sleep for 3 seconds (hack alert!) 5. CrashReporter parses the (uncompressed) coredump 6. CrashReporter unlinks the (uncompressed) coredump 7. CrashReporter displays a GUI 8. CrashDaemon wakes up (after step 4) 9. CrashDaemon compresses the coredump (gzip) TL;DR: we no longer parse the coredumps twice, and we also prioritize launching the CrashReporter GUI immediately when a new coredump shows up, instead of compressing and parsing it in CrashDaemon first. The net effect of this is that you get a backtrace on screen much sooner. That's pretty nice. :^)
2021-09-20WidgetGallery+MouseSettings: Use LexicalPath::basename()Karol Kosek
2021-09-20PixelPaint: Move Tools to it's own subdirectoryMarcus Nilsson
The PixelPaint source directory was getting a bit large, let's move all the Tools to it's own subdirectory. Also remove some unused includes.
2021-09-19PixelPaint: Use main window's icon in the 'Create new image' widgetKarol Kosek
2021-09-19CrashReporter: Add some margin around the backtrace & register viewsAndreas Kling
2021-09-19FontEditor: Add new tools to navigate code pointsthankyouverycool
Visible glyphs can now be cycled through, or a code point specified and jumped to directly.
2021-09-19FontEditor: Update editor to handle new font formatthankyouverycool
The editor now unmasks fonts on load, mapping their glyphs to the complete unicode character set, and masks them upon saving to reduce disk space. This is a naive approach in terms of memory usage and can be improved but whose immediate goal is to allow editing any glyph without concern for range allocation.
2021-09-19TextEditor: Show total character and word count without selectionthankyouverycool
2021-09-18LibWeb: Remove the unused LayoutTreeModelAndreas Kling
If we want to bring back this functionality, we'll have to rewrite it for multi-process mode anyway.
2021-09-17Magnifier: Add 8x magnification and pausingMarcus Nilsson
This adds an option for even more magnification, when you really need to count pixels, as well as pausing the capture by pressing Space and switching between magnification levels with keys 2, 4 & 8.
2021-09-17SystemMonitor: Make process memory statistics more human readableJulian Offenhäuser
These are the only instances in SystemMonitor which still show memory statistics in KiB only. They will now adapt to the input size better.
2021-09-17PixelPaint: Allow selecting a custom aspect ratio for RectangleToolMustafa Quraish
If you enter a custom aspect ratio, and are not holding down shift, the rectangle will be constrained to the entered aspect ratio
2021-09-17PixelPaint: Allow selecting a custom aspect ratio for EllipseToolMustafa Quraish
If you enter a custom aspect ratio, and are not holding down shift, the bounding rect for the ellipse will be constrained to the entered aspect ratio
2021-09-17LibGfx+PixelPaint: Add `Point::end_point_for_aspect_ratio` methodMustafa Quraish
Previously we only had `Point::end_point_for_square_aspect_ratio`, which was convenient for PixelPaint but assumed the aspect ratio was always fixed at 1. This patch replaces it with a new mthod that takes in an arbitrary aspect ratio and computes the end point based off that. There's some explicit casting going on in `Point.cpp` to ensure that the types line up, since we're templating Point based on `T`.`
2021-09-17Browser: Remove redundant tab::view() call from the tab constructorEyad Hossam
2021-09-16PixelPaint: Implement automatic scrolling in LayerListWidgetMarcus Nilsson
The previous implementation of automatic scrolling in LayerListWidget relied on mousemove events to perform the scrolling, which didn't produce the expected behavior. Instead use the new auto scroll timer.
2021-09-16PixelPaint: Tweak layer/tool properties widget heightsMarcus Nilsson
There's no use for these two to be larger than necessary when resizing the window.
2021-09-16PixelPaint: Don't select the same layer twice in LayerListWidgetMarcus Nilsson
Without this check we would do an unnecessary partial second round trip because of the call chain: LayerListWidget::set_selected_layer() -> LayerListWidget::on_layer_select() -> ImageEditor::set_active_layer() -> ImageEditor::on_active_layer_change() -> LayerListWidget::set_selected_layer()
2021-09-16PixelPaint: Don't update ImageEditor in set_active_layer()Marcus Nilsson
Setting the active layer does not cause anything to render differently. Thus no update is needed and the call to layers_did_change() is unnecessary.
2021-09-16ThemeEditor: Save theme metrics and paths to fileKarol Kosek
Prior this change, custom title metrics seen in the Basalt theme and custom icon paths in Redmond themes were dropped when saving a file. Now any entry, even empty, will be saved. This may end up with slightly larger files, but on other hand, users will be able to see every option in a text editor, without a need to look at the code/docs.
2021-09-15PixelPaint: Add ability to draw squares and circlesZyper
Shift-key modifier for tools forces square aspect ratio. It allows drawing squares with Rectangle Tool and circles with Ellipse Tool.
2021-09-13Everywhere: Use my fancy new serenityos.org email :^)Mustafa Quraish
2021-09-13Browser: Rename "DOM Inspector" to just "Inspector"Andreas Kling
It inspects more than the DOM, after all. :^)
2021-09-13PixelPaint: Make CloneTool change cursor temporarily while selectingMustafa Quraish
This just provides some nice visual feedback when you are in the middle of selecting a color. An eyedropper might not be the ideal choice here, but among the cursors we already have it is the best one.
2021-09-13PixelPaint: Add `ImageEditor::update_tool_cursor()` methodMustafa Quraish
This just allows us to ask the image editor to update the tool's current cursor. This is useful in cases where a tool may want to change it's cursor for some operation, and wants to invalidate the active cursor cached in the ImageEditor.
2021-09-13PixelPaint: Add a marker for CloneTool's selected positionMustafa Quraish
Now we add a little marker to show the current sample position of the CloneTool. The current implementation for updating the cursor location is really dumb since it just updates the whole editor, but that's a yak on the stack to fix.
2021-09-13PixelPaint: Incorporate CloneTool into toolboxMustafa Quraish
2021-09-13PixelPaint: Add Clone Tool :^)Mustafa Quraish
There's still a lot to be desired in terms of functionality and usability, but this is a start. When using the clone tool, you can press Alt to sample a location, and then the brush will clone the color from there.
2021-09-13ImageViewer: Enable and disable navigationMohsan Ali
Before there was dialogs to indicate if current file is last or first. So in this commit, I added functionality to enable and disable forward and backward navigation based on if the next file is avialable or not and if the pervious file is avialable or not, respectively. ImageViewer: Refactor code and init data Data intialization was not happening properly, now I did Initializations properly so that navigation can work from the very first image.
2021-09-13Browser: Add some UI padding in the Inspector widgetAndreas Kling
2021-09-13FileOperation: Deduplicate destination file names on copyTetsui Ohkubo
When there is a file with the same name in the destination directory, FileManager overwrites that file without any warning. With this change, such a file will be automatically renamed to "emoji-2.txt", for example. Also, currently there is a check in FileManager that makes copy and paste of a file in the same directory no-op. This change removes that check, because it is no longer a problem.
2021-09-13PixelPaint: Fix Line/Rectangle second paint alignment with pixelsMustafa Quraish
The problem was a bit more complex than originally anticipated, and the root of the problem is that the "coordinates" of a pixel are actually the top left of the pixel, and when we're really zoomed in, the difference in editor coordinates of the top-left and the center of the pixel is significant. So, we need to offset the "start" point when we are painting on the editor to account for this, based on the current scale. This patch adds a `editor_stroke_position` in `Tool` which can be used to compute what point (in editor coords) we should use for a given pixel and it's corresponding stroke thickness. Note that this doesn't really work well with the ellipse, since that is drawn with a different mechanism. Using this new method with the `EllipseTool` seems to give the same (or slightly worse) results, so I have not changed anything there for now.