summaryrefslogtreecommitdiff
path: root/Libraries/LibGUI
AgeCommit message (Collapse)Author
2020-07-10FileManager: Show an open folder icon for the selected directorythankyouverycool
The currently selected directory now displays an open folder icon in the directory tree.
2020-07-10LibGUI: Add missing on_toggle hook to TreeViewthankyouverycool
Alt+arrow toggles are now captured.
2020-07-09LibGUI: Make scrollbar thumb size relative to content sizeTom
In order to calculate a thumb size that is a representation of the visible portion (page) of the content, that information needs to be taken into account.
2020-07-09LibGUI: Implement IconView auto-scrolling when trying to select items out of ↵Tom
view If selecting in a large icon view, and dragging the mouse outside of the widget, or close to the border of it, start scrolling automatically. This allows for selecting large amount of items that exceed the amount that can be displayed.
2020-07-07WindowServer+LibGUI: Add "wait" cursorLinus Groh
2020-07-07WindowServer+LibGUI: Add "help" cursorLinus Groh
2020-07-07LibGUI: Use Resize{Column,Row} cursor for Splitter and AbstractTableViewLinus Groh
2020-07-07WindowServer+LibGUI: Add "resize row/column" cursorsLinus Groh
2020-07-07LibGUI: Add on_toggle function to TreeViewthankyouverycool
This adds a function to expose the index and open/close state of expandible nodes in TreeView.
2020-07-04LibGUI: Sort FileSystemModel alphabetically internallyAndreas Kling
This just makes everything nicer.
2020-07-04LibGUI: Fix glitchy behavior in ScrollableWidget::scroll_into_view()Andreas Kling
This function relies on visible_content_rect() which could previously return rectangles with negative size. This was causing TableViews to scroll down a little bit when assigning a model to them. Also tweak the logic so we scroll a 0x0 rect into view, giving a slightly nicer final position.
2020-07-04LibGUI: Add SortingProxyModel::sort_role()Andreas Kling
This allows you to specify a role to sort by. Defaults to Role::Sort. Also reordered the Role enum so that Role::Custom is last.
2020-07-04Userspace: Remove a bunch of unnecessary Kernel/API/KeyCode.h includesAndreas Kling
2020-07-04Kernel: Move headers intended for userspace use into Kernel/API/Andreas Kling
2020-07-04LibGUI: Turn GUI::Application::the() into a pointerAndreas Kling
During app teardown, the Application object may be destroyed before something else, and so having Application::the() return a reference was obscuring the truth about its lifetime. This patch makes the API more honest by returning a pointer. While this makes call sites look a bit more sketchy, do note that the global Application pointer only becomes null during app teardown.
2020-07-04LibGUI: Make GUI::Application a Core::ObjectAndreas Kling
Having this on the stack makes whole-program teardown iffy. Turning it into a Core::Object allows anyone who needs it to extends its lifetime.
2020-07-04LibGUI: Respect per-index font when computing TreeView item rectsAndreas Kling
This makes the selected (currently shown in bold) item in HackStudio's project file view show up at the correct position.
2020-07-03LibGUI: Add GUI::CommonActions::make_select_all_action() :^)Andreas Kling
2020-07-03FilePicker: Add folder icon to location boxLinus Groh
It looks good in FileManager so it will also look good here :^) FileManager commit: b8a50e9
2020-07-03FilePicker: Make the location box 2px tallerLinus Groh
This mimics a recent change to the FileManager's location box. FileManager commit: 3d5233a
2020-07-01LibGUI: Make Application::exec() return instead of calling exit()Andreas Kling
We were calling exit() here because we didn't want to deal with object teardown in the long-long-ago before Core::Object was ref-counted.
2020-07-01LibGUI: Highlight JS Extends and Super tokensJack Karamanian
2020-07-01LibGUI: Do not recurse into rows with invalid indicesAnotherTest
That would cause the traversal to go into an infinite loop.
2020-06-30LibGUI: Update FilePicker location textbox when changing directoryLinus Groh
Fixes #2662.
2020-06-30LibGUI: Only show FilePicker preview pane on demandLinus Groh
FilePicker::set_preview() and FilePicker::clear_preview() now show and hide the preview pane respectively.
2020-06-30LibGUI: Tweak FilePicker layout to remove bottom paddingLinus Groh
This makes the "Cancel" and "Open" buttons align with the right sidebar's bottom edge.
2020-06-29LibGUI: Add TextEditor::set_icon()Andreas Kling
You can now set a 16x16 icon on a single-line TextEditor. If present, the icon will be painted to the left of the text content.
2020-06-29LibGUI: SpinBox: update the displayed value when set_range() clamps itBenoît Lormeau
Consider the following: upon instanciation of a GUI::SpinBox, its internal value and displayed value are both 0. When calling `set_min(1)` on it (same as `set_range(1, max())`), the internal value gets clamped to 1 correctly, but "0" is still displayed by the widget. The displayed value is now updated accordingly to the internal value when it gets clamped.
2020-06-27LibGUI: Fix image preview size in FilePicker for large imagesHüseyin ASLITÜRK
Image preview widget overflow to other widgets in FilePicker dialog when image is larger than 160px. Also change the ImagePreview widget variable name for align to naming standards.
2020-06-21LibGUI: Bug fix on GUI::Image when image is nullptrHüseyin ASLITÜRK
This bug cause to FilePicker crash when second image selected for preview. FilePicker sets bitmap to "nullptr" clear preview.
2020-06-18LibGUI: Add a new Window::is_maximized methodHüseyin ASLITÜRK
2020-06-18LibGUI: Fix MessageBox width calculation not including the icon widthAndreas Kling
2020-06-18AboutDialog: Replace Label with Image to show banner and app iconHüseyin ASLITÜRK
2020-06-18MessageBox: Replace Label with Image component to show iconsHüseyin ASLITÜRK
2020-06-18FilePicker: Replace Label with Image component to show iconsHüseyin ASLITÜRK
2020-06-18LibGUI: Add a new GUI::Image component for display imagesHüseyin ASLITÜRK
New GUI::Image component for replace Label usage for icons and images.
2020-06-17LibGUI: Use Core::File::read_link()Sergey Bugaev
2020-06-16LibGUI: Replace text attribute on KeyEvent with code_point attributeHüseyin ASLITÜRK
2020-06-15LibGUI: Use new Bitmap::is_path_a_supported_image_format methodHüseyin ASLITÜRK
2020-06-15LibGUI: Don't update cursor, if visual data out-of-dateKevin Meyer
This fixes https://github.com/SerenityOS/serenity/issues/2498 A nullptr dereference was caused by the visual data beeing out of sync with the line data, due to a deferred recompute.
2020-06-13AK: JsonParser improvementsMatthew Olsson
- Parsing invalid JSON no longer asserts Instead of asserting when coming across malformed JSON, JsonParser::parse now returns an Optional<JsonValue>. - Disallow trailing commas in JSON objects and arrays - No longer parse 'undefined', as that is a purely JS thing - No longer allow non-whitespace after anything consumed by the initial parse() call. Examples of things that were valid and no longer are: - undefineddfz - {"foo": 1}abcd - [1,2,3]4 - JsonObject.for_each_member now iterates in original insertion order
2020-06-12AK: Make string-to-number conversion helpers return OptionalAndreas Kling
Get rid of the weird old signature: - int StringType::to_int(bool& ok) const And replace it with sensible new signature: - Optional<int> StringType::to_int() const
2020-06-11LibIPC+WindowServer+LibGUI: Detect and highlight unresponsive GUI appsAndreas Kling
IPC::ClientConnection now tracks the time since the last time we got a message from the client and calls a virtual function on itself after 3 seconds: may_have_become_unresponsive(). Subclasses of ClientConnection can then react to this if they like. We use this mechanism in WindowServer to send out a friendly Ping message to the client. If he doesn't Pong within 1 second, we mark the client as "unresponsive" and recompose all of his windows with a darkened appearance and amended title until he Pongs us. This is a little on the aggressive side and we should figure out a way to wake up less often. Perhaps this could only be done to windows the user is currently interacting with, for example. Anyways, this is pretty cool! :^)
2020-06-10LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSizeAndreas Kling
This fits nicer with FloatRect,FloatPoint,FloatSize and gives a much better visual clue about what type of metric is being used.
2020-06-07LibGUI: Don't scroll cursor into view while reflows are deferredAndreas Kling
We don't have up-to-date visual line rects until after reflow, and we already do a "scroll cursor into view" when deferral ends anyway. Fixes #2524.
2020-06-07LibJS: Add BigIntLinus Groh
2020-06-07LibJS: Lex and parse regex literals, add RegExp objectsMatthew Olsson
This adds regex parsing/lexing, as well as a relatively empty RegExpObject. The purpose of this patch is to allow the engine to not get hung up on parsing regexes. This will aid in finding new syntax errors (say, from google or twitter) without having to replace all of their regexes first!
2020-06-07LibGUI: Fix broken clip rect when scrolling a TextEditorAndreas Kling
2020-06-06LibGUI: Fix TextEditor painting glitch after add_clip_rect() changeAndreas Kling
2020-06-04LibGUI: Fix bad KeyEvent::m_key initializer to unbreak SDL2 portAndreas Kling