Commit Graph

188 Commits

Author SHA1 Message Date
7f7244f04a Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
e7da3ce96e Disallow Callable, Signal and RID in export arrays 2022-05-05 19:22:48 +02:00
f851c4aa33 Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
d1207a0504 [Input] Add extra shortcut_input input processing step to process Unicode character input with Alt / Ctrl modifiers, after processing of shortcuts. 2022-04-05 13:46:45 +03:00
deb1342036 Make TabBar/Container default their alignments to the left instead of center 2022-03-17 18:12:23 -03:00
7bdca99d51 Improve inspector filtering 2022-03-18 01:16:25 +08:00
851ed8886c Fix Autoload capitalization inconsistency 2022-03-09 15:03:03 +08:00
917dac78e7 Replace some bits of code left to work with the new TabContainer 2022-03-04 19:16:33 -03:00
a811ebf699 Make TabContainer use TabBar internally 2022-03-03 21:49:58 -03:00
6553f5c242 Convert _notification methods to switch - Chunk C 2022-02-16 13:03:05 -05:00
fc076ece3d Revert "Add missing SNAME macro optimization to all theme methods call"
This reverts commit a988fad9a0.

As discussed in #57725 and clarified in #57788, `SNAME` is not meant to be used
everywhere but only in critical code paths. For theme methods specifically, it
was by design that only getters use `SNAME` and not setters.
2022-02-08 10:17:25 +01:00
a988fad9a0 Add missing SNAME macro optimization to all theme methods call 2022-02-06 23:06:11 +01:00
f8f19b313d Merge pull request #57562 from AnilBK/string-add-contains
String: Add contains().
2022-02-03 22:21:24 +01:00
025e778020 Merge pull request #57175 from fire-forge/add-type-icons
Add type icons to Project Settings, Array, and Dictionary editors
2022-02-03 22:17:25 +01:00
adbe948bda String: Add contains(). 2022-02-04 01:28:02 +05:45
d5d05386a6 Add type icons to Project Settings, Array, and Dictionary editors 2022-02-03 13:02:18 -06:00
2f1e7c28a4 Minor fixes/refactoring of project and editor setting dialogs 2022-02-01 00:19:01 +01:00
02e6745271 Merge pull request #56832 from Chaosus/fix_theming 2022-01-16 16:02:22 +03:00
5003d4351e Fix theming update in several editor classes 2022-01-16 14:49:03 +03:00
40be15920f Remove support for PVRTC texture encoding and decoding
On the only platform where PVRTC is supported (iOS),
ETC2 generally supersedes PVRTC in every possible way. The increased
memory usage is not really a problem thanks to modern iOS' devices
processing power being higher than its Android counterparts.
2022-01-14 21:08:22 +01:00
5737e7dd2d Check if action name exists before adding it or renaming an action to it 2022-01-12 15:19:18 +00:00
fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
49403cbfa0 Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
41a20171eb align to horizontal_alignment, valign to vertical_alignment, related 2021-12-09 01:38:46 -06:00
2daaf0fdc3 Make platform feature tag names lowercase
Feature tag names are still case-sensitive, but this makes built-in
feature tags more consistent.

- `Windows` -> `windows`
- `OSX` -> `osx`
- `LinuxBSD` -> `linuxbsd`
- `Android` -> `android`
- `iOS` -> `ios`
- `HTML5` -> `html5`
- `JavaScript` -> `javascript`
- `UWP` -> `uwp`
2021-08-31 20:34:44 +02:00
ac3322b0af Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
4e6efd1b07 Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
6631f66c2a Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.

This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
24a2b4dc97 Improve Project Settings Editor
Closes godotengine/godot-proposals#1545.
Closes godotengine/godot-proposals#2452.
2021-05-14 13:58:43 +03:00
c316a515ed Improve ActionMapEditor
- CheckBox replaced with CheckButton.
- Removed unnecessary code.
2021-05-05 23:33:24 +03:00
f8f12d0564 ProjectSettingsEditor: Make "Type" OptionButton item ids match corresponding Variant::Type enum values. 2021-04-20 18:50:36 +02:00
59e1c007a7 Save ProjectSettings on editor restart 2021-02-26 13:33:08 +01:00
4837766292 Fix capitalization of checkbox in Input Map Editor 2021-02-24 16:20:39 -03:00
b6fce5d750 Added Import Defaults Editor in Project Settings
-Change importer defaults in project settings.
-Ability to change them or reset them.
2021-02-23 14:18:02 -03:00
3db45ff198 New ActionMapEditor to replace InputMapEditor. Used in ProjectSettings.
Renamed to ActionMapEditor as it is more generic and can be used for more than just the InputMapEditor if required.
This also includes a new Event Configuration dialog (previously "Press A key...") which can be used to create and edit InputEvents for any use - like the Project Settings input map, or the Editor Settings shortcuts.
2021-02-19 19:36:42 +10:00
64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
288540a690 Fix editor always redrawing
-Only update rendering settings when project settings change
-Fixes the update spinner (and editor rendering) updating all the time.
-Added a "project_settings_changed" signal to EditorNode and EditorPlugin
2021-02-13 14:57:28 -03:00
7b84f4fc31 Don't allow adding Objects to the project settings
Godot doesn't support serializing objects.

This closes #33667.
2021-01-10 14:13:20 +01:00
b5334d14f7 Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
8509c8c8fc Rename AcceptDialog get_ok() to get_ok_button()
Also renames:
- AcceptDialog add_cancel() to add_cancel_button()
- ConfirmationDiaglog get_cancel() to get_cancel_button()
2020-12-14 18:43:52 +00:00
221a2a1742 Refactored variant constructor logic 2020-11-09 08:54:43 -03:00
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
626d9d5ae4 Add placeholders to the searchbars in the Project/Editor settings 2020-08-28 18:39:19 -03:00
8f54e8bfb5 Fixed issues with adding custom project settings and added confirmation dialog when deleting settings. 2020-08-18 09:12:02 +10:00
3e8f3049f4 Fix and tweak the new header in "Project Settings" 2020-08-14 12:14:23 -03:00