Commit Graph

591 Commits

Author SHA1 Message Date
bruvzg 520a8d8ed2
Add project manager / editor initial screen settings, implement DisplayServer.get_keyboard_focus_screen method. 2023-04-19 08:54:53 +03:00
bruvzg a5009f4d3c
[Web] Detect host OS and use macOS keys on mac hosts. 2023-04-11 10:58:54 +03:00
Hugo Locurcio f575ca09ae
Add property hints for debugger/profiler editor settings
This also adds descriptions for those settings.
2023-03-22 01:07:31 +01:00
Rémi Verschelde d76c1c4f45
Merge pull request #73651 from hakro/editor-freelook-physical-shortcuts
Use physical shortcuts for freelook navigation in the editor
2023-03-03 11:02:53 +01:00
Rémi Verschelde 02583ddde8
Merge pull request #72460 from Calinou/project-manager-disable-incompatible-rendering-methods
Disable incompatible rendering methods in the project manager
2023-02-22 22:47:07 +01:00
Hugo Locurcio 8ebc5b2875
Disable incompatible rendering methods in the project manager
The project manager can now only create projects that use a rendering
method compatible with the current platform. Rendering methods that
are disabled at build-time are also grayed out (only for OpenGL).

While it is possible in theory to create a project using Forward+
on web (thanks to the automatic fallback),
it will look different once edited on a desktop platform.
2023-02-22 19:57:17 +01:00
Fredia Huya-Kouadio 445053a62d Enable granular control of touchscreen related settings 2023-02-22 00:16:39 -08:00
Hakim 52de40310a Use physical shortcuts for freelook navigation in the editor 2023-02-21 10:56:14 +01:00
bruvzg 64ba999eb1
Fix shortcut reset. 2023-02-21 08:08:53 +02:00
bruvzg b3c64675cc
[macOS] Replace all `Alt/Option+Letter/Number` default shortcuts to avoid conflicts with special character input. 2023-02-20 22:02:47 +02:00
Yuri Sizov 28db611f0f
Merge pull request #71792 from EricEzaM/66428-changing-the-play-shortcut-gets-overwritten-every-restart
Fix shortcuts which have feature override defined reverting to default when user changes the shortcut to be same as non-overridden.
2023-02-17 20:31:52 +03:00
Haoyu Qiu 0edd46e3fc Fix editor language dropdown incomplete in some locales 2023-02-15 08:59:11 +08:00
Yuri Sizov dd6ac955c3 Increase default font sizes for EditorHelp 2023-02-11 20:09:57 +01:00
Haoyu Qiu 5d7e003b29
Prepare for moving editor and classref translations to godot-editor-l10n repo
- Separate editor interface and property translations.
- Add property translation in TranslationServer.
- The split and merge of the POT/PO/Makefiles and extract scripts is done
  directly in godot-editor-l10n, the files will be removed in the next commit.
- Remove the hardcoded "to_include" lists from the SCsub, we'll only commit the
  files which are ready to inclue.
2023-02-07 14:20:40 +01:00
Fredia Huya-Kouadio 63c88df3f7 Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices 2023-01-28 00:21:05 -08:00
kobewi 65d729e22e Add file hint to external program paths 2023-01-26 13:43:04 +01:00
kobewi 60ed7c5004 Add "Open in External Program" option 2023-01-21 18:33:32 +01:00
Eric M 9da04d8374 Fix shortcuts which have feature override defined reverting to default when user changes the shortcut to be same as non-overriden. 2023-01-21 16:40:03 +10:00
bruvzg 2718a7b7d3
Add support for the custom initial screen for the main window, fix primary screen detection. 2023-01-07 11:14:35 +02:00
Rémi Verschelde 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
clayjohn 324f5364e7 Added gl_compatibility as an option to the project creation screen
Last selected option is saved as default for next time
2022-12-13 14:11:07 -08:00
Rémi Verschelde 2fadc1299d
Merge pull request #67871 from Calinou/editor-theme-add-oled-preset
Add Black (OLED) editor theme preset
2022-11-28 08:46:12 +01:00
Hugo Locurcio 11842eb738
Disable code font ligatures by default in the editor 2022-11-12 22:38:04 +01:00
Hugo Locurcio a19e389f4f
Hide Antialiasing import option on DynamicFonts with MSDF enabled
Antialiasing cannot be adjusted on fonts rendered with MSDF.
Internally, Godot always uses grayscale antialiasing for those fonts.

This also tweaks property hints for consistency, and renames
uses of "sub-pixel" to the more commonly used "subpixel".
2022-11-03 18:40:44 +01:00
Rémi Verschelde f7c611ab71
Style: Misc docs and comment style and language fixes
- Removed empty paragraphs in XML.
- Consistently use bold style for "Example:", on a new line.
- Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`).
- Fix invalid usage of backticks for inline code in BBCode.
- Fix some American/British English spelling inconsistencies.
- Other minor fixes spotted along the way, including typo fixes with codespell.
- Don't specify `@GlobalScope` for `enum` and `constant`.
2022-11-02 19:01:18 +01:00
VolTer e0e236edfc Remove editor setting for hiding bookmarks 2022-11-02 01:14:02 +01:00
Rémi Verschelde 5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
kobewi c7eb814ede Remove override_selected_font_color property 2022-10-26 12:59:18 +02:00
Hugo Locurcio f613db0db9
Add Black (OLED) editor theme preset
This preset uses a fully black background to reduce power usage on OLED
displays, leading to increased battery life on laptops with OLED displays.

This preset is also useful for late night sessions, as OLED displays
have a near-infinite contrast ratio.

This also adds a Draw Extra Borders editor setting which draws borders
around some interactive nodes. This setting is required for good
usability of a theme with a fully black background.

Visibility of disabled text (including unselected tab names) has been
slightly increased for better accessibility, regardless of the editor
theme preset in use.
2022-10-26 01:23:53 +02:00
kobewi e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
Rémi Verschelde 3a2e749a10 Merge pull request #59382 from akien-mga/editor-acceptdialog-swap-cancel-ok
Add editor setting for AcceptDialog OK/Cancel buttons positioning
2022-10-11 12:34:04 +02:00
bruvzg 0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
Rémi Verschelde 9bb05de89f Add editor setting for AcceptDialog OK/Cancel buttons positioning
The position (left/right) of the Cancel and OK buttons in AcceptDialog
are DisplayServer specific, as Windows uses OK/Cancel and macOS uses Cancel/OK.

Linux/X11 currently uses the macOS convention which is also the GTK+/GNOME one,
though it's not consistent with Qt/KDE applications which follow the Windows
convention.

Since that can't satisfy everyone, it's best if it's configurable also for the
editor (it's already configurable for the project).

Fixes #59379.
2022-10-05 17:51:04 +02:00
Rémi Verschelde 69233093d7 Merge pull request #65241 from bruvzg/no_keymap_ambiguity
Fix key mapping changes when moving from macOS to other platform.
2022-09-08 09:24:24 +02:00
Fabio Alessandrelli a95d792420 [Net] Rename "ssl" references to "tls" in methods and members. 2022-09-08 03:24:23 +02:00
bruvzg 6f4d233062
Fix key mapping changes when moving from macOS to other platform
Removes separate `Command` key (use `Meta` instead).
Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-09-07 18:45:35 +02:00
Micky 6dbd283ae5 Rename every instance of `caret_blink_speed` to `caret_blink_interval`
It's been changed in EditorSettings, LineEdit, TextEdit.

Affects setters and getters, and passed parameters, too.
2022-09-06 18:37:17 +02:00
kobewi 7adc8376ed Change Array arguments to TypedArray 2022-09-01 13:13:19 +02:00
Aaron Franke 10a56981dc
Rename String `plus_file` to `path_join` 2022-08-29 19:38:13 -05:00
bruvzg da808d4fd3
Fix editor shortcuts overrides overwriting user configured shortcuts. 2022-08-27 20:25:13 +03:00
bruvzg bc4ba6cb78
[macOS] Extend editor contents to the window titlebar for better space usage. 2022-08-26 15:12:43 +03:00
Rémi Verschelde 7013c68619
Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0 2022-08-26 11:59:07 +02:00
bruvzg bcc3643989
Add font LCD sub-pixel anti-aliasing support. 2022-08-23 08:47:21 +03:00
kobewi 8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
Yuri Sizov 7895a66cf2
Merge pull request #64334 from YuriSizov/core-bind-property-revert-methods
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-19 20:41:41 +03:00
bruvzg 8c56a7416b
Implement `MenuBar` control to wrap `PopupMenu`s or native menu, use native menu for editor. 2022-08-18 22:25:44 +03:00
Yuri Sizov 980f5f32f4 Make `property_*_revert` methods multilevel and expose them for scripting 2022-08-18 00:03:53 +03:00
Hugo Locurcio ecefb5505a
Rename visual shader editor setting category for proper capitalization 2022-08-03 11:38:29 +02:00
Sean Kim f1ba63e092 Fix EditorSettings crashes due to nullptr dereference
Fixes #45979

Noted a few places in this file that would have similar errors, so any
access to the EditorSettings singleton has had a check added.
2022-07-31 13:01:38 +02:00
kobewi c3606cb5f3 Swap arguments of ResourceSaver.save() 2022-07-29 19:53:09 +02:00
Aaron Franke ac870ab1c8
Move editor paths into the EditorPaths class 2022-07-29 11:07:30 -05:00
Alfred R. Baudisch c4433c3793 When selecting Nodes in the Scene Tree, if the current EditorPlugin is "Script" and if text_editor/behavior/navigation/stay_in_script_editor_on_node_selected is true, force inspector_only in order to not switch the EditorPlugin to the Node's main plugin. 2022-07-25 17:37:03 +02:00
Aaron Franke b00bb577e7
Rename directory for export templates from templates to export_templates 2022-07-22 12:35:43 -05:00
bruvzg 8823eae328
Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
bruvzg 344ba0ffaf
Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
MinusKube 336400dc42 Add the ability to drag the code completion scrollbar using the mouse click 2022-07-03 23:47:52 +02:00
ConteZero 5d56efcaa4 Add an option to drag'n'drop selected text in TextEdit 2022-06-26 15:22:02 +02:00
Rémi Verschelde c8ce7e34e2 i18n: Misc fixes translation strings
Adds some translator comments to solve some questions raised on Weblate.
2022-06-08 12:57:54 +02:00
Fabio Alessandrelli f805ecf4e7
Merge pull request #61481 from Calinou/profiler-increase-frame-history
Increase the editor profiler frame history default and maximum limit
2022-06-03 12:46:56 +02:00
Hendrik Brucker 70c234f3e3 Improve Graphedit connection lines 2022-05-30 17:33:01 +02:00
Hugo Locurcio 6c12502076
Increase the editor profiler frame history default and maximum limit
The new default value (1800) allows storing 30 seconds of profiling
at 60 FPS.

The new maximum value (10000) allows storing about 3 minutes of
profiling at 60 FPS.

The profiler graph will scale accordingly to the chosen setting,
so the default value is kept relatively low to prevent the graph
from looking too squished on narrow displays.
2022-05-28 01:03:32 +02:00
Hugo Locurcio 97f41379b1
Increase saturation of accent color on the Gray editor theme preset
This also renames the Gray editor theme preset to use US spelling.
2022-05-23 10:01:43 +02:00
Aaron Franke 5dc3bfb80e
Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
Rémi Verschelde df2de05c5f
Merge pull request #60463 from Geometror/improve-vs-1 2022-05-16 13:50:42 +02:00
reduz 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
reduz 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
Hendrik Brucker 6d876baf60 Improve the VisualShader/VisualScript editor UI 2022-04-30 03:56:57 +02:00
bruvzg defcd0c57e
Avoid setting sub-window or started project window positions, if it's impossible to get screen rect. 2022-04-20 11:10:33 +03:00
Rémi Verschelde 776c6bf6fb
Merge pull request #54740 from LightningAA/project-manager-sort-by-most-recent-as-default 2022-04-12 21:05:15 +02:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
Rémi Verschelde 53317bbe14
Merge pull request #59866 from m4gr3d/update_default_display_scale_main 2022-04-04 19:31:37 +02:00
Fredia Huya-Kouadio 8eabf77f54 Update the editor display scale based on the device's scaled density 2022-04-04 09:23:43 -07:00
jmb462 0d17903bd5 Fix TextEdit v_scroll_speed invalid values breaks wheel scrolling 2022-04-03 21:07:39 +02:00
Haoyu Qiu a33ec7d8a7 Mark Editor SSL Certificates setting as require restart 2022-03-27 09:47:00 +08:00
bruvzg 78051f93a3
Convert the editor and default theme fonts to WOFF2 format to save space. 2022-03-25 11:45:55 +02:00
Rémi Verschelde 49176bc0fc
Merge pull request #59373 from bruvzg/fix_editor_font_change
[Editor] Fix reloading editor theme on font / font size setting change.
2022-03-21 08:34:09 +01:00
Rémi Verschelde d77d85d23e
Merge pull request #59367 from Calinou/script-editor-decrease-line-spacing
Decrease the default line spacing in the script editor
2022-03-21 08:16:51 +01:00
Rémi Verschelde fbd94dbe88
Merge pull request #59366 from Calinou/editor-pseudolocalization-move-setting
Move the pseudolocalization editor setting to a debug section
2022-03-21 08:13:42 +01:00
bruvzg f80148e3d1
[Editor] Fix reloading editor theme on font / font size setting change. 2022-03-21 08:20:09 +02:00
Hugo Locurcio 6d4514c95e
Decrease the default line spacing in the script editor
This brings the level of line spacing closer to what it was like
in Godot 3.x, which improves usability on small displays.

This also decreases the default line spacing for fixed-width texts
in the About dialog (license text).
2022-03-21 02:00:58 +01:00
Hugo Locurcio 3137487935
Move the pseudolocalization editor setting to a debug section
This moves the setting in question to the bottom of the Editor Settings,
which makes it less likely to be accidentally enabled.
2022-03-21 01:53:30 +01:00
Tais P. Hansen 394f04a2b4
Fix getaddrinfo failed with undefined proxy config
HTTPClientTCP expects proxy host to be empty or port to be -1 to ignore
the proxy. When getting the proxy config from the settings file, the
values will default to U"null" and 0, respectively, making HTTPClientTCP
to attempt to use the values as a proxy, which causes getaddrinfo to
fail looking up a "null" hostname.

Setting the default config values seems like a good approach to prevent
this issue.

Fixes #59037
2022-03-20 17:17:11 +01:00
kobewi c53a84fdfd Improve scene tab close button options 2022-03-13 02:14:32 +01:00
Aaron Franke 918b09cabc
Initialize bools in the headers in editor 2022-03-12 13:34:06 -06:00
Rémi Verschelde 768f9422bc Convert uses of `DirAccess *` to `DirAccessRef` to prevent memleaks
`DirAccess *` needs to be deleted manually, and this is often forgotten
especially when doing early returns with `ERR_FAIL_COND`.
`DirAccessRef` is deleted automatically when it goes out of scope.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-03-11 09:13:11 +01:00
Michael Alexsander 182e038af5 Replace `TabBar`'s `min_width` with `max_tab_width` and expose it 2022-03-09 01:48:18 -03:00
kobewi 2057ea2883 Remove duplicate editor settings definitions 2022-03-06 22:05:49 +01:00
Eric M a0ef294ba5 Added ability to retrieve array of changed settings changed when it is saved. 2022-03-05 19:26:40 +10:00
Rémi Verschelde 11572c6e30
Editor: Cleanup some includes dependencies
Removes some unnecessary includes from `editor_node.h`, and instead add
those where they're used.

Removes unnecessary `editor_node.h` includes in various editor classes.

Renames `dynamicfont` to `dynamic_font` in a couple files.

Misc cleanup while jumping through that rabbit hole.
2022-02-15 14:54:15 +01:00
Rémi Verschelde 760a95e86a
Merge pull request #57877 from bruvzg/subpixel_gl_pos 2022-02-15 13:58:38 +01:00
Hugo Locurcio 15244e55bd
Improve completion scroll bar visibility in the script editor
This makes the scroll bar bar thicker and more opaque (roughly
matching the editor theme's scroll bar by default).
2022-02-14 16:49:08 +01:00
bruvzg 29199579f7
Add sub-pixel glyph positioning support. 2022-02-12 19:55:52 +02:00
Hendrik Brucker 77fb65debf Use EditorFileDialog instead of FileDialog in the project manager 2022-02-12 12:06:51 +01:00
Anilforextra fc27636999 Vectors: Use clear() and has().
Use clear() instead of resize(0).

Use has() instead of "find(p_val) != -1".
2022-02-02 00:11:09 +05:45
bruvzg 9456454109
Fix translation with multiple sources for the same language.
Remove unnecessary locale length checks.
Add "C" -> "en" locale remap.
2022-01-24 18:58:16 +02:00
kobewi 98692d68c3 Minor tweaks and fixes to panning 2022-01-23 13:49:53 +01:00
kobewi 74bfe88267 Add ViewPanner to 2D editor 2022-01-21 18:35:06 +01:00
bruvzg de48d5101b
Fix locale always selecting translation instead of "en", when no match found. 2022-01-19 16:46:48 +02:00