summaryrefslogtreecommitdiff
path: root/Userland/Applications/DisplaySettings
AgeCommit message (Collapse)Author
2021-09-03DisplaySettings: Add context menu for wallpapersKarol Kosek
This adds a 'Show in File Manager' action and copy path action to file context menu for quicker navigation. :^)
2021-08-31DisplaySettings: Use LibConfig where possibleMustafa Quraish
Some places here still need to open `/etc/WindowServer.ini` which we can't do with th ConfigServer yet.
2021-08-31Userland: Use Rect::centered_within() where usefulAndreas Kling
2021-08-22Everywhere: Rename get in ConfigFile::get_for_{lib,app,system} to opennetworkException
This patch brings the ConfigFile helpers for opening lib, app and system configs more inline with the regular ConfigFile::open functions.
2021-08-22Everywhere: Use Core::ConfigFile::AllowWriting::Yes to allow writingnetworkException
2021-08-20DisplaySettings: Lazily load wallpapersAndrew January
Load the wallpaper in a background action instead of on the main thread. This reduces the time to first paint, and makes the UI feel more responsive when clicking on wallpaper thumbnails. The behavior of the method is changed slightly to return true if it succesfully "loads" the empty path. This makes the API a little more consistent, where "true" means "I made changes" and "false" means "I did not make changes". No call sites currently use the return value, so no changes are needed to those.
2021-08-18Userland+LibGUI: Add shorthand versions of the Margins constructorsin-ack
This allows for typing [8] instead of [8, 8, 8, 8] to specify the same margin on all edges, for example. The constructors follow CSS' style of specifying margins. The added constructors are: - Margins(int all): Sets the same margin on all edges. - Margins(int vertical, int horizontal): Sets the first argument to top and bottom margins, and the second argument to left and right margins. - Margins(int top, int vertical, int bottom): Sets the first argument to the top margin, the second argument to the left and right margins, and the third argument to the bottom margin.
2021-08-18Userland+LibGUI: Make Margins arguments match CSS orderingsin-ack
Previously the argument order for Margins was (left, top, right, bottom). To make it more familiar and closer to how CSS does it, the argument order is now (top, right, bottom, left).
2021-08-14DisplaySettings: Pass the parent window to the FilePickerKarol Kosek
Prior this change, closing the Display Settings application didn't close the File Picker.
2021-08-14DisplaySettings: Remove the trailing dot from tooltip and window titleKarol Kosek
2021-08-14DisplaySettings: Open the wallpaper file picker in the wallpaper pathKarol Kosek
This small change can indirectly tell you where wallpapers are saved.
2021-08-01Applications: Remove unused header includesBrian Gianforcaro
2021-07-31DisplaySettings: Rename "virtual desktops" => "workspaces"Andreas Kling
2021-07-26DisplaySettings: Prevent minimising the windowJamie Mansfield
This matches how the new MouseSettings application works.
2021-07-21LibGfx: Use "try_" prefix for static factory functionsAndreas Kling
Also mark them as [[nodiscard]].
2021-07-21DisplaySettings: Add ComboBox to allow selecting other screensTom
This enables changing monitor settings for each monitor individually. In the event that changing a resolution causes screens to overlap we now try to disperse the screens, although the algorithm currently implemented may result in some rather unexpected layouts in certain cases. We can still improve this logic, and eventually we're going to have a widget where the screens can be arranged as desired.
2021-07-12DisplaySettings: Reload current settings when apply dialog is dismissedLuK1337
Fixes: #8673
2021-07-03DisplaySettings: Add new Desktop tab with virtual desktop settingsTom
This allows the user to configure the virtual desktop setup as desired.
2021-07-01DisplaySettings: Adjust FontSettings.gml to work with dark themesDoubleNegation
The FontSettings widget now uses background_role instead of background_color to ensure that it displays properly independently of the active system theme.
2021-06-25DisplaySettings: Show screen numbers when showing the Monitors tabTom
This will be helpful once we allow the user to rearrange the displays.
2021-06-23DisplaySettings: Revert changes unless confirmedXavier Defrang
2021-06-20WindowServer: Add API to set/get screen layoutsTom
This sets the stage so that DisplaySettings can configure the screen layout and set various screen resolutions in one go. It also allows for an easy "atomic" revert of the previous settings.
2021-06-20WindowServer: Add initial support for rendering on multiple screensTom
This allows WindowServer to use multiple framebuffer devices and compose the desktop with any arbitrary layout. Currently, it is assumed that it is configured contiguous and non-overlapping, but this should eventually be enforced. To make rendering efficient, each window now also tracks on which screens it needs to be rendered. This way we don't have to iterate all the windows for each screen but instead use the same rendering loop and then only render to the screen (or screens) that the window actually uses.
2021-06-17Everywhere: Add component declarationsGunnar Beutner
This adds component declarations so that users can select to not build certain parts of the OS.
2021-06-06AK+Everywhere: Disallow constructing Functions from incompatible typesAli Mohammad Pur
Previously, AK::Function would accept _any_ callable type, and try to call it when called, first with the given set of arguments, then with zero arguments, and if all of those failed, it would simply not call the function and **return a value-constructed Out type**. This lead to many, many, many hard to debug situations when someone forgot a `const` in their lambda argument types, and many cases of people taking zero arguments in their lambdas to ignore them. This commit reworks the Function interface to not include any such surprising behaviour, if your function instance is not callable with the declared argument set of the Function, it can simply not be assigned to that Function instance, end of story.
2021-05-29DisplaySettings: Set monitor widget color if no image is selectedJesse Buhagiar
The monitor widget now displays the selected colour if no background image has been selected. Resolves #7491
2021-05-24FontSettingsWidget: Reduce duplication in Label setup codeThomas Keppler
Pull out the Label updating code into its own function. Ideally, we should probably transform this code to use its own widget rather than doing this all in-line. I.e., having a `FontSettingWidget` that that ties the FontPicker, Label and Button into its own little widget, so that we can stay extendible in the main widget and reduce duplication some more!
2021-05-24FontSettingsWidget: Promote Labels as instance membersThomas Keppler
In order to not resolve the widgets twice, we capture them in ivars.
2021-05-24FontSettingsWidget: Display the default (fixed-width) font's nameThomas Keppler
Previously, the font was applied to the Labels but the name wasn't updated on initial startup. This meant that the Label's content was only correct in the default state but not if the user changed the defaults.
2021-05-21DisplaySettings: Restrict selection of fixed-width fontsAndreas Kling
Only allow fixed-width fonts to be the system fixed-width font. :^)
2021-05-21DisplaySettings: Add "Fonts" tabAndreas Kling
This allows you to view, edit, and apply changes to the system fonts.
2021-05-21DisplaySettings: Allow deselection of background imageJagger De Leo
Previously, if you selected a background image you could not revert to a solid color background.
2021-05-20WindowServer+DisplaySettings: Remove the weird "simple" wallpaper modeAndreas Kling
Painting the wallpaper at 100% scale in the top left corner is a weird mode and I don't think we need it. :^)
2021-05-20DisplaySettings: Improve wallpaper preview codeAndreas Kling
Previously, this code would create a bitmap with the size of the screen resolution, draw the new wallpaper into it, and then scale it down for display inside the MonitorWidget. This was done on every paint event, which made the code quite slow and allocation-happy. Instead of this, we now scale down the new wallpaper to a miniature of the same scale as the little MonitorWidget screen. The miniature is then used for tiling, etc. The miniature is cached and reused across paint events if nothing else changes.
2021-05-20DisplaySettings: Fix broken path to MonitorSettingsWidget's GMLAndreas Kling
2021-05-20DisplaySettings: Remove icon from browse-for-wallpaper buttonAndreas Kling
The icon on this button looked out of place.
2021-05-20DisplaySettings: Select the currently used wallpaper on startupAndreas Kling
2021-05-20DisplaySettings: Make MonitorWidget update itself on property changesAndreas Kling
2021-05-20DisplaySettings: Rename DisplaySettingsWidget => MonitorSettingsWidgetAndreas Kling
2021-05-20DisplaySettings: Give the UI a facelift :^)Andreas Kling
- Split the main UI into two tabs: "Background" and "Monitor". - Use a GUI::IconView for selecting background pictures. - Tweak layout, spacing, etc.
2021-05-20DisplaySettings: Tweak main window layout & setup codeAndreas Kling
Get rid of the menu and put some padding around the main tab widget.
2021-05-20DisplaySettings: Replace the monitor image with something more thematicAndreas Kling
This is a drawing of my own monitor in a familiar style. :^)
2021-05-13Userland: Tighten a *lot* of pledges! :^)Andreas Kling
Since applications using Core::EventLoop no longer need to create a socket in /tmp/rpc/, and also don't need to listen for incoming connections on this socket, we can remove a whole bunch of pledges!
2021-05-12Everywhere: Add Alt shortcuts to remaining top-level menusLinus Groh
Not sure why some menus did have one and others didn't, even in the same application - now they all do. :^) I added character shortcuts to some menu actions as well.
2021-05-03Userland: Update IPC calls to use proxiesGunnar Beutner
This updates all existing code to use the auto-generated client methods instead of post_message/send_sync.
2021-05-01Everywhere: Rename app_menu to file_menu or game_menuAndreas Kling
2021-04-29WindowServer: Move configuration file to /etc/WindowServer.iniAndreas Kling
This was in the /etc/WindowServer/ directory which had nothing else in it, so let's just get rid of the directory and move this up one step.
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-13Everywhere: It's now "Foobar", not "FooBar", and not "foo bar"Andreas Kling
I hereby declare these to be full nouns that we don't split, neither by space, nor by underscore: - Breadcrumbbar - Coolbar - Menubar - Progressbar - Scrollbar - Statusbar - Taskbar - Toolbar This patch makes everything consistent by replacing every other variant of these with the proper one. :^)
2021-03-29Everywhere: Remove empty {} from GML objectsEdgar Araújo