summaryrefslogtreecommitdiff
path: root/Libraries/LibGUI
AgeCommit message (Collapse)Author
2020-09-26LibGUI: Add alpha preview to ColorPickerTibor Nagy
2020-09-25LibJS+LibGUI+js: Handle UnterminatedRegexLiteral in syntax highlightersLinus Groh
2020-09-25LibGUI: Do not clear the selection on right-clickAnotherTest
2020-09-25LibGUI: Register the 'ColorInput' and 'Frame' widgetsAnotherTest
2020-09-25Meta+LibHTTP through LibWeb: Make clang-format-10 cleanBen Wiederhake
2020-09-25Meta+LibC through LibHTTP: Make clang-format-10 cleanBen Wiederhake
Why break at LibHTTP? Because "Meta+Libraries" would be insanely large, and breaking between LibHTTP and LibJS makes the commits roughly evenly large.
2020-09-25LibGUI: Register the "text" property on GUI::TextEditorAndreas Kling
2020-09-25LibGUI: Register the "text" property on GUI::LabelAndreas Kling
2020-09-24LibGUI: Move keyboard item activation up to AbstractViewAndreas Kling
All views want the same behavior, so move this to the base class. :^)
2020-09-24LibGUI: Stop editing in views when the view is hiddenAndreas Kling
This fixes an issue in FileManager where an editor opened in the table view mode would remain open after switching to the icon mode.
2020-09-24LibGUI: Make inline editing work in ColumnsViewAndreas Kling
All it took was overriding content_rect() :^)
2020-09-24LibGUI: Move editing key handling up to AbstractViewAndreas Kling
We want all views to respond to the editing key as long as the relevant edit trigger is activated.
2020-09-24LibGUI: Support inline editing in GUI::IconViewAndreas Kling
IconView now responds to the editing key (F2) if the view is editable. It does feel a little bit weird to have content_rect() return the text rect for an item, and not the whole item rect. This internal API could probably be better.
2020-09-24LibGUI: Support editing filenames through FileSystemModel :^)Andreas Kling
2020-09-24LibGUI: Make SortingProxyModel forward is_editable() and set_data()Andreas Kling
This will allow us to edit models through a SortingProxyModel. :^)
2020-09-23AK: Resolve format related circular dependencies properly.asynts
With this commit, <AK/Format.h> has a more supportive role and isn't used directly. Essentially, there now is a public 'vformat' function ('v' for vector) which takes already type erased parameters. The name is choosen to indicate that this function behaves similar to C-style functions taking a va_list equivalent. The interface for frontend users are now 'String::formatted' and 'StringBuilder::appendff'.
2020-09-23LibGUI: Use on_up_pressed/on_down_pressed events in SpinBoxTibor Nagy
Fixes keyboard increment/decrement of SpinBox values. After PR #2412 the TextBox class started not propagating arrow key events to the parent widgets because it handles them itself now. It also added two new events for these arrow keys, so use them instead in SpinBox.
2020-09-21HackStudio: Add auto-complete capability to the EditorItamar
2020-09-21Base: Add the PlaceholderText attribute to themesPeter Elliott
2020-09-21LibGUI: Add optional placeholder to TextEditorPeter Elliott
This lets you show some disabled text when no text is entered, and the editor is not focused.
2020-09-20LibGUI: Remove unnecessary type cast in JsonArrayModel.asynts
Since TCP sequence numbers are randomly choosen 32-bit numbers, it often happend that the most significant bit was set. The cast to a 32-bit signed integer then made the number negative. Thus TCP sequence were shown negative in the SystemMonitor every so often.
2020-09-20LibGUI: Pad row/column headers of AbstractTableViewTibor Nagy
2020-09-20LibGUI: Fix row_rect(int) calculation in AbstractTableViewItamar
Previously, it didn't take into account the visibility of column headers.
2020-09-19LibGUI: Increase slider acceleration with Ctrl (#3499)Jakob-Niklas See
When holding Ctrl and scrolling on a slider widget, the scrolling acceleration gets increased. This can make it faster to get to the knob location you want to get to. :^)
2020-09-18LibGUI: Add TreeView::expand_all_parents_of(ModelIndex)Andreas Kling
This does exactly what it sounds like. :^)
2020-09-18LibGUI: Unbreak FileSystemModel::index(path) after virtual root changesAndreas Kling
Now that the "/" directory can have a (virtual) parent index, we need to account for that when converting a full path to a model index.
2020-09-18iLibGUI+Base: Show inaccessible directories with special icon in viewsAndreas Kling
2020-09-18LibGUI: FileSystemModel should provide full paths to FileIconProviderAndreas Kling
This will allow FileIconProvider to check additional things about the specified path. (We previously only had access to the basename.)
2020-09-18LibGUI: StackWidget should not steal focus when switching active childAndreas Kling
Only focus the new active child if the old one had focus previously.
2020-09-17LibGUI: Set ProcessChooser key column and sort order after set_model (#3521)Uma Sankar
Need to set the sort order after model was set to sort the table.
2020-09-17LibGUI: Respect the previously selected sort order in HeaderView (#3522)Uma Sankar
Instead of forcefully setting the sort order to Ascending upon column sort, setting it to the previously selected sort order
2020-09-17LibGUI: Don't recalcuate color from hue if it was not set by huePeter Elliott
Basically, setting the hue is numerically sensitive when the value or saturation are low.
2020-09-17LibGUI: Don't allow 4 character html color codes in GUI::ColorPickerPeter Elliott
When 4 character colors were allowed, backspace misbehaved and you couldn't backspace the whole color.
2020-09-16LibGUI: Use FileIconProvider in the FilePicker dialogAndreas Kling
2020-09-16LibGUI+Base: Add a hard-disk icon and use it for the path "/"Andreas Kling
2020-09-16LibGUI: Allow FileSystemModel to be rooted one level above "/"Andreas Kling
You can now construct a FileSystemModel with a null String() as the root path. This will root it one level above "/" which makes the root directory itself selectable as a child. This will be useful in some places, e.g the FileManager application.
2020-09-16LibGUI: Double-clicking on a TreeView item should set cursorAndreas Kling
Don't just set the selection, set the cursor.
2020-09-16LibGUI: Fix TreeView scrolling to top when clicking sub-itemsAndreas Kling
This code was confusing two different versions of scroll_into_view that were getting mixed up due to member function shadowing. Adding an "override" to the subclass declaration exposed the problem. With this fixed, we no longer lose our scroll position wildly when using the mouse to select TreeView items.
2020-09-15LibCore: Make Core::Object properties more dynamicAndreas Kling
Instead of everyone overriding save_to() and set_property() and doing a pretty asymmetric job of implementing the various properties, let's add a bit of structure here. Object properties are now represented by a Core::Property. Properties are registered with a getter and setter (optional) in constructors. I've added some convenience macros for creating and registering properties, but this does still feel a bit bulky. We'll have to iterate on this and see where it goes.
2020-09-15HackStudio: Add basic Git integrationItamar
This adds a "Git" tab to Hackstudio. Currently has support for staging and unstaging files.
2020-09-15LibGUI: Fix to ComboBox fields activationpkotzbach
2020-09-14LibGUI: Minor consistency cleanup in AbstractView::set_cursor() (#3478)pkotzbach
2020-09-14LibGfx+LibGUI: Allow setting tab text alignment with set_property()Andreas Kling
2020-09-14LibGUI: Add TabWidget::set_property() and handle some propertiesAndreas Kling
2020-09-14LibGUI: Add registration for GUI::TabWidgetAndreas Kling
2020-09-14LibGUI: Use Core::Object::set_property() to handle JSON GUI propertiesAndreas Kling
Piggyback on the existing mechanism to set individual properties. This doesn't cover layouts or child widgets, but the per-widget own properties can be set this way. Any property can now be set in JSON GUI, all you need to do is handle it in the relevant Core::Object::set_property() override. :^)
2020-09-14LibGUI: Allow setting widget visibility from JSON GUI specAndreas Kling
2020-09-14LibGUI: Complain about malformed "layout" values in JSON GUIAndreas Kling
2020-09-14LibGUI: Start building a way to instantiate GUI from JSONAndreas Kling
My original idea for GUI building tools was to have the "VisualBuilder" app generate C++ code which in turn programmatically instantiated UI. That never really materialized in any useful way beyond static UIs. This is a fresh, new approach: using JSON to declare the UI and parsing and constructing this UI at runtime. This will allow for way more dynamic and flexible approaches to GUI development (I think.) The basic idea is that you pass a JSON string to Widget::load_from_json and it takes care of the rest. This first version supports basic box layouts and instantiation of arbitrary widgets, as long as those widgets have been registered. This code has some pretty rough edges right now as it's evolving and we need to figure out a lot of things about how it should work. Nevertheless, it feels pretty cool. :^)
2020-09-14LibGUI: Improve widget registration mechanism a bitAndreas Kling
Allow registering widgets from namespaces other than GUI. :^) Also add a few widgets.