Pierre
80a360683f
PaintBrush: Add 'Remove active layer' to the Menu
...
This allows the active Layer to be removed through the Menu or by using
the shortcut Ctrl+D.
2020-05-14 14:44:27 +02:00
Andreas Kling
31c178b9b5
PaintBrush: Start the app with an "empty" single layer image :^)
2020-05-13 22:28:33 +02:00
Andreas Kling
40a72883ff
PaintBrush: Add "Delete layer" action to move tool context menu
2020-05-13 22:12:14 +02:00
Andreas Kling
b25c6ab884
PaintBrush: Tweak initial main window size
2020-05-13 22:12:03 +02:00
Andreas Kling
720ebee1be
PaintBrush: Add move tool context menu with "move to back/front"
...
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 22:03:29 +02:00
Andreas Kling
02d9cf2039
PaintBrush: Tool::on_contextmenu() => on_tool_button_context_menu()
2020-05-13 21:51:43 +02:00
Andreas Kling
72e57561a1
PaintBrush: Activate tool properly when right-clicking tool button
...
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 21:50:13 +02:00
Andreas Kling
410cdba5a9
PaintBrush: Switch the active layer when clicking one with move tool
...
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 21:46:19 +02:00
Andreas Kling
0f77be046f
PaintBrush: Draw an outline around the image boundaries
2020-05-13 21:29:50 +02:00
Andreas Kling
a95ed3fdcc
PaintBrush: Add keyboard shortcuts for selecting different layers
2020-05-13 21:25:13 +02:00
Andreas Kling
4cf3f00bab
PaintBrush: Add "Create new layer..." action
...
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 21:16:55 +02:00
Andreas Kling
0f3e58ffe0
PaintBrush: Clip layer contents outside the image rect when compositing
2020-05-13 21:12:32 +02:00
Andreas Kling
7ca9259ffd
PaintBrush: Don't paint over the nice GUI::Frame around ImageEditor
2020-05-13 19:49:38 +02:00
Andreas Kling
98cb442edf
PaintBrush: Add a "Tool" menu and put all the tools in it
2020-05-13 19:49:38 +02:00
Andreas Kling
2c45076e68
PaintBrush: Let's have a tool (pen) checked on startup
2020-05-13 15:06:11 +02:00
Andreas Kling
1631077b74
PaintBrush: Put all the tool buttons into an action group
...
This allows us to easily make them exclusive and uncheckable. :^)
2020-05-13 14:48:17 +02:00
Andreas Kling
0de3b1c4bf
PaintBrush: Oops, fix typo in ImageEditor::keyup_event()
2020-05-13 14:37:12 +02:00
Andreas Kling
d045972559
PaintBrush: Add keyboard shortcuts for all tools
...
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 14:23:08 +02:00
Andreas Kling
24f9406784
PaintBrush: Most tools still care about mousemoves outside layer
...
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 13:50:35 +02:00
Andreas Kling
96d03546ef
PaintBrush: Make the line, rectangle and ellipsis preview work again
...
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 13:43:20 +02:00
Andreas Kling
8318842c7e
PaintBrush: Make the move tool handle arrow key events
...
You can now nudge layers around with the arrow keys. :^)
2020-05-13 13:21:49 +02:00
Andreas Kling
06405e83d7
PaintBrush: Make ImageEditor forward keydown and keyup events to tool
2020-05-13 13:21:49 +02:00
Andreas Kling
55d96715ff
PaintBrush: Make the ImageEditor accept focus
2020-05-13 13:21:49 +02:00
Andreas Kling
8882b6bd9a
PaintBrush: Remove the PaintableWidget
...
Moved the current colors to ImageEditor for now, although I don't think
that will be their final home.
2020-05-13 13:21:47 +02:00
Andreas Kling
fbeaf76f96
PaintBrush: Update the LayerModel when moving layers around
...
This ensures that the layer table view always shows the correct
coordinates for the layer.
2020-05-13 00:21:13 +02:00
Andreas Kling
40ffa8c626
PaintBrush: Switch to the "move" cursor while moving layers around
2020-05-13 00:16:54 +02:00
Andreas Kling
3d50f40396
PaintBrush: Add a "Move" tool for moving layers around :^)
...
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 00:09:04 +02:00
Andreas Kling
58ee75c87a
PaintBrush: Silence debug spam in Image compositing
2020-05-13 00:00:24 +02:00
Andreas Kling
9566f6c8b3
PaintBrush: Let's have Layer::rect() and Layer::relative_rect()
...
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 23:49:52 +02:00
Andreas Kling
83d24dcb1d
PaintBrush: Port all the existing toolbox tools to the Layer world :^)
...
Many tools are not working perfectly right yet, but we'll fix them!
2020-05-12 23:44:46 +02:00
Andreas Kling
35c2d389f5
PaintBrush: Show the layer stack in a table view on the right hand side
2020-05-12 23:00:23 +02:00
Andreas Kling
985c2550c1
PaintBrush: Start refactoring to support layer-based images
...
The main editing widget is now the new ImageEditor widget, which works
on an Image object, which internally has a stack of Layer objects.
Layers are composited back-to-front when painting the Image inside an
ImageEditor.
2020-05-12 22:22:45 +02:00
Andreas Kling
a87f5e4154
Browser: Allow Ctrl+clicking on bookmark bar buttons :^)
2020-05-12 20:35:45 +02:00
Andreas Kling
977863ea07
LibGUI: Include keyboard modifier state with button on_click calls
...
This will allow you us to implement special behavior when Ctrl+clicking
a button.
2020-05-12 20:31:16 +02:00
Andreas Kling
3a905aed06
SystemMonitor: Remove the toolbar above the process table
...
This was looking a bit too whimsical and didn't really fit with the
overall look of the window anymore. The actions are available via
the context menu still.
2020-05-12 19:51:36 +02:00
Andreas Kling
388ae07960
Browser: Some action fixes
...
- Use the same reload action in menu and toolbar
- Scope more actions inside Browser::Tab
2020-05-12 17:07:20 +02:00
Andreas Kling
20f50f9133
LibProtocol: Pass response headers in a case insensitive HashMap
...
HTTP headers are case-insensitive, so just add CaseInsensitiveTraits
to the HashMap and we're good to go! :^)
2020-05-10 22:32:12 +02:00
Andreas Kling
aef5d28828
Browser: Allow opening URLs by dropping them on the HtmlView :^)
2020-05-10 22:32:12 +02:00
Andreas Kling
f1708b3832
LibWeb: Teach HtmlView how to render Markdown files :^)
2020-05-10 22:32:12 +02:00
Andreas Kling
5fcd25e8f6
Browser: Use "about:blank" as the default home page
...
This can be overridden in Browser.ini, but if there's no value there,
we now use "about:blank"
2020-05-10 11:18:47 +02:00
Andreas Kling
fe0de26277
LibWeb+Browser: Support about: URL protocol so "about:blank" works :^)
...
For now, we simply load an empty resource from any about: URL.
2020-05-10 11:14:30 +02:00
FalseHonesty
60024ab574
Browser: Close tabs when middle clicked
2020-05-09 23:54:20 +02:00
Linus Groh
e92e919724
Browser: Add missing copyright header to WindowActions.{cpp,h}
2020-05-09 23:45:16 +02:00
Andreas Kling
f41cd808de
TextEditor: Use JS syntax highlighting for .json files :^)
2020-05-09 16:48:28 +02:00
Andreas Kling
f596b12a04
LibVT+Terminal: Support hyperlinks in the terminal :^)
...
We now support basic hyperlinking in the terminal with <OSC>;8;;URL<ST>
Links are opened via LaunchServer on Ctrl+LeftMouse.
2020-05-09 16:16:16 +02:00
Nicholas Hollett
b7810a31c3
LibDesktop: Switch to LaunchServer for DesktopServices::open
...
Moves DirectoryServices out of LibCore (because we need to link with
LibIPC), renames it Desktop::Launcher (because Desktop::DesktopServices
doesn't scan right) and ports it to use the LaunchServer which is now
responsible for starting programs for a file.
2020-05-09 15:13:32 +02:00
Hüseyin ASLITÜRK
3874664752
Applications: FontEditor, relocate form items by fonts size
...
FontEditor widget rewritten for respect to the font size and added fixed width and height header values.
2020-05-09 10:00:13 +02:00
Andreas Kling
239fd33405
Services: Move Taskbar and SystemMenu from Applications to Services
2020-05-08 22:00:41 +02:00
Andreas Kling
cf3b58fbe8
Services: Renamed from Servers
...
It didn't feel right to have a "DHCPClient" in a "Servers" directory.
Rename this to Services to better reflect the type of programs we'll
be putting in there.
2020-05-08 21:57:44 +02:00
Andreas Kling
788293ead8
Browser: Move InspectorWidget into the Browser namespace
2020-05-08 21:38:30 +02:00