summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2021-08-03Calculator: Use KeypadValue class instead of doublecreator1creeper1
Calculator now uses the KeypadValue class instead of double in its internal calculations. By not constantly converting to double back-and-forth, we do not use precision simply by, for example, negating a number. This fixes #7484.
2021-08-03Calculator: Add KeypadValue classcreator1creeper1
This commit adds a basic KeypadValue class which abstracts away Keypad's internal representation in a slightly simpler format. This will allow arithmetic operations in the Calculator to not lose any precision. In cases where losing precision is necessary, an explicit conversion operator to double is provided, as well as an explicit constructor from double.
2021-08-03LibGUI: Redraw button on Key_{Return,Space} up eventLuK1337
Fixes buttons not getting redrawn after pressing them with return or space key.
2021-08-03Everywhere: Make use of container version of all_ofLenny Maiorani
Problem: - New `all_of` implementation takes the entire container so the user does not need to pass explicit begin/end iterators. This is unused except is in tests. Solution: - Make use of the new and more user-friendly version where possible.
2021-08-03Userland: Make representation of 'null' IPv4-address friendlierThomas Wagenveld
Show an empty column rather than 'null' in SystemMonitor and show 'no IP' in the network applet if the adapter has no IPv4-address configured.
2021-08-03Userland: Add network adapter link status to SystemMonitor and appletThomas Wagenveld
Add a column named 'Link status' to the Network tab in SystemMonitor showing the speed and duplex if the link is up. Add the link speed behind the existing text in the applet or show 'down' if the link is down.
2021-08-03FileManager: Use the current directory as one of the initial locationsKarol Kosek
This change makes `cd /bin; FileManager` open the app in /bin.
2021-08-03FileManager: Set chdir to the current path when opening applicationsKarol Kosek
2021-08-03Taskbar: Set chdir to the home directory when opening applicationsKarol Kosek
Although the chdir was set up for the applications opened from the quick launch, the regular application list hadn't do this. This meant that you could open a Terminal or HackStudio project in the root directory, which isn't so bad, but it's better to stick to the user home directory.
2021-08-03Ping: Add -s argument to specify the payload size of the pingThomas Wagenveld
Change the static buffers to ByteBuffers to deal with the dynamic size of the incoming and outgoing packets. Use sizeof(struct ip) rather than the magic number '20' for the IPv4 header size. Report the size of the reply packet to the console.
2021-08-03LibC: Add definition for 'struct ip' in netinet/ip.hThomas Wagenveld
The definition is equal to the one defined by the BSDs.
2021-08-03PixelPaint: Move properties for LineTool to ToolPropertiesWidgetMarcus Nilsson
Remove the context menu for LineTool and use the tool properties widget for options instead.
2021-08-03PixelPaint: Move properties for RectangleTool to ToolPropertiesWidgetMarcus Nilsson
Remove the context menu and move the options to the tool properties widget.
2021-08-03PixelPaint: Remove context menu for MoveToolMarcus Nilsson
Remove the context menu for MoveTool and move the actions to the layer menu instead.
2021-08-03PixelPaint: Remove context menu for SprayToolMarcus Nilsson
Remove the context menu for SprayTool and just use the tool properties widget for options.
2021-08-03PixelPaint: Move properties for EllipseTool to ToolPropertiesWidgetMarcus Nilsson
Remove the context menu for EllipseTool and use the properties widget instead for consistency between tools.
2021-08-03PixelPaint: Remove context menu for PenToolMarcus Nilsson
Remove the context menu for PenTool and just use the tool properties widget.
2021-08-03PixelPaint: Move properties for EraserTool to ToolPropertiesWidgetMarcus Nilsson
Removes the context menu for EraserTool and instead use the tool properties widget for options.
2021-08-03LibJS: Add a js_bigint(VM&, ...) overload and use itLinus Groh
We already have js_string(VM&, ...) and js_symbol(VM&, ...) overloads, so feels very familiar.
2021-08-02LibRegex: Generate negated property escapes as a single instructionTimothy Flynn
These were previously generated as two instructions, Compare [Inverse] and Compare [Property].
2021-08-02LibRegex: Support property escapes of the form \p{Type=Value}Timothy Flynn
Before now, only binary properties could be parsed. Non-binary props are of the form "Type=Value", where "Type" may be General_Category, Script, or Script_Extension (or their aliases). Of these, LibUnicode currently supports General_Category, so LibRegex can parse only that type.
2021-08-02LibRegex: Support property escapes of Unicode General CategoriesTimothy Flynn
This changes LibRegex to parse the property escape as a Variant of Unicode Property & General Category values. A byte code instruction is added to perform matching based on General Category values.
2021-08-02LibUnicode: Add public methods to compare and lookup General CategoriesTimothy Flynn
Adds methods to retrieve a General Category from a string and to check if a code point matches a General Category.
2021-08-02LibUnicode: Initialize manually created Unicode properties inlineTimothy Flynn
Using initializer lists directly in the UnicodeData struct definition feels a bit cleaner than invoking HashMap::set in main().
2021-08-02LibUnicode: Generate General Category unions and aliasesTimothy Flynn
This downloads the PropertyValueAliases.txt UCD file, which contains a set of General Category aliases. This changes the General Category enumeration to now be generated as a bitmask. This is to easily allow General Category unions. For example, the LC (Cased_Letter) category is the union of the Ll, Lu, and Lt categories.
2021-08-02LibDebug: Make single-stepping work for x86_64Gunnar Beutner
2021-08-02LibX86: Stub out Disassembler::next() for x86_64Gunnar Beutner
LibX86 doesn't currently support x86_64 opcodes which causes Profiler to crash when clicking on any symbol in the call graph.
2021-08-02LibWeb: Switch to new CSS Parser :^)Sam Atkins
Change all the places that were including the deprecated parser, to include the new one instead, and then delete the old parser code. `ParentNode::query_selector[_all]()` now treat their input as a comma-separated list of selectors, instead of just one, and return elements that match any of the selectors in that list. This is according to these specs: - querySelector/querySelectorAll: https://dom.spec.whatwg.org/#ref-for-dom-parentnode-queryselector%E2%91%A0 - selector matching algorithm: https://www.w3.org/TR/selectors-4/#match-against-tree
2021-08-02LibWeb: Implement CSS parsing convenience functionsSam Atkins
These mostly match the API in `DeprecatedCSSParser.h`. The exception is that `parse_selector()` returns a `SelectorList` instead of just one `Selector`. The only uses of that are in `ParentNode::query_selector[_all]()` which should be matching against a list, according to the spec. `parse_html_length()` is an odd case. It's used for `width="200"` cases in HTML, so is not really CSS related, but does produce a StyleValue. The values allowed in `width/height` in HTML vary per element, but they are a lot more restricted than in CSS, so it's slightly inappropriate to use the CSS parser for them, even though it's convenient. We also ignore a few functions: - `parse_line_width()` - `parse_line_style()` - `parse_color()` These are all only used in `StyleResolver`, when it is given a property value as a String. That won't happen once the old parser is removed.
2021-08-02LibWeb: Clarify naming and publicity of CSS Parser methodsSam Atkins
`parse_as_foo()` implies that the Parser's internal data is used, whereas `parse_a_foo()` implies that the passed-in data is used. Also, made all the `parse_a_foo()` methods private, as they are only required within the Parser, and this makes the API clearer to outsiders. The `parse_a(s)_foo()` naming is a little awkward, but it comes from section 5.3 of the spec, so seemed worth keeping: https://www.w3.org/TR/css-syntax-3/#parser-entry-points
2021-08-02LibWeb: Only dump parsed CSS stylesheet if logging is enabledSam Atkins
2021-08-02LibRegex: Make Matcher<>::match(Vector<>) take a reference to the vectorAli Mohammad Pur
It was previously copying the entire vector every time, which is not a nice thing to do. :^)
2021-08-02LibRegex: Use a bump-allocated linked list for fork save statesAli Mohammad Pur
This makes it avoid the excessively high malloc() traffic.
2021-08-02LibRegex: Make Fork{Jump,Stay} non-recursiveAli Mohammad Pur
This makes very fork-heavy expressions (like `(aa)*`) not run out of stack space when matching very long strings.
2021-08-02LibGUI: Ensure that edit actions are disabled for password boxesGunnar Beutner
This ensures that the user can't copy/cut text from password boxes which would reveal the password. It also makes sure that the undo/redo actions stay disabled because it's difficult to reason about what these do exactly without being able to see the result.
2021-08-02LibGUI: Remove redundant codeGunnar Beutner
2021-08-02Mail: Use GUI::PasswordInputDialog to ask for server passwordsAndreas Kling
2021-08-02LibGUI: Add a simple GUI::PasswordInputDialogAndreas Kling
Asking the user for a password is a fairly common thing, so let's have a reusable GUI dialog for it! This first iteration only supports having pre-filled "server" and "username" fields. This can obviously be made more flexible as needs arise. :^)
2021-08-02LibGUI: Register GUI::PasswordBox to make it availble in GMLAndreas Kling
2021-08-02Mail: Tweak vertical spacing & margins in main UI layoutAndreas Kling
2021-08-02Browser: Tweak vertical spacing in per-tab UI layoutAndreas Kling
2021-08-02LibAudio: Handle stream errors in FlacLoaderAndrew Kaster
The FlacLoader already has numerous checks for invalid data reads and for invalid stream states, but it never actually handles the stream errors on the stream object. By handling them properly we can actually run FuzzFlacLoader for longer than a few seconds before it hits the first assertion :^).
2021-08-02LibCpp: Allow 'final' in a class declaration with inheritanceAli Mohammad Pur
2021-08-02LibCpp: Add support for east constAli Mohammad Pur
Now LibCpp can understand the eastest of consts too :^)
2021-08-02LibCpp: Allow 'override' as a function target qualifierAli Mohammad Pur
This is just ignored right now.
2021-08-02LibCpp: Add support for parsing function typesAli Mohammad Pur
This makes it work with types like `Function<T(U, V)>`.
2021-08-02LibCpp: Allow 'const' after a function's signatureAli Mohammad Pur
This is too lax for functions that aren't class members, but let's allow that anyway.
2021-08-02LibCpp: Add support for parsing reference typesAli Mohammad Pur
2021-08-02LibCpp: Allow virtual destructorsAli Mohammad Pur
2021-08-02LibCpp: Match and ignore struct/class inheritanceAli Mohammad Pur