summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-01-28zip: Ignore symlinks when recursively zipping filesIdan Horowitz
This prevents infinite loops when symlinks point to a parent directory.
2022-01-28CharacterMap: Move display name strings into the search results objectTimothy Flynn
Now that we're passing the display name directly to the search results structure, let's move() the string instead of copying it.
2022-01-28CharacterMap: Change the search widget to display results in a TableViewTimothy Flynn
Code points that have a bidirectional attribute of right-to-left (e.g. some Arabic and Hebrew code points) were causing the code point to render at the end of the search result, rather than the beginning. To keep the results consistent, split the search results into two columns: the first for the code point, the second for its name.
2022-01-28Revert "FileSystemAccessServer: Display times in the local time zone"Timothy Flynn
This reverts commit fa016a72fd8f0288de02f3aa8e7834b08b8f2238.
2022-01-28Revert "FileManager: Display times in the user's local time zone"Timothy Flynn
This reverts commit 080b054695f03df2f731d9a519432e3f196f48e6.
2022-01-28Revert "ls: Display times in the user's local time zone"Timothy Flynn
This reverts commit 0c13a3a8ff07a7dde8acc30ede885685c224ef64.
2022-01-28Revert "Userland: Invoke tzset in apps that care about time zones"Timothy Flynn
This reverts most of commit ede5c9548e55d8216dba21ed431b9e53d085a248. The one change not reverted is ClockWidget.h, so that the taskbar clock can continue to notice time zone changes.
2022-01-28LibMain: Invoke tzset in LibMain so all apps can have time zone infoTimothy Flynn
Rather than finding apps that benefit from time zone awareness one-by- one, and calling tzset in their serenity_main, let's do it in LibMain.
2022-01-28LibSoftGPU: Simplify clipping logicLenny Maiorani
The clipping logic is not DRY (Don't Repeat Yourself). The same logic is repeated in multiple parts of an `if-else` statement. This can be simplified to contain fewer branches and eliminate the redundant code.
2022-01-28FileSystemAccessServer: Display times in the user's local time zoneTimothy Flynn
2022-01-28FileManager: Display times in the user's local time zoneTimothy Flynn
2022-01-28ls: Display times in the user's local time zoneTimothy Flynn
ls is already using local time, but needs tzset() for that to actually work.
2022-01-28BrowserSettings: Use standard text placement for check box textTimothy Flynn
2022-01-28MailSettings: Use standard text placement for check box textTimothy Flynn
2022-01-28MouseSettings: Use standard text placement for check box textTimothy Flynn
2022-01-28HackStudio: Fix path to language-server IPC socketItamar
The path to the language server local socket was accidentally broken in 2e1bbcb.
2022-01-27LibGUI: Alphabetize the available entries in CommandPaletteAndreas Kling
2022-01-27LibGUI: Show action icons in CommandPalette when available :^)Andreas Kling
2022-01-27LibGUI: Add a universally available "command palette" to GUI programsAndreas Kling
You can now press Ctrl+Shift+A in any LibGUI application and we'll give you a command palette dialog where you can search for context-relevant actions by name (via the keyboard.) The set of actions is currently the same one you'd access via keyboard shortcuts. In the future, we'll probably want to add APIs to allow richer integrations with this feature.
2022-01-27LibGUI: Make FilteringProxyModel::data() support multi-column dataAndreas Kling
While the rows are filtered, we can't just return data from column 0 every time, since that breaks underlying multi-column models. Instead, simply forward the incoming index.
2022-01-27LibGUI: Fix bogus return value on error in FilteringProxyModel::data()Andreas Kling
Return an empty GUI::Variant on indexing error.
2022-01-27LibGUI: Fix bogus root index column_count() in FilteringProxyModelAndreas Kling
The root index (ModelIndex()) should should have the same column count as the root index in the underlying model.
2022-01-27LibGUI: Don't skip non-skipable spans on ctrl+rightMathieu PATUREL
Just a couple of typos in `TextDocument::first_non_skippable_span_after`.
2022-01-27LibJS: Implement Intl.RelativeTimeFormat.prototype.formatToPartsTimothy Flynn
2022-01-27LibJS: Implement Intl.RelativeTimeFormat.prototype.formatTimothy Flynn
2022-01-27LibJS: Add explicit constructors for PatternPartitionTimothy Flynn
This is to enable emplacing this struct in containers. GCC is fine with emplacing without this constructor, but Clang raises an error.
2022-01-27LibJS: Change RelativeTimeFormat::number_format to return a referenceTimothy Flynn
In the one place this will be used, we will know that the NumberFormat object is non-null. So return a reference, as the AO it is passed off to also expects a reference.
2022-01-27LibJS: Add missing spec link for InitializeRelativeTimeFormatTimothy Flynn
2022-01-27LibUnicode: Templatize our naive implementation of plurality selectionTimothy Flynn
As we didn't (and still don't) have Intl.PluralRules when we implemented Intl.NumberFormat, we use a locale-unaware basic implementation to pick a pattern based on a number's value. Templatize this method for now to work other other format-like structures (will be used for relative-time formatting).
2022-01-27LibUnicode: Parse and generate relative-time format patternsTimothy Flynn
Relative-time format patterns are of one of two forms: * Tensed - refer to the past or the future, e.g. "N years ago" or "in N years". * Numbered - refer to a specific numeric value, e.g. "in 1 year" becomes "next year" and "in 0 years" becomes "this year". In ECMA-402, tensed and numbered refer to the numeric formatting options of "always" and "auto", respectively.
2022-01-27LibSoftGPU: Reduce Clipper class interface to minimumLenny Maiorani
Much of the `Clipper` class can be made free functions and their scope limited. The purpose of this is to prepare the interface for a change to more compile-time dispatch.
2022-01-27LibSoftGPU: Use default construction to clear AlphaBlendFactorsLenny Maiorani
Clearing the `m_alpha_blend_factors` is performed manually and in separate steps. This is error prone for future developers. The behavior is to reset the entire `struct` to the same state as default initialization, so this simplifies it to do just that.
2022-01-27LibGL: Set rasterizer material state without copyingLenny Maiorani
Each of the material faces is copied member by member then the copied material state is passed by `const&` to another function, then destroyed. This is changed to simply passing the material state directly without copying.
2022-01-27LibGL: Set rasterizer light state without copyingLenny Maiorani
There is a loop over the lights in which each light state is copied member by member then the copied light state is passed by `const&` to another function, then destroyed. This is changed to simply passing the light state directly without copying.
2022-01-27LibJS: Respect per-locale minimum grouping digits when number formattingTimothy Flynn
2022-01-27LibUnicode: Generate per-locale minimum grouping digit valuesTimothy Flynn
Previously, we were breaking up digits into groups without regard for the locale's minimumGroupingDigits value in the CLDR. This value is 1 in most locales, but is 2 in locales such as pl-PL. What this means is that in those locales, the group separator should only be inserted if the thousands group has at least 2 digits. So 1000 is formatted as "1,000" in en-US, but "1000" in pl-PL. And 10000 is "10,000" in en-US and "10 000" in pl-PL.
2022-01-27LibJS: Prevent implicit pointer-to-bool conversion in Value constructorTimothy Flynn
For example, say you try to create a Value from an Array and forgot to include LibJS/Runtime/Array.h. This would cause the boolean constructor to be used instead of a compile error.
2022-01-27ping: Port to LibMainbrapru
2022-01-27RequestServer: Make Request::url() virtualAndreas Kling
Let the Request subclass decide how they store the URL instead of storing it in a Request member.
2022-01-27WebServer: Unveil /etc/timezone for readingAndreas Kling
2022-01-26LibGUI+LoginServer: Use default buttons in InputBox and LoginWindowthankyouverycool
2022-01-26LibGUI: Allow Buttons to set themselves as defaultthankyouverycool
Several apps were implementing this behavior ad hoc. This provides a standard API as well as a comfy visual cue for default return key behavior.
2022-01-26LibGUI: Allow Windows to set a default return key widgetthankyouverycool
The default return key widget takes precendence when dispatching return key events with the exception of focused buttons.
2022-01-26LibGL: Implement `glMateriali{v}`Jesse Buhagiar
2022-01-26LibGL: Implement `glLighti{v}`Jesse Buhagiar
2022-01-26LibGL: Correctly set scene ambient in `glLightModelfv`Jesse Buhagiar
This was only passing in the `R` value to the scene's ambient color, which is incorrect.
2022-01-26LibGL: Implement `glLightModeliv`Jesse Buhagiar
2022-01-26LibGL: Implement `glGetMaterial`Jesse Buhagiar
2022-01-26LibGL: Implement `glGetLight`Jesse Buhagiar
2022-01-26LibEDID: Use correct paths for LibEDID generated filesTimothy Flynn
Code generators that generate their files for both Lagom and Serenity have a blob in their CMake file like this: set(TIME_ZONE_DATA_HEADER LibTimeZone/TimeZoneData.h) set(TIME_ZONE_DATA_IMPLEMENTATION LibTimeZone/TimeZoneData.cpp) set(TIME_ZONE_META_TARGET_PREFIX LibTimeZone_) if (CMAKE_CURRENT_BINARY_DIR MATCHES ".*/LibTimeZone") # Serenity build. set(TIME_ZONE_DATA_HEADER TimeZoneData.h) set(TIME_ZONE_DATA_IMPLEMENTATION TimeZoneData.cpp) set(TIME_ZONE_META_TARGET_PREFIX "") endif() LibEDID generates files only for Serenity, but was using the Lagom build version of the _HEADER, _IMPLEMENTATION, and _PREFIX variables. Thus if pnp_ids.cmake was ever touched, the following error would be raised: Userland/Libraries/LibEDID/EDID.cpp:18:18: fatal error: LibEDID/PnpIDs.h: No such file or directory 18 | # include <LibEDID/LibEDID/PnpIDs.h> Use the Serenity paths in pnp_ids.cmake and in the #include within LibEDID itself.