Commit Graph

24739 Commits

Author SHA1 Message Date
LuK1337
3bbab9eb47 LibGUI: Align FilePickerDialog's common locations with file list view 2021-07-28 11:15:48 +02:00
Luke
3ec4ad8a73 LibGUI: Convert indexes to size_t and use Optional in TabWidget
Previously it was using int for indexes and using the -1 magic value.
Supersedes b9d51b8601
2021-07-28 11:03:27 +02:00
Luke
b9d51b8601 LibGUI: Always reset pressed close button index on mouse up in TabWidget
Previously it would only do this if the mouse was over the close 
button.

If you released the mouse outside the close button, the close button
would appear permanently depressed afterwards.
2021-07-28 01:43:51 +02:00
Andreas Kling
b3d27c2340 LibGUI: Add GUI_HOVER_DEBUG runtime debugging flag (environment)
You can now see the outline of GUI widgets when hovering them.
For example:

    $ export GUI_HOVER_DEBUG=1
    $ FileManager

Then move the mouse around in the file manager. :^)
2021-07-28 01:01:02 +02:00
Andreas Kling
3d4f93cf8d LibGUI: Make Label padding work with left/right aligned text
The previous text_rect() algorithm only produced the right result for
horizontally centered labels.

This adds some missing padding to GUI::Statusbar which we've apparently
needed for some time. :^)
2021-07-28 00:10:56 +02:00
TheFightingCatfish
0c53c2dfa2 LibGUI: Add a ClipboardClient for GUI::Clipboard
Anyone who inherits from `GUI::Clipboard::ClipboardClient` will receive
clipboard notifications via `clipboard_content_did_change()`.

Update ClipboardHistoryModel, TextEditor and TerminalWidget to inherit
from this class.
2021-07-27 23:49:25 +02:00
K-Adam
95f393ebcd LibWeb: Return null if an unknown canvas context type is requested 2021-07-27 23:48:23 +02:00
sin-ack
7f1677d574 LibGfx: Take the glyph spacing into account when building a line
Without this, a word might be added to a line despite going outside the
rect, due to the glyph spacing between blocks not being considered.
2021-07-27 23:47:00 +02:00
sin-ack
89d5797705 LibGfx: Remove extra space considered during wrapping
This was previously required because the whitespace was consumed and
manually added back after the fact, but now that we preserve whitespace,
this breaks wrapping of text with whitespace after it.
2021-07-27 23:47:00 +02:00
Karol Kosek
220dd28b02 Meta: Ignore everything after the git cut line in a lint-commit.sh hook
I have set up a commit.verbose variable in my git config,
which shows the patch diff on bottom of the commit message.

Unfortunately the character limit was also applied to the diff,
which meant that I got a false-positive lint error almost every time.
2021-07-27 22:35:49 +01:00
Timothy Flynn
2f8eb4f068 LibJS: Implement non-ECMA-402 String.prototype.toLocale{Lower,Upper}Case
In implementations without ECMA-402, these methods are to behave like
their non-locale equivalents.
2021-07-27 22:35:24 +01:00
Linus Groh
358356758a Documentation: Add preferred coding style options to CLion configuration 2021-07-27 22:49:41 +02:00
FrHun
55c0307288 Calculator: Improve UI margin consistency 2021-07-27 22:17:23 +02:00
FrHun
411622148a Run: Improve UI consistency 2021-07-27 22:17:23 +02:00
FrHun
033c14e574 FontEditor: Fix minor margin inconsistency 2021-07-27 22:17:23 +02:00
FrHun
3d6acc6567 HexEditor: Fix find dialog layout 2021-07-27 22:17:23 +02:00
FrHun
7f4a32e7bf AboutDialog: Fix inconsistent margins 2021-07-27 22:17:23 +02:00
FrHun
aa3dd0721a FilePicker: Fix button margins and size 2021-07-27 22:17:23 +02:00
FrHun
749b39997b ProcessChooser: Fix button margins and size 2021-07-27 22:17:23 +02:00
FrHun
0dd4e2d21b FileManager: Fix properties button margins 2021-07-27 22:17:23 +02:00
FrHun
8feab1836a KeyboardSettings: Fix button margins 2021-07-27 22:17:23 +02:00
Andreas Kling
d5a27d77d7 LibGfx: Hotfix a -Wmaybe-uninitialized failure on the build bots 2021-07-27 22:08:46 +02:00
sin-ack
7696e96c7f LibGfx: Make TextLayout algorithm whitespace-aware
This converts the TextLayout algorithm from handling just words to
handling blocks of strings. With this model, whitespace is preserved
and inserted as-is, rather than being eaten and then replaced with a
single space (or none, if the whitespace was at the start of the word).

Closes #9032.
2021-07-27 22:05:20 +02:00
sin-ack
4c9c85ac01 Userland: Make TextWrapping::Wrap opt-in
This was breaking many places which didn't expect text to wrap. Now,
the only place where text currently wraps is in GUI::Label.
2021-07-27 22:05:20 +02:00
Timothy Flynn
2dc9ae00af LibJS: Use special case folding for String.prototype.to{Lower,Upper}Case
Note we still have one String.prototype.toLowerCase test262 failure due
to not yet parsing WordBreakProperty.txt.
2021-07-27 21:04:36 +01:00
Timothy Flynn
39f971e42b LibUnicode: Begin implementing special Unicode case folding
This implements unconditional special case folding, and conditional
folding for non-locale cases. Worth noting that the only conditional,
non-locale special case is for converting an uppercase sigma to
lowercase.
2021-07-27 21:04:36 +01:00
Timothy Flynn
5b110034dd LibUnicode: Produce each code point's general category
This will be needed for the Unicode Standard's Default Case Algorithm.
Generate the field as an enumeration rather than a string for easier
comparison.
2021-07-27 21:04:36 +01:00
Timothy Flynn
32ea461385 LibUnicode: Download and parse the special casing UCD file
This adds a SpecialCasing structure to the generated UnicodeData.h/cpp
files. This structure contains casing rules for code points which have
non-1-to-1 upper-to-lower case code point mappings. Further, these rules
may be limited to specific locales or other context.
2021-07-27 21:04:36 +01:00
Idan Horowitz
350fb0e3db Meta: Bring lint-commit.sh up to date with the CI commit linter
This was missing 2 of the recently added checks. Also added a reminder
in the CI linter to update the Meta (commit hook) version.
2021-07-27 20:41:49 +01:00
Linus Groh
af3a26f4cc LibJS: Implement Temporal.Now.plainDateTimeISO() 2021-07-27 19:51:44 +01:00
Linus Groh
0bb19fc51c LibJS: Implement Temporal.Now.plainDateTime() 2021-07-27 19:51:44 +01:00
Linus Groh
f2a2e8e13c LibJS: Implement Temporal.Now.plainDateISO() 2021-07-27 19:51:44 +01:00
Linus Groh
c303bbde54 LibJS: Implement Temporal.Now.plainDate()
...and ten required AOs we didn't have yet:

- BalanceISODate
- BalanceISODateTime
- BalanceISOYearMonth
- BalanceTime
- BuiltinTimeZoneGetPlainDateTimeFor
- GetISOPartsFromEpoch
- GetOffsetNanosecondsFor
- ParseTemporalTimeZone
- SystemDateTime
- ToTemporalTimeZone
2021-07-27 19:51:44 +01:00
Linus Groh
5512ff79f0 LibJS: Implement a bunch of time value related Date AOs
We don't have these yet as our Date implementation doesn't use the time
value algorithms and AOs from the spec, but Temporal will need these in
various contexts.
2021-07-27 19:51:44 +01:00
Linus Groh
ff307194f3 LibJS: Implement Temporal.Now[@@toStringTag] 2021-07-27 18:48:22 +01:00
Linus Groh
b3723a88a6 LibJS: Implement Temporal[@@toStringTag] 2021-07-27 18:48:22 +01:00
Gunnar Beutner
3a4d3b15e3 Kernel: Fix CPU initialization for SMP
This was broken by the KASLR changes.
2021-07-27 19:45:38 +02:00
x-yl
4bdd62939a Meta: Set -audiodev explictly
Unfortunately seems like QEMU tries to use SPICE for audio so we need to
explicitly set -audiodev to use either SDL or coreaudio (depending on
platorm)
2021-07-27 19:15:37 +02:00
Gunnar Beutner
c9118b84b7 LibCoreDump: Make symbolication work when .text isn't the first segment
This can happen with binaries built with Clang or with a custom linker
script.
2021-07-27 19:14:29 +02:00
Karol Kosek
99d46caa28 LibGUI: Disable changing the view on error in the FilePicker
Prior to this change, changing the view would hide the error label
and show an empty directory.
2021-07-27 19:06:21 +02:00
Karol Kosek
80e3cf3ef7 LibGUI: Show an error message on open error in the FilePicker 2021-07-27 19:06:21 +02:00
Karol Kosek
f2d3fcb7cd ImageViewer: Hide the border frame in fullscreen mode 2021-07-27 18:32:58 +02:00
Andreas Kling
4a8d47edf8 LibGUI: Add some "fudge factor" around IconView item rects
Previously there was a dead zone between the item icon and its text
in IconViews. This meant that you could click between the icon and
the text label and hit nothing.

This patch improves the situation by inflating both rects so that
they both overlap and become a bit easier to hit.
2021-07-27 18:27:49 +02:00
Andreas Kling
75a41da69f LibGUI: Show dotfiles with 50% opacity (in FileSystemModel views)
Use the new ModelRole::IconOpacity for this. :^)
2021-07-27 18:27:49 +02:00
Andreas Kling
8ba47facf6 LibGUI: Add ModelRole::IconOpacity and support it in all views :^)
This role allows you to specify a custom opacity for icon painting.
Note that the opacity is not in effect when the item is either
selected and/or hovered.
2021-07-27 18:27:49 +02:00
Andreas Kling
2d1eff01a2 LibGUI: Add Variant::as_float_or(fallback) 2021-07-27 18:27:49 +02:00
Andreas Kling
49b9683381 FileManager: Make "show dotfiles" affect the tree view as well
Previously this only affected the main directory view.
2021-07-27 18:27:49 +02:00
Andreas Kling
4486e5b26d LibGUI: Remove some unused code in GUI::TreeView 2021-07-27 18:27:49 +02:00
Jamie Mansfield
28ee513bdf Spider: Make statusbar high score display configurable
You can now choose what statistic (currently only high score or best
time) to display in the statusbar.
2021-07-27 16:53:56 +02:00
Jamie Mansfield
821af6a6ef Spider: Start game if first move is to draw cards
This fixes a bug where the game wouldn't consider it had started.
2021-07-27 16:53:56 +02:00