summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-30FontEditor: Convert to east constthankyouverycool
2021-11-30FontEditor: Correct member type and initialization in UndoGlyphthankyouverycool
Makes code_point type u32, consistent with the rest of the system, and properly initializes it.
2021-11-30FontEditor: Remove unused Vector<String>thankyouverycool
2021-11-30FontEditor: Correct NewFontDialog layout issuesthankyouverycool
Fixes incorrect scale initialization and inconsistent margins, sets minimum values for glyph width and height to 1, and labels page 1 more precisely as "Typeface" properties.
2021-11-30FontEditor: Clean up GlyphMapWidget headerthankyouverycool
Fixes minor organizational inconsistency and zeroes initializations for rows and columns as the previous values haven't been meaningful since the map was converted to a scrollable widget. No functional changes.
2021-11-30FontEditor: Remove superfluous 'this' pointersthankyouverycool
2021-11-30LibGfx+FontEditor: Consolidate BitmapFont width and height limitsthankyouverycool
And make them more self-documenting. Previously these constraints were duplicated across multiple files.
2021-11-30FontEditor: Add scaled offset members to GlyphEditorthankyouverycool
Previously these were undescriptive globals making them a bit cryptic.
2021-11-30FontEditor: Update status bar on initializationthankyouverycool
Fixes incorrect glyph status immediately after loading a new font.
2021-11-30FontEditor: Remove code duplication when resizing GlyphEditorthankyouverycool
The left column now also enforces a minimum width to prevent especially small fonts from hiding the glyph toolbars and width widgets.
2021-11-30FontEditor: Account for glyph width when pastingthankyouverycool
Fixes glyphs not expanding up to their maximum width if necessary when pasting larger glyphs into smaller ones.
2021-11-30FontEditor: Don't allow cutting and copying absent glyphsthankyouverycool
And update status bar on cut. Fixes placing these effectless actions on the undo stack.
2021-11-30FontEditor: Don't null check newly created NonnullRefPtr fontsthankyouverycool
2021-11-30FontEditor: Factor out redundant code for a request to closethankyouverycool
2021-11-30FontEditor: Convert mode and transform buttons into toolbar actionsthankyouverycool
This will let us more easily organize and assign shortcuts to new modes and transformations as they are built, and it generally looks more polished as a uniform interface. Also adds a counterclockwise option to the rotate action, moves Copy as Character to the edit menu as it doesn't directly impact GlyphEditor, and makes the paint and move modes exclusive checkables to make the editor's state more visually obvious.
2021-11-30Base: Add icon for 90 degree counterclockwise rotationthankyouverycool
2021-11-30FontEditor: Simplify start-upthankyouverycool
Previusly a cloned or newly loaded font was moved twice from main to the constructor and then from constructor to an init routine where it was finally used. The unmasked font is now moved only once, directly to initialization, and redundant error checking is discarded.
2021-11-30FontEditor: Use LibUnicode to convert character casethankyouverycool
Fixes characters beyond the Basic Latin code block not showing their upper-case form in the preview window.
2021-11-30LibGfx+FontEditor: Add helper to determine raw glyph presencethankyouverycool
GlyphBitmaps are considered present if they have a width greater than zero. This adds a counterpart method for raw (unmasked) glyphs and makes intent more explicit throughout FontEditor.
2021-11-30LibCore: Fix relative seeking in IODeviceArne Elster
The recently introduced read buffer in IODevice broke relative seeking. The amount of data in the buffer wouldn't get taken into account.
2021-11-29Base: Add some Vai characters to font Katica Regular 10Lady Gegga
A500–A577 https://www.unicode.org/charts/PDF/UA500.pdf
2021-11-30LibJS: Change LargerOfTwoTemporalUnits AO to return a StringViewTimothy Flynn
2021-11-29LibJS: Implement Temporal.Duration.prototype.subtractLuke Wilde
2021-11-29LibJS: Implement Temporal.Duration.prototype.addLuke Wilde
2021-11-29LibJS: Implement Temporal.Duration.prototype.roundLuke Wilde
2021-11-29LibJS: Implement Intl.DateTimeFormat.prototype.resolvedOptionsTimothy Flynn
2021-11-29LibJS: Implement Intl.DateTimeFormat.supportedLocalesOfTimothy Flynn
2021-11-29js: Implement pretty-printing of Intl.DateTimeFormatTimothy Flynn
2021-11-29LibJS+LibUnicode: Implement the Intl.DateTimeFormat constructorTimothy Flynn
2021-11-29LibJS: Implement a nearly empty Intl.DateTimeFormat objectTimothy Flynn
This adds plumbing for the Intl.DateTimeFormat object, constructor, and prototype. Note that unlike other Intl objects, the Intl.DateTimeFormat object has a LibUnicode structure as a base. This is to prevent wild amounts of code duplication between LibUnicode, Intl.DateTimeFormat, and other not-yet-defined Intl structures, because there's 12 fields shared between them.
2021-11-29LibUnicode: Add special handling of hour cycle (hc) Unicode keywordsTimothy Flynn
For other keywords, allowed values per locale are generated at compile time. But since the CLDR doesn't present hour cycles on a per-locale basis, and hour cycles lookups depend on runtime data, we must handle hour cycle keyword lookups differently than other keywords.
2021-11-29LibUnicode: Parse and generate calendar (ca) Unicode keywordsTimothy Flynn
Also removes a few fly-by "StringView x = nullptr;" unnecessary initializers.
2021-11-29LibUnicode: Parse and generate regional hour cyclesTimothy Flynn
Unlike most data in the CLDR, hour cycles are not stored on a per-locale basis. Instead, they are keyed by a string that is usually a region, but sometimes is a locale. Therefore, given a locale, to determine the hour cycles for that locale, we: 1. Check if the locale itself is assigned hour cycles. 2. If the locale has a region, check if that region is assigned hour cycles. 3. Otherwise, maximize that locale, and if the maximized locale has a region, check if that region is assigned hour cycles. 4. If the above all fail, fallback to the "001" region. Further, each locale's default hour cycle is the first assigned hour cycle.
2021-11-29LibUnicode: Sort generated enums case-insensitivelyTimothy Flynn
This hasn't mattered yet by chance, because the source for all enums contains names of the same case. But the enum generated for hour cycle regions will have mixed case. Sort them case-insensitively in order to traverse these names in the same order in both generate_enum and generate_mapping.
2021-11-29LibUnicode: Parse and generate available candidate format patternsTimothy Flynn
These formats are used by ECMA-402 when neither a date nor time style is specified. In that case, these patterns are searched for a best match.
2021-11-29LibUnicode: Hard-code an alias from the Gregorian calendar to GregoryTimothy Flynn
This alias exists because the name "Gregorian" is too long to be used in a locale identifier, i.e. "en-u-ca-gregorian" is invalid. Aliases for calendars are defined here: https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-bcp47/bcp47/calendar.json However, CLDR version 40 neglected to actually include the cldr-bcp47 package in its release, so we don't have access to this data. So for now hard-code this alias so that JavaScript can actually access it. See: https://unicode-org.atlassian.net/browse/CLDR-15158
2021-11-29LibUnicode: Parse and generate date, time, and date-time format patternsTimothy Flynn
2021-11-29LibUnicode: Create a nearly empty generator for date-time formattingTimothy Flynn
Similar to number formatting, the data for date-time formatting will be located in its own generated file. This extracts the cldr-dates package from the CLDR and sets up the generator plumbing to create the date-time data files.
2021-11-29LibJS+LibUnicode: Separate number formatting methods from Locale.hTimothy Flynn
Currently, we generate separate data files for locale and number format related tables/methods, but provide public accessors for all of the data in one Locale.h file. Rather than continuing this trend for date-time, relative time, etc. formatting, it's a bit easier to reason about if the public accessors are also in separate files.
2021-11-29LibJS: Change Intl's GetOption AO to accept a Span rather than a VectorTimothy Flynn
Allocating a Vector for each of these invocations is a bit silly when the values are basically all compile-time arrays. This AO is used even more heavily by Intl.DateTimeFormat, so change it to accept a Span to reduce its cost. This also adds an overload to accept a fixed-size C-array so callers do not have to be prefixed with AK::Array, i.e. this: get_option(..., AK::Array { "a"sv, "b"sv }, ...); Reduces to: get_option(..., { "a"sv, "b"sv }, ...); (Which is how all call sites were already written to construct a Vector in place).
2021-11-29LibDSP: Fix potential slicing issue in volume_from_envelopeBrian Gianforcaro
Use pointer or reference to avoid slicing from "PitchedEnvelope" to "Envelope". This was found by SonarCloud.
2021-11-29LibCpp: Fix copy paste typo in Parser::match_secondary_expressionBrian Gianforcaro
This was caught by SonarCloud.
2021-11-293DFileViewer: Set correct aspect ratio in view frustumJelle Raaijmakers
2021-11-29Tests: Add a simple LibGL render-testHendiadyoin1
At the moment we just check if we *can* render a simple triangle, we do not yet actually test if the image is indeed the triangle we wanted. This test also outputs the rendered image when GL_DEBUG is enabled to a file called "picture.bmp" for manual verification. Co-authored-by: sunverwerth <s.unverwerth@serenityos.org>
2021-11-29Lagom: Add LibGL to the librariesHendiadyoin1
2021-11-29Lagom: Disable implicit-const-int-float-conversion warningsHendiadyoin1
2021-11-29LibGL: Mark SoftwareGLContext::gl_scissor as overrideHendiadyoin1
I do not know how this did not trigger CI up until now...
2021-11-29LibGfx: Link against LibIPCHendiadyoin1
Gfx::Color implements an IPC::[en|de]code function, but we did not actually link against LibIPC to resolve the needed Symbols for that and were relying on LibGui or others to link against it for us. Having this linkage is unfortunate, but static inlining the functions in question is sadly not possible, due needed includes leading the IPC pipeline to initialize multiple times then, which leads to a compilation error.
2021-11-29LibGfx: Load default font lazilyHendiadyoin1
This is required when trying to use a Painter from lagom, due to /res/font not being present
2021-11-29LibJS: Implement parsing and executing for-await-of loopsdavidot