Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-05-14 | LibWeb: Make CSS pseudo classes case-insensitive | Linus Groh | |
2020-05-13 | PaintBrush: Start the app with an "empty" single layer image :^) | Andreas Kling | |
2020-05-13 | PaintBrush: Add "Delete layer" action to move tool context menu | Andreas Kling | |
2020-05-13 | PaintBrush: Tweak initial main window size | Andreas Kling | |
2020-05-13 | PaintBrush: Add move tool context menu with "move to back/front" | Andreas Kling | |
Tools can now have an in-image context menu which you get when right- clicking inside the image editing area. Our first use of this is to provide the ability to move layers to the back/front. :^) | |||
2020-05-13 | PaintBrush: Tool::on_contextmenu() => on_tool_button_context_menu() | Andreas Kling | |
2020-05-13 | PaintBrush: Activate tool properly when right-clicking tool button | Andreas Kling | |
If we don't go via the action, the tool button becomes checked which can bypass the exclusivity mechanism. That should probably also be fixed but it's far outside the scope of where I am right now. :^) | |||
2020-05-13 | PaintBrush: Switch the active layer when clicking one with move tool | Andreas Kling | |
This feels very intuitive and nice, although maybe we need some way to override this behavior for the scenario where you're intending to move something currently behind something else. | |||
2020-05-13 | PaintBrush: Draw an outline around the image boundaries | Andreas Kling | |
2020-05-13 | PaintBrush: Add keyboard shortcuts for selecting different layers | Andreas Kling | |
2020-05-13 | LibGUI: Add AbstractTableView::move_selection(int steps) | Andreas Kling | |
This allows embedders to step the selection up/down and also simplifies AbstractTableView by sharing code between Key_Up and Key_Down. :^) | |||
2020-05-13 | PaintBrush: Add "Create new layer..." action | Andreas Kling | |
This action pops up a dialog asking for a name + dimensions. If OK is clicked, you get a new layer with those specifications. :^) | |||
2020-05-13 | PaintBrush: Clip layer contents outside the image rect when compositing | Andreas Kling | |
2020-05-13 | LibGUI: Add GUI::MessageBox::show_error() convenience function | Andreas Kling | |
This is just a wrapper around show() that puts up a standard-looking error message. | |||
2020-05-13 | PaintBrush: Don't paint over the nice GUI::Frame around ImageEditor | Andreas Kling | |
2020-05-13 | PaintBrush: Add a "Tool" menu and put all the tools in it | Andreas Kling | |
2020-05-13 | LibWeb: Support "transparent" CSS color value | Linus Groh | |
2020-05-13 | LibWeb: Make parsing of most CSS values case-insensitive | Linus Groh | |
These are all valid: width: AUTO; height: 10PX; color: LiMeGrEeN; | |||
2020-05-13 | LibWeb: Make CSS property parsing case-insensitive | Linus Groh | |
These are all valid: background-COLOR: red; Background-Color: red; BACKGROUND-COLOR: red; BaCkGrOuNd-CoLoR: red; | |||
2020-05-13 | AK: Add StringView::equals_ignoring_case() | Linus Groh | |
StringUtils::equals_ignoring_case() already operates on a StringView&, so StringView should have the method directly without having to go through a temporary String (which also has the method). | |||
2020-05-13 | Shell: Break out of continuation when ^C is pressed | AnotherTest | |
This fixes the little issue with Shell not allowing cancellation of commands once they were in continuation mode ``` $ ls ' $ # No matter what we do here, we cannot escape 'ls' ``` | |||
2020-05-13 | LibLine: Add a hook to run when an interrupt is handled | AnotherTest | |
We do not want to clog up signal handlers by putting possibly complex logic inside them, so allow the editor to handle that. | |||
2020-05-13 | PaintBrush: Let's have a tool (pen) checked on startup | Andreas Kling | |
2020-05-13 | PaintBrush: Put all the tool buttons into an action group | Andreas Kling | |
This allows us to easily make them exclusive and uncheckable. :^) | |||
2020-05-13 | PaintBrush: Oops, fix typo in ImageEditor::keyup_event() | Andreas Kling | |
2020-05-13 | PaintBrush: Add keyboard shortcuts for all tools | Andreas Kling | |
I've used the shortcuts from GIMP for the most part, since that's what I'm used to. We can definitely iterate on these to find better options as the app develops. :^) | |||
2020-05-13 | PaintBrush: Most tools still care about mousemoves outside layer | Andreas Kling | |
This allows you to do things like start a line outside the layer, or spray a little outside but still partly hitting the layer. :^) | |||
2020-05-13 | PaintBrush: Make the line, rectangle and ellipsis preview work again | Andreas Kling | |
You can now see what you're drawing before committing to it. This works by passing the second_paint_event from the ImageEditor to the tool. We also pass the active layer which makes it easier for the tool to keep his logic in layer-relative coordinates even while drawing preview states directly into the ImageEditor backing bitmap. | |||
2020-05-13 | PaintBrush: Make the move tool handle arrow key events | Andreas Kling | |
You can now nudge layers around with the arrow keys. :^) | |||
2020-05-13 | PaintBrush: Make ImageEditor forward keydown and keyup events to tool | Andreas Kling | |
2020-05-13 | PaintBrush: Make the ImageEditor accept focus | Andreas Kling | |
2020-05-13 | PaintBrush: Remove the PaintableWidget | Andreas Kling | |
Moved the current colors to ImageEditor for now, although I don't think that will be their final home. | |||
2020-05-13 | LibJS: Trim whitespace from string before coercing to number | Linus Groh | |
2020-05-13 | LibJS: Use String::trim_whitespace() for String.prototype.trim*() | Linus Groh | |
2020-05-13 | AK: Replace String::trim_spaces() with String::trim_whitespace() | Linus Groh | |
As suggested by @awesomekling in a code review and (initially) ignored by me :^) Implementation is roughly based on LibJS's trim_string(), but with a fix for trimming all-whitespace strings. | |||
2020-05-13 | LibJS: Make string to number coercion work for doubles | Linus Groh | |
2020-05-13 | LibJS: Make the Function() constructor throw a SyntaxError, not return | Linus Groh | |
2020-05-13 | WindowServer: Invalidate the cursor when setting an override cursor | DexesTTP | |
2020-05-13 | Revert "Build: Use fakeroot if non-root build is possible" | Andreas Kling | |
This reverts commit 3d342f72a76b70fcee8872da081a19f7ea229eec. This is causing trouble for macOS users. Also it's painfully slow compared to using the sudo method. This should definitely not be the default since it punishes people who have genext2fs installed. | |||
2020-05-13 | LibJS: Check AssignmentExpression LHS in parser | Linus Groh | |
There are many cases which shouldn't even parse, like null = ... true = ... false = ... 123 = ... "foo" = ... However this *is* valid syntax: foo() = ... So we still have to keep the current code doing a runtime check if the LHS value is a resolvable reference. I believe this was declared valid syntax to *in theory* allow functions returning references - though in practice that isn't a thing. Fixes #2204. | |||
2020-05-13 | LibJS: Handle empty values in operator<<() | Linus Groh | |
Otherwise something like dbg() << Value(); chokes on ASSERT_NOT_REACHED() in Value::to_string() | |||
2020-05-13 | PaintBrush: Update the LayerModel when moving layers around | Andreas Kling | |
This ensures that the layer table view always shows the correct coordinates for the layer. | |||
2020-05-13 | PaintBrush: Switch to the "move" cursor while moving layers around | Andreas Kling | |
2020-05-13 | LibGUI+WindowServer: Allow apps to use the "move" cursor :^) | Andreas Kling | |
2020-05-13 | PaintBrush: Borrow the "move" cursor for the "move" tool :^) | Andreas Kling | |
2020-05-13 | PaintBrush: Add a "Move" tool for moving layers around :^) | Andreas Kling | |
Tool mouse event handlers now receive both a layer-relative mouse event and the original event. This is needed for the move tool since it moves the layer and thereby changes the origin of future events every time it moves. | |||
2020-05-13 | PaintBrush: Silence debug spam in Image compositing | Andreas Kling | |
2020-05-12 | PaintBrush: Let's have Layer::rect() and Layer::relative_rect() | Andreas Kling | |
These two have the same semantics as GUI::Widget. The rect() is always at location { 0, 0 }, while the relative_rect()'s location is relative to the "parent", which in this case is the Layer's Image. | |||
2020-05-12 | PaintBrush: Port all the existing toolbox tools to the Layer world :^) | Andreas Kling | |
Many tools are not working perfectly right yet, but we'll fix them! | |||
2020-05-12 | LibGUI: Add missing Vector.h include to Event.h | Andreas Kling | |