summaryrefslogtreecommitdiff
path: root/DevTools
AgeCommit message (Collapse)Author
2020-03-22AK: Add FlyString, a simple flyweight string classAndreas Kling
FlyString is a flyweight string class that wraps a RefPtr<StringImpl> known to be unique among the set of FlyStrings. The class is very unoptimized at the moment. When to use FlyString: - When you want O(1) string comparison - When you want to deduplicate a lot of identical strings When not to use FlyString: - For strings that don't need either of the above features - For strings that are likely to be unique
2020-03-18HackStudio: Expand project tree view by defaultOriko
2020-03-13Applications: Use "Document - AppName" window title formatTibor Nagy
Fixes #1444
2020-03-13HackStudio: Use Javascript syntax highlighterOriko
2020-03-13HackStudio: Add Javascript projectsOriko
2020-03-13HackStudio: Fix the wrong cursor being drawnOriko
2020-03-12HackStudio: Abstract over syntax highlighterOriko
2020-03-12HackStudio: Underline header linksOriko
2020-03-12HackStudio: Add header navigationOriko
2020-03-08Userspace: Add missing #includes now that AK/StdLibExtras.h is smallerAndreas Kling
2020-03-08AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*)Andreas Kling
Use this instead of uintptr_t throughout the codebase. This makes it possible to pass a FlatPtr to something that has u32 and u64 overloads.
2020-03-07LibWeb: Rename directory LibHTML => LibWebAndreas Kling
Let's rename this to LibWeb since it aims to provide more parts of the web platform than just HTML. :^)
2020-03-07LibWeb: Move everything into the Web namespaceAndreas Kling
2020-03-07LibGUI: Move Icon and FontDatabase into the GUI namespaceShannon Booth
We also clean up some old references to the old G prefixed GUI classes This also fixes a potential bug with using: C_OBJECT_ABSTRACT(GAbstractButton) instead of C_OBJECT_ABSTRACT(AbstractButton)
2020-03-06Inspector: Use pledge() and unveil()Andreas Kling
2020-03-05Inspector: Store remote object addresses as uintptr_t instead of StringAndreas Kling
2020-03-05Inspector: Handle multi-packet RPC responsesAndreas Kling
This makes it possible to connect to Minesweeper, which has a rather huge widget tree. :^)
2020-03-05Inspector: Make properties editable :^)Andreas Kling
This patch makes it possible to live-edit remote object properties by simply double clicking on them in the property table view. This is pretty neat! :^)
2020-03-05LibGUI+Inspector: Highlight the currently remotely inspected widgetAndreas Kling
This patch adds a magenta rectangle around the currently inspected widget. This allows you to browse an app's widget tree somewhat visually using the Inspector. :^)
2020-03-05Inspector: Add special icon for timer objectsAndreas Kling
2020-03-05Inspector: Don't show child count in remote object treeAndreas Kling
You can just open a node if you want to see its children.
2020-03-05Inspector: Add a special icon for layout classesAndreas Kling
2020-03-05Inspector: Make the window icon show up for Window objects againAndreas Kling
This broke in the GWindow => GUI::Window rename.
2020-03-05Inspector: Stringify remote property valuesAndreas Kling
This prevents us from asserting if the remote sends us a property made up of an array or object.
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-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: 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-02ProfileViewer: Add mode that shows percentages instead of sample countsAndreas Kling
Sometimes it's much nicer to work with percentages than raw sample counts when browsing through a profile. :^)
2020-03-02ProfileView: Show "self" sample counts in profilesAndreas Kling
The "self" sample count is the number of samples that had this specific frame as its innermost stack frame (leaf nodes in the profile tree.)
2020-03-02ProfileViewer: Parse the JSON input directly to Profile::EventAndreas Kling
We were going from "new JSON format" => "old JSON format" => Event. This made loading longer profiles unnecessarily slow. It's still pretty slow, and we should... profile it! :^)
2020-03-02ProfileViewer: Rename Profile::Sample => Profile::EventAndreas Kling
2020-03-02AK: Move the wildcard-matching implementation to StringUtilshowar6hill
Provide wrappers in the String and StringView classes, and add some tests.
2020-02-29ProfileViewer: Unbreak after Vector size_t changesAndreas Kling
Another backwards iteration accident.
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-25AK: Make Vector use size_t for its size and capacityAndreas Kling
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);
2020-02-23LibGUI: Remove parent parameter to GUI::Widget constructorAndreas Kling
2020-02-23Inspector: Use Core::Object::add()Andreas Kling
2020-02-23LibGUI: Make GUI::Frame have the 2px sunken container look by defaultAndreas Kling
The overwhelming majority of GUI::Frame users set the same appearance, so let's just make it the default.
2020-02-23Userspace: Use Core::Object::add() when building interfacesAndreas Kling
2020-02-22ProfileViewer: Fix treeview selection looking unselected on Left keyAndreas Kling
When pressing the Left arrow key, we now travel to the parent_index() of the currently selected index. Our implementation of parent_index() was always returning an index with column 0, instead of using the same column as the current index. This prevented the selected item from looking selected.
2020-02-22ProfileViewer: Remove loading code for the old file formatAndreas Kling
We're still jumping through all kinds of silly hoops to load the new format, and this commit only gets rid of the API for loading old files.
2020-02-22ProfileViewer: Symbolicate unknown addresses as "??" for nowAndreas Kling
This makes unknown addresses accumulate their children together in the treeview, which turns out to be a bit more useful than having hundreds of unique garbage addresses each with their own subtree.
2020-02-22ProfileViewer: Symbolicate kernel addresses when possibleAndreas Kling
ProfileViewer will now attempt to open /boot/kernel and use that to symbolicate kernel addresses (anything above the 3GB mark.) In other words, if you run ProfileViewer as root, on a profile that was generated by root, you can now see kernel functions properly as well. This is not available to non-privileged users.
2020-02-22Kernel+ProfileViewer: Move symbolication to userspace for time profilesAndreas Kling
This makes the time profiles look like the memory profiles so we can use the userspace symbolication code in ProfileViewer.
2020-02-20AK: Use size_t for ByteBuffer sizesAndreas Kling
This matches what we already do for string types.
2020-02-17HackStudio: Unbreak the form editor's widget iconsAndreas Kling
This is breakage from the GFoo => GUI::Foo rename.