Commit Graph

266 Commits

Author SHA1 Message Date
955d5affa8 Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
9ab3ff04ac Don't translate ColorPicker color labels 2024-04-18 20:26:56 +02:00
d827b34ea8 Fixed undo/redo behaviour of color picker and added ability to cancel/confirm color selection. 2024-03-24 15:12:11 -05:00
d70c45b5c8 Add option to add built-in strings in the POT generation 2024-02-28 11:34:26 -03:00
7884d63281 Fix PopupMenu doesn't respect it's ScrollContainer's margins 2024-02-23 15:51:47 +02:00
0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
80a770a8ed Allow additional hexadecimal color codes in ColorPicker
The following formats are now accepted (leading `#` is optional):

- `#1` -> `#111111`
- `#12` -> `#121212`
- `#12345` -> `#11223344` (`5` at the end is discarded)
- `#1234567` -> `#123456` (`7` at the end is discarded)
2024-01-08 20:51:45 +01:00
a6dc1b3907 Merge pull request #84527 from Calinou/colorpicker-display-revert-icon
Display a revert icon on ColorPicker's old sample
2024-01-03 09:59:06 +01:00
1125235c95 Merge pull request #85749 from bs-mwoerner/color_picker_quantize_fix
Fix unnecessarily quantizing current color in color picker
2023-12-18 18:17:53 +01:00
21d778b0c3 Changed HTML input color_changed logic.
Made the HTML field send change events based on whether the new color's string is different from the previous color's string (instead of whether the new string parses to the current color value).
Previously, updating the color value even when the corresponding string hadn't changed would unnecessarily quantize the color value to 8 bits just by opening/closing the Color Picker.
2023-12-17 15:36:57 +01:00
7979412c75 Remember last 'color_mode' and 'picker_shape' in 'ColorPicker's in the editor 2023-12-14 18:57:57 +00:00
d76d8c5f29 Fix ColorPicker's alpha slider arrow offset 2023-12-11 16:17:45 +01:00
079f1c8ead Display a revert icon on ColorPicker's old sample
This denotes that the color can be clicked to revert to the old color.
2023-11-07 10:04:39 +01:00
15ec132ea2 Fix ColorPicker shape icon is invisible until shape is changed 2023-11-06 18:08:48 +01:00
d335155b46 Increase precision of RAW mode in ColorPicker
This sets the slider step to `0.001` but keeps SpinBox arrow increments
at `0.01`.
2023-10-23 18:33:56 +02:00
215e036600 Add bulk change guards to successive theme overrides in Editor and GUI 2023-10-19 18:14:14 +02:00
3160add2b0 Fix ColorPicker deferred mode not working for sliders. 2023-10-13 14:35:47 +02:00
fe000277ea Bind remaining theme properties to their respective classes
This adds binds for GraphEdit/GraphElement/GraphNode, which were
skipped before due to a rework. This also adds binds for Window,
which was skipped before due to a complicated code organization.

Also adds theme cache entries/direct cache access to a few places
that previously missed it. Some theme properties are now exposed
to other classes via friendships or public getters for convenience.

This removes all string-based theme access from scene/ classes.
2023-09-13 19:31:35 +02:00
2924bfd4d3 Register theme properties with ThemeDB 2023-09-11 13:45:23 +02:00
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
14256a2395 Merge pull request #78468 from KoBeWi/enmarginalization
Fix ColorPicker margin theme property
2023-08-08 16:55:32 +02:00
d934d00828 Remove spaces from input of HTML color in color picker
Fixes #79338
2023-07-22 12:11:28 +02:00
a29a680920 Extract StyleBoxFlat, StyleBoxTexture and StyleBoxLine in their own file 2023-07-17 13:25:00 +02:00
7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
3f02b0cfde Moved HSV and OKHSL caching logic into color_mode 2023-07-05 07:15:58 -07:00
e11e9d2b9a Use cached saturation for color picker when value is 0 2023-06-21 15:18:20 -07:00
9c3afcc898 Fix ColorPicker margin theme property 2023-06-20 12:47:52 +02:00
a374c7d519 Use cached hue for color picker when saturation is 0
Fixes #76968.
2023-06-12 10:59:33 +02:00
0f0f233d37 Merge pull request #76751 from anvilfolk/swatch
Fix adding colors to swatches not updating in previous ColorPickers.
2023-05-22 13:48:43 +02:00
a132ed0ca4 Fix adding colors to swatches not updating in previous ColorPickers.
ColorPicker was only updating colors if its swatches were empty. It
should always update from the cache in case some other ColorPicker
updated the swatch cache.
2023-05-21 17:50:14 -04:00
b76ddeda45 Improve color picking 2023-05-19 14:21:43 +02:00
e758164ba6 Merge pull request #72376 from MewPurPur/fix-color-button-popup
Fix popup position of color picker
2023-05-08 12:20:07 +02:00
14cb9b5b26 Add center_grabber property to Slider 2023-04-22 17:53:17 +02:00
87b8eea9f6 Merge pull request #75904 from Calinou/colorpicker-constructor-round-values
Round values to 3 decimals in the ColorPicker constructor string
2023-04-13 09:54:18 +02:00
4d8331ad1f Round values to 3 decimals in the ColorPicker constructor string
This makes the whole string always fit within the LineEdit
(at least when using the default font).
2023-04-11 18:29:52 +02:00
517dc3654a Allow entering named colors in ColorPicker's hex field
This also makes the hex field wider to allow displaying 9-character
hex code (`#rrggbbaa`) in full, even when using a custom font.
2023-04-10 23:59:07 +02:00
e401540264 Implement theme item cache in ColorPicker and friends 2023-04-03 18:01:11 +02:00
b90d70d592 Merge pull request #72764 from Sauermann/fix-color-picking
Fix Color Picking
2023-02-17 00:33:20 +01:00
3542d24fda Fix HSV Rectangle Wheel values 2023-02-13 01:18:44 +01:00
888add8418 Fix Color Picking
With the 4.x-introduction of Windows the previous method for
color picking was no longer working.

This PR uses the following approach to reintroduce color-picking.
When the Color-Picking-Button is pressed, a quasi-screenshot of the
Window-content is created and displayed in a new Popup-Window.
This new Window allows selecting colors by Mouse-Click.
A Preview of the targeted Color is also displayed.
2023-02-09 01:00:54 +01:00
040e258164 Fix popup position of color picker 2023-01-30 14:04:45 +01:00
5068d82374 Merge pull request #71686 from YuriSizov/stylebox-min-size-but-better
Clean-up, harmonize, and improve StyleBox API
2023-01-22 17:53:04 +01:00
906ee0b219 Merge pull request #67253 from KoBeWi/PICKER_USAGE_NO_EDITOR
Remove editor dependencies from ColorPicker
2023-01-21 20:52:16 +01:00
752402cf35 Clean-up, harmonize, and improve StyleBox API
- Make all margin properties follow the same naming convention (their getter and setter too).
- Remove a virtual counterpart of `get_style_margin` from API.
- Allow to override `get_minimum_size` from scripting and remove `get_center_size`.
2023-01-19 20:02:21 +03:00
59ea36b87c Remove set_drag_forwarding_compat() 2023-01-14 15:16:51 +01:00
e6a4debede Change set_drag_forwarding() to use callables.
* This solution is much cleaner than the one in 3.x thanks to the use of callables.
* Works without issues in any language (no need to worry about camel or snake case).
* Editor code uses a compatibility function (too much work to redo).

Fixes #59899
2023-01-10 14:09:24 +01:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
b04bc49443 Merge pull request #68255 from jbcolli2/ColorPickerBug
Fixed Issue #68194 involving ColorPicker being allowed to align horizontally when it shouldn't
2022-12-21 22:25:14 +01:00
ebf4f75c54 Merge pull request #68855 from Cafalaarl/Cafalaarl/master
Fixed incorrect gradient orientation in HSV vertical slider
2022-11-22 08:29:12 +01:00
28af870750 Code simplifications found by cppcheck
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00