summaryrefslogtreecommitdiff
path: root/Libraries
AgeCommit message (Collapse)Author
2020-03-04LibGUI: Ignore keyboard and mouse events in disabled widgetsAndreas Kling
2020-03-04LibGUI: Remove unused GUI::Widget::click_event()Andreas Kling
2020-03-04LibGUI: TextEditor should paint text with disabled color when disabledAndreas Kling
2020-03-04LibGUI: Don't use Core::Object::add() to instantiate dialogsAndreas Kling
Now that add() returns a WidgetType&, we can't rely on the parent of a GUI::Dialog to still keep it alive after exec() returns. This happens because exec() will call remove_from_parent() on itself before returning. And so we go back to the old idiom for creating a GUI::Dialog centered above a specific window. Just call GUI::Dialog::construct(), passing the "parent" window as the last parameter.
2020-03-04LibBareMetal: Don't try to print characters from a null pointerAndreas Kling
2020-03-04LibCore: Make Core::Object::add<ChildType> return a ChildType&Andreas Kling
Since the returned object is now owned by the callee object, we can simply vend a ChildType&. This allows us to use "." instead of "->" at the call site, which is quite nice. :^)
2020-03-04LibGUI: Use GUI::Window::set_main_widget<WidgetType>() in clientsAndreas Kling
2020-03-04LibGUI: Use set_layout<LayoutType>() in lots of client codeAndreas Kling
2020-03-03LibGUI: Some more convenience functions for constructing widgetsAndreas Kling
This patch adds two new API's: - WidgetType& GUI::Window::set_main_widget<WidgetType>(); This creates a new main widget for a window, assigns it, and returns it to you as a WidgetType&. - LayoutType& GUI::Widget::set_layout<LayoutType>(); Same basic idea, creates a new layout, assigns it, and returns it to you as a LayoutType&.
2020-03-03LibGUI: Save some more state from AbstractButtonAndreas Kling
The more stuff we save in save_to() overrides, the more interesting it becomes inspecting GUI programs. :^)
2020-03-03LibGUI: Remove Button& parameter from Button::on_click hookAndreas Kling
There was but a single user of this parameter and it's a bit tedious to write it out every time, so let's get rid of it.
2020-03-03AK: Make quick_sort() a little more ergonomicAndreas Kling
Now it actually defaults to "a < b" comparison, instead of forcing you to provide a trivial less-than comparator. Also you can pass in any collection type that has .begin() and .end() and we'll sort it for you.
2020-03-02LibGUI: Fix broken TreeView rendering with more than two columnsAndreas Kling
The computation of the tree column x offset was not taking padding into account. This patch fixes that and collects the logic in a helper.
2020-03-02LibBareMetal: Add IOAddress classLiav A
2020-03-02LibBareMetal: Add support for kernel log streamLiav A
2020-03-02AK: Move the wildcard-matching implementation to StringUtilshowar6hill
Provide wrappers in the String and StringView classes, and add some tests.
2020-03-01AK: Remove unnecessary casts to size_t, after Vector changesAndreas Kling
Now that Vector uses size_t, we can remove a whole bunch of redundant casts to size_t.
2020-02-29LibMarkdown: Fix breakage from Vector using size_tAndreas Kling
It's no longer possible rely on negative VectorIterator when iterating backwards. It would be nice to have a general solution for reverse iteration, but for now let me just patch this up.
2020-02-29LibELF: Use MAP_PRIVATE for file-backed mmaps in ELFDynamicLoaderAndrew Kaster
Clean up some unused code, clean up FIXMEs, and remove premature --dynamic-loader/-pie from LinkDemo (so it runs again on master)
2020-02-28LibC: Move shbuf_* implementations to serenity.cppAndreas Kling
2020-02-28Kernel: Merge the shbuf_get_size() syscall into shbuf_get()Andreas Kling
Add an extra out-parameter to shbuf_get() that receives the size of the shared buffer. That way we don't need to make a separate syscall to get the size, which we always did immediately after.
2020-02-28LibC: Move shbuf_* API's to <serenity.h>Andreas Kling
2020-02-28Kernel+LibC: Rename shared buffer syscalls to use a prefixAndreas Kling
This feels a lot more consistent and Unixy: create_shared_buffer() => shbuf_create() share_buffer_with() => shbuf_allow_pid() share_buffer_globally() => shbuf_allow_all() get_shared_buffer() => shbuf_get() release_shared_buffer() => shbuf_release() seal_shared_buffer() => shbuf_seal() get_shared_buffer_size() => shbuf_get_size() Also, "shared_buffer_id" is shortened to "shbuf_id" all around.
2020-02-27LibGUI: Disable the ColumnsView subview in MultiView for nowAndreas Kling
This is causing FilePicker to log a bunch of debug noise due to the missing support for tree models in SortingProxyModel and it's not helping anyone so let's just disable it. This needs fixing in SortingProxyModel.
2020-02-27LibBareMetal: Remove unnecessary includeLiav A
2020-02-27WavLoader: Add missing AK/OwnPtr.h includeWilliam McPherson
2020-02-26LibCore: Allow ConfigFile::read_num_entry to handle negative numbersJesse Buhagiar
Previously, this function was using `AK::String::to_uint()`, which is wrong considering the function returns type `int`. This also means that configuration files would revert to the default value on negative values.
2020-02-26DateTime: Fix a typohowar6hill
2020-02-25LibGUI: Mouse events didn't hit table headers when vertically scrolledAndreas Kling
Only take the horizontal scroll into account when hit testing the table view headers.
2020-02-25LibM: Implement floating point variants of various math functionsValtteri Koskivuori
2020-02-25Build: Only look at SUBDIRS with Makefilesjoshua stein
If a directory is renamed or deleted before 'make clean', git will delete the Makefile but leave all of the object and dependency files around. When make would try to recurse into that directory from the wildcard, it would error out since there is no Makefile.
2020-02-25LibGUI: Fix ColumnsView.cpp buildAndreas Kling
2020-02-25LibGUI: Make descendants of AbstractView define their own select_all() (#1201)DAlperin
AbstractView does not know which column it's displaying which makes it impossible to implement the select_all functionality up there. Now descendants override the pure virtual select_all method and implement it themselves.
2020-02-25LibGfx: SystemTheme is a struct, not a classjoshua stein
SystemTheme.h:81:1: error: 'SystemTheme' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI
2020-02-25AK: Make Vector use size_t for its size and capacityAndreas Kling
2020-02-25LibGUI: Actually store the column in MultiView::set_model_column()Andreas Kling
We were only forwarding the value to the subviews, but not storing it in m_model_column. This would cause MultiView::model_column() to return the wrong value. Thanks to Daniel Bos for spotting this! :^)
2020-02-25AK, LibGfx, LibGUI: Initialize various variables to zero.Emanuel Sprung
The not initialized variables can lead to compiler warnings that become errors with the -Werror flag.
2020-02-25LibThread: Fix destroying background actionsSergey Bugaev
In the old model, before bc319d9e8873734bb8e8cea3d762d7fab2ded887, the parent (the background thread) would delete us when it exits (i.e. never), so we had to keep track of our own refcount in order to destroy ourselves when we're done. With bc319d9e8873734bb8e8cea3d762d7fab2ded887, the parent keeps additional reference to us, so: * There should be no need to explicitly ref() ourselves * The unref() would not get rid of the last reference to us anymore The latter is why all the BackgroundAction's were getting leaked. Fix this by simply unparenting ourselves from the background thread when we're done.
2020-02-24LibGUI: Show the columns view action in the toolbar (but disable it)Andreas Kling
We'll enable it once ColumnsView is less crashy. :^)
2020-02-24LibThread: Post the completion callbacks to the *current* event loopAndreas Kling
FilePicker was not showing thumbnails correctly because once each thumbnail rendering BackgroundAction completed, it posted a deferred invocation event to the *main* event loop. Since FilePicker runs in a nested event loop, those completion callbacks never ran until it was too late and the FilePicker was gone.
2020-02-24LibGUI: Complain in SortingProxyModel::data() if map_to_target() failsAndreas Kling
There is some sort of issue with using a SortingProxyModel together with ColumnsView. This is a workaround to allow FilePicker to use a MultiView for now, but this needs to be fixed separately somehow.
2020-02-24LibGUI: Use MultiView in FilePickerAndreas Kling
This allows the user to switch between different view modes. Fixes #1283.
2020-02-24LibGUI: Add a MultiView widget, based on FileManager's "DirectoryView"Andreas Kling
A MultiView is a combination of ItemView, TableView and ColumnsView smashed into a single widget. You can switch between the view modes by calling MultiView::set_view_mode(). Note that MultiView inherits from StackWidget, not AbstractView. That's purely for practical reasons, although I'm not entirely sure if there would be some benefit to having it inherit from AbstractView.
2020-02-24LibGUI: Make AbstractView::set_model() take a RefPtr<Model>Andreas Kling
Let's face it: Taking RefPtr<T>&& arguments is obnoxious and puts too much unnecessary burden on the caller.
2020-02-24WindowServer+LibGUI: Allow changing a window's base size and incrementAndreas Kling
Previously it was only possible to change these window attributes when creating a new window. This patch adds an IPC message that allows you to change them at runtime.
2020-02-24LibGUI: Scroll selected treeview entries into viewTibor Nagy
2020-02-24AK: Add offset_in_page() method in PhysicalAddress classLiav A
This method is useful for later usage.
2020-02-24LibGUI: Implement keyboard and mouse wheel events for SpinBoxTibor Nagy
2020-02-24LibGUI: Fix silly nullptr dereference in MessageBox::show()Andreas Kling
Since we take the parent object as a raw pointer, we should handle the case where it's null.
2020-02-23LibGUI: Add helper for constructing new TabWidget tabsAndreas Kling
This patch adds the following convenience helper: auto tab_widget = GUI::TabWidget::construct(); auto my_widget = tab_widget->add_tab<GUI::Widget>("My tab", ...); The above is equivalent to: auto tab_widget = GUI::TabWidget::construct(); auto my_widget = GUI::Widget::construct(...); tab_widget->add_widget("My tab", my_widget);