Commit Graph

419 Commits

Author SHA1 Message Date
TechnoPorg 051ef479c9 Allow method binds to take Object subclasses as arguments
This commit adds a condition to VariantCaster that casts Variants of type OBJECT to any type T, if T is derived from Object.
This change enables a fair bit of code cleanup. First, the Variant implicit cast operators for Node and Control can be removed, which allows for some invalid includes to be removed. Second, helper methods in Tree whose sole purpose was to cast arguments to TreeItem * are no longer necessary.
A few small changes also had to be made to other files, due to the changes cascading down all the includes.
2022-01-25 09:03:36 -07:00
Rémi Verschelde eacde082a5
Merge pull request #53276 from Phischermen/propagate_check 2022-01-20 16:37:16 +01:00
Kevin Fischer a4bac268c9 Addded methods to propagate checks & refactored classes to use new methods. 2022-01-18 19:21:59 -08:00
Rémi Verschelde 46624388d4
Merge pull request #56322 from madmiraal/fix-42450 2022-01-11 11:33:59 +01:00
Rémi Verschelde 319c442771
Merge pull request #55791 from kleonc/tree-dont-consume-mouse-if-collapser-not-visible 2022-01-05 10:56:50 +01:00
Rémi Verschelde 0719deea8a
Merge pull request #56346 from pycbouh/control-treenteger 2022-01-05 10:47:05 +01:00
Rémi Verschelde 89f070065b
Merge pull request #56408 from eazrael/tree-fix-selectionmode-row
Tree: Fix de-select when selection mode set to SELECT_ROW
2022-01-05 09:22:00 +01:00
Rémi Verschelde fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Christoph Nelles 185724e5e9 Tree: Fix de-select when selection mode set to SELECT_ROW
It no longer de-selects an already selected row if the SELECT_MODE is
set to SELECT_ROW.

Update scene/gui/tree.cpp

Co-authored-by: Michael Alexsander <michaelalexsander@protonmail.com>
2022-01-02 00:36:30 +00:00
Yuri Sizov f1bc5c976a Fix an incorrect exposed property type in Tree 2021-12-30 20:04:14 +03:00
Marcel Admiraal 3105d9b1f3 Rename speed to velocity when it's a directional Vector 2021-12-29 15:35:26 +00:00
kleonc 67dd4f15ee Tree Don't consume mouse event by collapse arrow which isn't shown 2021-12-10 16:54:47 +01:00
Nathan Franke 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
Nathan Franke 41a20171eb
align to horizontal_alignment, valign to vertical_alignment, related 2021-12-09 01:38:46 -06:00
Rémi Verschelde 75ac048e4b
Merge pull request #55662 from KoBeWi/update_minimum_size_changed_to_update_minimum_size 2021-12-06 18:28:46 +01:00
jmb462 81efebb3a1
Fix bad popups offset in editor with single window off
Co-authored-by: Gil Arasa Verge <gilarasaverge@gmail.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2021-12-06 14:29:48 +01:00
kobewi ea7cc1dea9 Rename minimum_size_changed() method 2021-12-06 14:02:34 +01:00
kobewi 7f6ab0006d Bind column_titles_visible as property 2021-12-05 02:55:38 +01:00
Lightning_A e078f970db Rename `remove()` to `remove_at()` when removing by index 2021-11-23 18:58:57 -07:00
Hugo Locurcio 8fb7e622a6
Rename built-in `SGN()` macro to `SIGN()`
This matches the name of the GDScript function (except it's uppercase
here).
2021-11-16 20:40:49 +01:00
Aaron Franke 3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
bruvzg ebbc25e89c Ignore empty Font resources as theme override.
Add range hint to font_size properties.
Remove excessive `base_size` Font property.
2021-10-25 14:05:37 +03:00
Robin Arys 5c25497aa2 Fix possible crash when calling Tree.notification from _ready 2021-10-23 12:02:09 +02:00
Yuri Sizov bdbb7b3999 Remove EDSCALE dependency from /scene/gui 2021-10-04 15:25:08 +03:00
jmb462 7fabbe2760 Fix tree title column size minimum width 2021-09-28 14:54:48 +02:00
floppyhammer 53efc55409 Fix minimum size of TreeItem 2021-09-26 17:02:54 +08:00
Rémi Verschelde 9293c76636
Merge pull request #53049 from AnilBK/dont-construct-2 2021-09-25 12:26:08 +02:00
Anilforextra cdd912c48e Construct values only when necessary. 2021-09-25 14:46:45 +05:45
Yuri Sizov 873443756d Correctly calculate position of the folding arrow in Tree 2021-09-25 02:01:14 +03:00
Rémi Verschelde 0a8e137c61
Merge pull request #52313 from groud/cache_tree_item_size 2021-09-15 13:21:56 +02:00
Tomasz Chabora e1cc70309c Fix error when click edge of the tree icon 2021-09-13 18:03:03 +02:00
Gilles Roudière ace19bd4c6 Cache TreeItem minimum size for performance. 2021-09-01 16:26:41 +02:00
kobewi a913ae8d56 Add support for internal nodes 2021-08-28 02:07:23 +02:00
Max Hilbrunner 701195937d
Merge pull request #52096 from kleonc/tree-item-drag-drop-drawing
Tree Fix line rendering when drag and dropping TreeItem
2021-08-27 20:55:37 +02:00
bruvzg 4c3f7d1290 Makes FontData importable resource.
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
kleonc d35ef5fab0 Tree Fix line rendering when drag and dropping TreeItem 2021-08-25 13:29:54 +02:00
reduz 5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions.
* Everything else converted to GDVIRTUAL
* BIND_VMETHOD is gone, always use the new syntax from now on.

Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-23 08:10:13 -03:00
Kevin Fischer 75866c81e7 Added icons and API for indeterminate checkmarks for the Tree class. 2021-08-16 10:13:06 -07:00
reduz 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
Rémi Verschelde 3adb129a54
Merge pull request #50135 from KoBeWi/🌲.update()
Update Tree when modified
2021-07-13 09:03:40 +02:00
Hugo Locurcio ce941397e5
Merge pull request #49890 from voxelv/fix_tree_range_click_timeout_crash_46648
Avoid using a nullptr root in Tree._range_click_timeout().
2021-07-07 01:21:32 +02:00
reduz f4379cbc82 Clean up Tree
Fixes some problems introduced by #49917

* Tree used minimum size as a stretch ratio, so it forced a minimum size of 1.
* Minimum size redone, stretch ratio moved to a separate setting
* Fitting to contents was enforced, this is more intuitive, but in many situations this is undesired.
* Added a clip content option for situations where fit to contents does not apply.
* Icon would scroll with the item, making it invislbe if the item is too long.
* Made icon always appear to the right (or left if RTL is enabled) of the visible item space.
2021-07-04 13:13:53 -03:00
kobewi 9569729888 Update Tree when modified 2021-07-04 15:28:39 +02:00
voxelv f17f3f8830 Avoid using a nullptr root in Tree._range_click_timeout().
Fixes #46648
2021-06-30 00:27:44 -07:00
Gilles Roudière c5b65236d8 Fixes crash in case no column in tree is expanded and has minimum size 2021-06-29 11:27:09 +02:00
Gilles Roudière d7d32ced5b Implement Tree's internal minimum width calculation 2021-06-28 15:54:31 +02:00
Gilles Roudière b2dddc3c82 Allow disabling scrolling in Tree 2021-06-25 21:19:46 +02:00
Yuri Sizov 483f8ffbe4 Make relationship lines draw on top of TreeItems 2021-06-21 16:46:43 +03:00
Aaron Franke 0ce49800ac
Use mouse and joypad enums instead of plain integers
Also MIDIMessage
2021-06-20 11:54:24 -04:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Gregory Basile 8ab13f8ace Documentation search fixes
Updates rich_text_label so that the built-in documentation can be searched
Previously, it would only find the first result and would not select other results
Renames "_entered" functions to "_submitted"
2021-06-16 09:43:34 -07:00
reduz d95bc3fa67 Use bold fonts in editor
* Labels are now bold
* Categories in trees are bold
* Main editor buttons are bold
* Fixed section folding arrows in inspector
2021-06-02 12:47:57 -03:00
floppyhammer d202cf6899 fix-tree-item-dragging 2021-06-01 20:46:17 +08:00
Yuri Sizov 231daa6025 Fix disappearing relationship lines in Tree when item is out of view 2021-05-26 00:44:04 +03:00
Yuri Sizov 9c92e9d849 Add highlight to the relationship lines of selected Tree items 2021-05-25 18:56:06 +03:00
Hugo Locurcio 87f503310b
Tweak dozens of editor property hints for consistency
- Update Viewport MSAA property hints to match the currently
  exposed values.
- Add some performance hints to property hints.
2021-05-25 02:50:35 +02:00
trollodel bca0d36fe6 Improve TreeItem API and allow to move nodes 2021-05-17 22:06:46 +02:00
Rémi Verschelde 6c367f8e0d
Merge pull request #48168 from LightningAA/control-to-ctrl-4.0 2021-05-17 17:38:02 +02:00
Haoyu Qiu c8efcf81d2 Fix Tree::get_column_at_position crash 2021-05-16 19:42:28 +08:00
Hugo Locurcio 63897f16b1
Fix Tree's background focus outline displaying behind section headings 2021-05-09 13:27:20 +02:00
Lightning_A 97fecd1b69 Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
Rémi Verschelde 6e621441ca
Merge pull request #45607 from Calinou/improve-editor-theme
Improve the editor theme
2021-05-06 16:45:07 +02:00
Rémi Verschelde 605e33cf39
Merge pull request #44831 from gongpha/dont-update-tree-if-selected
Blocking updating in SceneTreeEditor when an item was selected
2021-05-06 08:45:41 +02:00
Rémi Verschelde 4e7ca279fc
Merge pull request #47855 from aaronfranke/doubleclick
Rename `doubleclick` to `double_click`
2021-05-04 13:12:17 +02:00
Aaron Franke 0de9a7d803
Rename `doubleclick` to `double_click` 2021-05-04 04:38:08 -04:00
Tomasz Chabora 2035992a07 Calculate __focus_rect when TreeItem is focused 2021-04-28 18:09:19 +02:00
Hugo Locurcio 60b70c77e0
Improve the editor theme
The editor theme now makes use of rounded corners and less borders
to follow modern visual trends.

The default theme's colors were also tweaked to make the blue hue
more subtle (similar to the Arc theme, which was removed as a
consequence). The Alien theme was replaced by a Breeze Dark theme,
which should blend in well with the KDE theme.
2021-04-27 22:38:26 +02:00
Rafał Mikrut 504bc5cc67 Fix crashes in *_input functions 2021-04-05 08:52:21 +02:00
Aaron Franke 10d7fccb54
Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
Juan Linietsky 97a3a66220 Improved 3D Scene Importer
* Added option for importers to show an Advanced settings dialog
* Created advanced settings dialog for Scene Importer
* Cleaned up importers (remove many old/unused options)
* Added the ability to customize every node, material, mesh and animation individually
* Saving to animations and meshes to files is now a manual process, making it more predictable
* Added the ability for materials to be replaced by external files (or to be made external, up to you).
* When doubleclicking an impoted scene in the filesystem dock, it automatically shows the import settings instead of asking to open it.

WARNING: Lightmap UV unwrap is not working, it needs to be re-made.
2021-03-22 12:16:40 -03:00
Justin Ho fa6fd3a2d0
Check for null pointer in get_column_width(0) 2021-03-18 10:25:55 -07:00
kobewi 5cd5722f6a Deselect column only if belongs to deselected item 2021-03-03 19:39:29 +01:00
Rémi Verschelde cb29e6c49c
Merge pull request #45994 from Jummit/expose-edit-selected
Expose edit_selected in Tree
2021-02-22 16:29:03 +01:00
Jummit 13fb24cb6f expose edit_selected in Tree 2021-02-22 15:50:21 +01:00
kobewi 282639d653 Select TreeItem if none is selected 2021-02-16 01:36:16 +01:00
bruvzg d78336c65e
[CTL] Add missing font outline drawing routines and theme constants. 2021-02-14 14:11:44 +02:00
Rafał Mikrut 7961a1dea3 Initialize class variables with default values in scene/ [2/2] 2021-02-09 18:24:36 +01:00
Rémi Verschelde df9c98e107
Merge pull request #45812 from RandomShaper/keep_selected_visible
Keep selected node visible after filter change
2021-02-09 10:43:21 +01:00
Pedro J. Estébanez 177b804f30 Expose Tree::scroll_to_item() 2021-02-08 02:19:13 +01:00
kobewi ef8ec59f2f Set selected Tree item to null when deselected
Co-authored-by: Brody Eller <wviper3@gmail.com>
2021-02-07 22:12:52 +01:00
Marcel Admiraal 8eb39f4e8b Change themes *_color_* to *_*_color
Changed:
font_color_accel -> font_accelerator_color
font_color_bg -> font_unselected_color
font_color_disabled -> font_disabled_color
font_color_fg -> font_selected_color
font_color_hover -> font_hover_color
font_color_hover_pressed -> font_hover_pressed_color
font_color_pressed -> font_pressed_color
font_color_readonly -> font_readonly_color
font_color_selected -> font_selected_color
font_color_shadow -> font_shadow_color
font_color_uneditable -> font_uneditable_color
icon_color_disabled -> icon_disabled_color
icon_color_hover -> icon_hover_color
icon_color_hover_pressed -> icon_hover_pressed_color
icon_color_normal -> icon_normal_color
icon_color_pressed -> icon_pressed_color

Also includes:
font_outline_modulate -> font_outline_color
tab_fg -> tab_selected
tab_bg -> tab_unselected
2021-01-24 06:28:49 +00:00
gongpha bb867d41ee Blocking updating in SceneTreeEditor when editing an item 2021-01-06 14:46:48 +07:00
Rémi Verschelde 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
Marcel Admiraal b743a2ef3c Rename Math::stepify to snapped 2020-12-28 13:01:30 +00:00
Marcel Admiraal 5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Marcel Admiraal 4b8b803931 Rename Control margin to offset 2020-12-23 06:25:56 +00:00
Tomasz Chabora 2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
bruvzg 99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
Aaron Franke 02161aad5a
Remove empty lines around braces with the formatting script 2020-11-16 23:38:11 -05:00
reduz 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
volzhs cac4fedb2a Respect Tree.set_icon_max_width size for drawing selection box 2020-10-13 10:38:32 +09:00
Duroxxigar 4834e14493 Updated getters and setters names for toplevel 2020-10-02 19:09:01 -04:00
Dashcell 1ac936f035 Dropping file on parrent dirrectory fixed 2020-09-16 14:53:22 -03:00
Marcel Admiraal 79802b31a9 Check if old mouse column is still available. 2020-09-08 10:24:57 +01:00
Aaron Franke 56e2c6c704
Make all String float conversion methods be 64-bit 2020-07-27 18:38:53 -04:00
Tomasz Chabora c0479496fa Prevent infinite loop in Tree incremental search 2020-07-20 13:22:00 +02:00
Haoyu Qiu 45d0799b5b Prevent dragging from SceneTree buttons 2020-07-02 15:27:59 +08:00
Juan Linietsky 058166fb6c Fix doubleclick on tree item, restore input focus on previous windows.
Closes #37335
2020-07-01 12:46:39 -03:00
Michael Alexsander 144a4cc39f Fix Tree's 'scroll_to_item()' not working correctly on some cases 2020-06-30 18:22:26 -03:00
Giuliano Barberi d443a13244 Tree: Calling update in _gui_input less frequently 2020-06-06 17:02:22 -04:00