summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-14LibWeb: Make CSS pseudo classes case-insensitiveLinus Groh
2020-05-13PaintBrush: Start the app with an "empty" single layer image :^)Andreas Kling
2020-05-13PaintBrush: Add "Delete layer" action to move tool context menuAndreas Kling
2020-05-13PaintBrush: Tweak initial main window sizeAndreas Kling
2020-05-13PaintBrush: 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-13PaintBrush: Tool::on_contextmenu() => on_tool_button_context_menu()Andreas Kling
2020-05-13PaintBrush: Activate tool properly when right-clicking tool buttonAndreas 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-13PaintBrush: Switch the active layer when clicking one with move toolAndreas 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-13PaintBrush: Draw an outline around the image boundariesAndreas Kling
2020-05-13PaintBrush: Add keyboard shortcuts for selecting different layersAndreas Kling
2020-05-13LibGUI: 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-13PaintBrush: Add "Create new layer..." actionAndreas 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-13PaintBrush: Clip layer contents outside the image rect when compositingAndreas Kling
2020-05-13LibGUI: Add GUI::MessageBox::show_error() convenience functionAndreas Kling
This is just a wrapper around show() that puts up a standard-looking error message.
2020-05-13PaintBrush: Don't paint over the nice GUI::Frame around ImageEditorAndreas Kling
2020-05-13PaintBrush: Add a "Tool" menu and put all the tools in itAndreas Kling
2020-05-13LibWeb: Support "transparent" CSS color valueLinus Groh
2020-05-13LibWeb: Make parsing of most CSS values case-insensitiveLinus Groh
These are all valid: width: AUTO; height: 10PX; color: LiMeGrEeN;
2020-05-13LibWeb: Make CSS property parsing case-insensitiveLinus Groh
These are all valid: background-COLOR: red; Background-Color: red; BACKGROUND-COLOR: red; BaCkGrOuNd-CoLoR: red;
2020-05-13AK: 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-13Shell: Break out of continuation when ^C is pressedAnotherTest
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-13LibLine: Add a hook to run when an interrupt is handledAnotherTest
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-13PaintBrush: Let's have a tool (pen) checked on startupAndreas Kling
2020-05-13PaintBrush: Put all the tool buttons into an action groupAndreas Kling
This allows us to easily make them exclusive and uncheckable. :^)
2020-05-13PaintBrush: Oops, fix typo in ImageEditor::keyup_event()Andreas Kling
2020-05-13PaintBrush: Add keyboard shortcuts for all toolsAndreas 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-13PaintBrush: Most tools still care about mousemoves outside layerAndreas 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-13PaintBrush: Make the line, rectangle and ellipsis preview work againAndreas 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-13PaintBrush: Make the move tool handle arrow key eventsAndreas Kling
You can now nudge layers around with the arrow keys. :^)
2020-05-13PaintBrush: Make ImageEditor forward keydown and keyup events to toolAndreas Kling
2020-05-13PaintBrush: Make the ImageEditor accept focusAndreas Kling
2020-05-13PaintBrush: Remove the PaintableWidgetAndreas Kling
Moved the current colors to ImageEditor for now, although I don't think that will be their final home.
2020-05-13LibJS: Trim whitespace from string before coercing to numberLinus Groh
2020-05-13LibJS: Use String::trim_whitespace() for String.prototype.trim*()Linus Groh
2020-05-13AK: 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-13LibJS: Make string to number coercion work for doublesLinus Groh
2020-05-13LibJS: Make the Function() constructor throw a SyntaxError, not returnLinus Groh
2020-05-13WindowServer: Invalidate the cursor when setting an override cursorDexesTTP
2020-05-13Revert "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-13LibJS: Check AssignmentExpression LHS in parserLinus 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-13LibJS: Handle empty values in operator<<()Linus Groh
Otherwise something like dbg() << Value(); chokes on ASSERT_NOT_REACHED() in Value::to_string()
2020-05-13PaintBrush: Update the LayerModel when moving layers aroundAndreas Kling
This ensures that the layer table view always shows the correct coordinates for the layer.
2020-05-13PaintBrush: Switch to the "move" cursor while moving layers aroundAndreas Kling
2020-05-13LibGUI+WindowServer: Allow apps to use the "move" cursor :^)Andreas Kling
2020-05-13PaintBrush: Borrow the "move" cursor for the "move" tool :^)Andreas Kling
2020-05-13PaintBrush: 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-13PaintBrush: Silence debug spam in Image compositingAndreas Kling
2020-05-12PaintBrush: 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-12PaintBrush: 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-12LibGUI: Add missing Vector.h include to Event.hAndreas Kling