summaryrefslogtreecommitdiff
path: root/Applications
AgeCommit message (Collapse)Author
2020-05-16FileManager+LibGUI+Userland: Switch clipboard to MIME typesSergey Bugaev
We will now actually use MIME types for clipboard. The default type is now "text/plain" (instead of just "text"). This also fixes some issues in copy(1) and paste(1).
2020-05-14Clipboard: Move the system clipboard to a dedicated service process :^)Andreas Kling
This commit moves the clipboard from WindowServer into a new Clipboard service program. Clipboard runs as the unprivileged "clipboard" user and with a much tighter pledge than WindowServer. To keep things working as before, all GUI::Application users now make a connection to Clipboard after making the connection to WindowServer. It could be interesting to connect to Clipboard on demand, but right now that would necessitate expanding every GUI app's pledge to include "unix" and also unveiling the clipboard portal, which I prefer not to.
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-14PaintBrush: Added 'Move active layer up/down' to the MenuPierre
This allowes the active layer to be moved up or down.
2020-05-14PaintBrush: Add 'Remove active layer' to the MenuPierre
This allows the active Layer to be removed through the Menu or by using the shortcut Ctrl+D.
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-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-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-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-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-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-12PaintBrush: Show the layer stack in a table view on the right hand sideAndreas Kling
2020-05-12PaintBrush: Start refactoring to support layer-based imagesAndreas Kling
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-12Browser: Allow Ctrl+clicking on bookmark bar buttons :^)Andreas Kling
2020-05-12LibGUI: Include keyboard modifier state with button on_click callsAndreas Kling
This will allow you us to implement special behavior when Ctrl+clicking a button.
2020-05-12SystemMonitor: Remove the toolbar above the process tableAndreas Kling
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-12Browser: Some action fixesAndreas Kling
- Use the same reload action in menu and toolbar - Scope more actions inside Browser::Tab
2020-05-10LibProtocol: Pass response headers in a case insensitive HashMapAndreas Kling
HTTP headers are case-insensitive, so just add CaseInsensitiveTraits to the HashMap and we're good to go! :^)
2020-05-10Browser: Allow opening URLs by dropping them on the HtmlView :^)Andreas Kling
2020-05-10LibWeb: Teach HtmlView how to render Markdown files :^)Andreas Kling
2020-05-10Browser: Use "about:blank" as the default home pageAndreas Kling
This can be overridden in Browser.ini, but if there's no value there, we now use "about:blank"
2020-05-10LibWeb+Browser: Support about: URL protocol so "about:blank" works :^)Andreas Kling
For now, we simply load an empty resource from any about: URL.
2020-05-09Browser: Close tabs when middle clickedFalseHonesty
2020-05-09Browser: Add missing copyright header to WindowActions.{cpp,h}Linus Groh
2020-05-09TextEditor: Use JS syntax highlighting for .json files :^)Andreas Kling
2020-05-09LibVT+Terminal: Support hyperlinks in the terminal :^)Andreas Kling
We now support basic hyperlinking in the terminal with <OSC>;8;;URL<ST> Links are opened via LaunchServer on Ctrl+LeftMouse.
2020-05-09LibDesktop: Switch to LaunchServer for DesktopServices::openNicholas Hollett
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.