summaryrefslogtreecommitdiff
path: root/Userland/Applications/ThemeEditor
AgeCommit message (Collapse)Author
2023-01-01ThemeEditor: Make GUI initialization fallibleSam Atkins
To do this, all GUI logic is moved into try_create() factory functions.
2022-12-31ThemeEditor: Support editing color schemesimplicitfield
2022-12-14LibFileSystemAccessClient: Rename `try_save_file` =>Lucas CHOLLET
`try_save_file_deprecated` This precedes the addition of a new api using `Core::Stream`
2022-12-14LibGfx+Userland: Make Gfx::SystemTheme propagate errorsCygnix Proto
This patch introduces error propagation to Gfx::SystemTheme to remove instances of release_value_but_fixme_should_propagate_errors(). Userland applications that have been affected by this change have been updated to utilise this propagation and as a result 4 such instances of the aforementioned method have been removed.
2022-12-06Everywhere: Rename to_{string => deprecated_string}() where applicableLinus Groh
This will make it easier to support both string types at the same time while we convert code, and tracking down remaining uses. One big exception is Value::to_string() in LibJS, where the name is dictated by the ToString AO.
2022-12-06AK+Everywhere: Rename String to DeprecatedStringLinus Groh
We have a new, improved string type coming up in AK (OOM aware, no null state), and while it's going to use UTF-8, the name UTF8String is a mouthful - so let's free up the String name by renaming the existing class. Making the old one have an annoying name will hopefully also help with quick adoption :^)
2022-11-19ThemeEditor: Update GML and polish interfacethankyouverycool
Registers the PreviewWidget for addition directly into GML. Fixes its previous double Frame borders. Also standardizes the Apply and Reset buttons as DialogButtons and spaces them consistently with other apps. Gives the TabWidget some tasteful container margins.
2022-11-19Magnifier+ThemeEditor: Use CommonMenus::make_accessibility_menu()thankyouverycool
2022-11-15Userland: Remove workarounds for LibIPC include order sensitivityTimothy Flynn
2022-11-13Userland: Accept drag_enter events for widgets supporting file dropsKarol Kosek
This patch will switch cursor to DragCopy when a user enters a widget while dragging file(s), giving them a visual clue that it *might* be dropped into this widget. This is a rather naive approach, as the cursor icon will change for any kind of file, as currently programs don't know the drag contents before dropping it. But after all I think it's better than nothing. :^)
2022-11-07ThemeEditor: Warn about unsaved changes on file openKarol Kosek
2022-11-01Everywhere: Mark dependencies of most targets as PRIVATETim Schumacher
Otherwise, we end up propagating those dependencies into targets that link against that library, which creates unnecessary link-time dependencies. Also included are changes to readd now missing dependencies to tools that actually need them.
2022-10-25Applications: Use new global variables at /sys/kernel/ directoryLiav A
2022-10-25Userland: Let applications make use of make_command_palette_action()demostanis
2022-10-12Userland: Properly populate GENERATED_SOURCESAli Mohammad Pur
We previously put the generated headers in SOURCES, which did not mark them as GENERATED (and did not produce a proper dependency). This commit moves all generated headers into GENERATED_SOURCES, and removes useless header SOURCES.
2022-10-03Userland: Unveil /proc/all in applications which require itTimothy Flynn
These were missed in 7af5eef. It is needed for any application using e.g. FileSystemAccessServer.
2022-10-03Userland: Tighten promises by removing 'proc' where it isn't usedTimothy Flynn
This is a partial revert of commit 7af5eef. After 97d15e9, the 'proc' promise is not needed for operations using getsid(). This also fixes launching several applications in which 7af5eef added the 'proc' promise only in the second call to pledge().
2022-10-03SystemServer+LoginServer+Userland: Switch to sid-based socketsPeter Elliott
This commit does three things atomically: - switch over Core::Account+SystemServer+LoginServer to sid based socket names. - change socket names with %uid to %sid. - add/update necessary pledges and unveils. Userland: Switch over servers to sid based sockets Userland: Properly pledge and unveil for sid based sockets
2022-09-12Everywhere: Use my very shiny serenityos.org email :^)networkException
2022-08-14Base: Launch FileSystemAccessServer at session start-upLucas CHOLLET
2022-08-13ThemeEditor: Use `FileSystemAccessServer` instead of unveiling filesLucas CHOLLET
2022-07-12Everywhere: Add sv suffix to strings relying on StringView(char const*)sin-ack
Each of these strings would previously rely on StringView's char const* constructor overload, which would call __builtin_strlen on the string. Since we now have operator ""sv, we can replace these with much simpler versions. This opens the door to being able to remove StringView(char const*). No functional changes.
2022-06-30ThemeEditor: Fix layout for new layout systemFrHun
2022-06-17ThemeEditor: Run gml-formatLinus Groh
2022-06-17ThemeEditor: Allow temporarily overriding the system themenetworkException
This patch introduces two new buttons to apply the current theme being edited to the whole system and to reset to the previously selected on disk system theme.
2022-05-25ThemeEditor: Use 'open' icon instead of ellipsis on path picker buttonKarol Kosek
The ellipsis seemed a little unclear for me.
2022-05-25ThemeEditor: Show unsaved changes prompt also in the quit actionKarol Kosek
While the app displayed the prompt on the close button press, the quit action from the menu didn't do so.
2022-05-21ThemeEditor: Position preview windows based on the title heightSam Atkins
This means all three window titles are visible, regardless of what the TitleHeight and BorderThickness values are. :^) The one exception is when TitleHeight is less than the height of the title text. WindowManager ensures that the real title height is at least enough to fit the text, so if the value is set to less than that, the window titles will start to overlap. So, don't set values that are impossibly small!
2022-05-21ThemeEditor: Make MainWidget responsible for holding the edited PaletteSam Atkins
Previously, the PreviewWidget was responsible for this, but we will soon have multiple preview widgets, so having it here will make more sense.
2022-05-21ThemeEditor: Convert the widget-preview layout to GMLSam Atkins
This has the nice bonus of fixing the appearance of the status bar. :^)
2022-05-21ThemeEditor: Arrange the theme properties into groupsSam Atkins
This makes it clearer which properties are related, instead of them all being in one list per tab.
2022-05-21ThemeEditor: Give each theme property its own editing widgetSam Atkins
This is quite a radical change. The previous UI was very easy to add new properties to (just add to the FooRole enum and it automatically works), but not so nice to use: A ComboBox for selecting a property, and then a box to edit that property's value. This makes it difficult to compare different properties or edit multiple together without a lot of back-and-forth. This new design gives each property its own editing widgets, with those categorized into several tabs. To try and avoid increasing the maintenance burden for this, the UI is generated from the `windows_tab`, `widgets_tab` and `syntax_highlighting_tab` variables, which are basically just lists of which properties go in that tab. One of the `FooProperty.gml` files is loaded to create each property's widgets.
2022-05-21ThemeEditor: Actually save alignment rolesSam Atkins
2022-05-21ThemeEditor: Extract most logic into a MainWidget classSam Atkins
2022-05-13LibGUI+Userland: Make Dialog::ExecResult an enum classSam Atkins
2022-05-07ThemeEditor: Fix Clang build failure in PreviewWidgetLinus Groh
2022-05-07ThemeEditor: Center preview with center_window_group_within()MacDue
2022-04-29ThemeEditor: Show if modified, and prompt before discarding unsaved workSam Atkins
2022-04-29ThemeEditor: Update displayed alignment when loading a theme fileSam Atkins
2022-04-29ThemeEditor: Stop firing unnecessary change callbacksSam Atkins
We only need to fire these callbacks when we want to change the palette. So, when setting widget values to match a palette that has just been loaded, or to show the value of the role selected in a ComboBox, we can skip the callbacks. This saves some work, and means we can reliably use on_palette_change to know when the palette has actually been modified.
2022-04-29LibGUI+ThemeEditor: Split preview-widget palette-change callbackSam Atkins
There are two different things in ThemeEditor that want to know when a palette changes: 1. The PreviewWidget subclass, so it can update its preview. 2. The ThemeEditor itself, so we know that the palette is modified. Using a protected virtual function for 1 means that we can do 2 without them fighting over the same on_palette_change callback.
2022-04-29ThemeEditor: Open the FilePicker at the location in the path inputSam Atkins
The kernel panic no longer occurs, so we can do this now. :^)
2022-04-29ThemeEditor: Show a message box if saving failsSam Atkins
2022-04-29ThemeEditor: Propagate failure to create AlignmentModelSam Atkins
Also make the AlignmentValue struct private, and initialize the Vector in one go instead of empending.
2022-04-28ThemeEditor: Add preview window with 'Highlighted' window stateMacDue
This state has been occasionally missed in themes, adding it to the preview may help avoid that.
2022-04-28ThemeEditor: Center preview windows accounting for window frameMacDue
2022-04-18ThemeEditor: Remove unused model classesKarol Kosek
They have been replaced by generic RoleModel class.
2022-04-18ThemeEditor: Use new RoleModel template classKarol Kosek
2022-04-18ThemeEditor: Add generic RoleModel template classKarol Kosek
This is to simplify the code, as Color, Alignment, Flag, Metric and Path RoleModel classes looked exactly the same. Additionally, I've added a try_create() function for error propagation. :^)
2022-04-18Userland: Always construct Application with try_create()Sam Atkins