Commit graph

198 commits

Author SHA1 Message Date
Hein-Pieter van Braam
0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Rémi Verschelde
13239cd4cc Export: Properly reload preset when opening dialog
Fixes #20119 where newly installed templates were not detected.

Also fix a bug with preset deletion where it would attempt to
edit an already removed preset. For this I made it so that
ItemList::deselect_all() also resets `current` to -1, as a manual
ItemList::deselect(idx) already does.
2018-07-18 13:49:34 +02:00
Guilherme Felipe
b2e78e117c Fix performance for godot's interface 2018-07-01 09:48:03 -03:00
Rémi Verschelde
9dbfe5dc61
Merge pull request #17578 from endragor/ft-outlines
Perfect FreeType-based outlines for DynamicFonts
2018-05-08 15:37:00 +02:00
Juan Linietsky
47db64ac00
Merge pull request #15258 from RyanStein/bugfix-15241
Use exact positioning for the ItemList::get_tooltip method.
2018-05-08 10:36:22 -03:00
Ruslan Mustakov
5cd12f6649 Perfect FreeType-based outlines for DynamicFonts
- Implement outlines based on FreeType Stroker API. This allows
  artifact-free results, similar to what you will see in Web or any text
  editing tools. Outline is a part of DynamicFont rather than Label,
  because outlines have to be baked into the font's atlas. Font has a
  default outline_color and a Label can specify font_outline_modulator
  that will be multiplied with the Font's color to get the final result.

- draw_char now has to be called twice to fully render a text - first
  with p_outline == true for each character and then with
  p_outline == false for each character.

- Number of draw-calls is reduced from 5 to 2 per outlined character.

- Overall cleanup of DynamicFont code, extracted duplicated code pieces
  into separate methods.

- The change is backward-compatible - Labels still have outline
  properties that work exactly as they worked before.

Closes #16279.
2018-05-08 13:45:24 +07:00
ShyRed
cbcb96ae85 ItemList selection: Check against item count
ItemList needs to check against the number of items available when the user moves the selection via "ui_right" action.
2018-04-14 14:36:53 +02:00
Poommetee Ketson
72aa87758a
Update classref and docs, fix missing parameters' name 2018-04-11 10:20:22 +07:00
Poommetee Ketson
ed3b080ca6 Fix converting to tileset crashes Godot if existing file is not tileset
also make TileSetEditorPlgn tile list updates the preview modulate
2018-03-23 21:27:30 +07:00
Rémi Verschelde
fe93459ef9
Merge pull request #17345 from AlexHolly/expose-itemlist-move-item
expose Itemlist.move_item and optimize functionality
2018-03-13 20:05:00 +01:00
Alexander Holland
a3d2f59dbe expose itemlist.unselect_all() 2018-03-13 16:46:25 +01:00
Alexander Holland
73146af740 expose Itemlist.move_item and optimize functionality 2018-03-13 15:19:43 +01:00
Alexander Holland
11e40d3700 expose Itemlist.is_anything_selected 2018-03-11 03:01:16 +01:00
Rémi Verschelde
d5daaa72fa
Merge pull request #15306 from poke1024/item-list-draw-speed
Boost drawing speed of ItemLists with many items
2018-02-19 21:53:59 +01:00
Michael Alexsander Silva Dias
4dbf6ac1b8 Added "allow_reselect" property to ItemList and enabled it for the method/help lists. 2018-02-14 03:38:07 -02:00
binbitten
331cfc1d18 Fix wrong property type for fixed icon size in ItemList 2018-02-03 10:02:27 +01:00
Bojidar Marinov
9b8e8b2220
Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00
Bernhard Liebl
85ecd79012 Boost drawing speed of ItemLists with many items 2018-01-05 17:40:53 +01:00
Rémi Verschelde
e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde
6cd33f17f7
Merge pull request #14792 from Krakean/enh-1
A few small Debugger->Errors tab enhancements:
2018-01-03 10:26:55 +01:00
Ryan Stein
3c9ee75e26 Use exact positioning for the ItemList::get_tooltip method. 2018-01-01 22:46:32 -05:00
Rémi Verschelde
b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Dmitry Koteroff
ea14b0789b A few small Debugger->Errors tab enhancements:
1. Added "Clear" button to clear list.
2. Errors list now populated with newest items comes first, so no need to scroll everytime.
3. Added PopupMenu to errors list with ability to quickly Copy error text & details.
2017-12-18 03:40:49 +03:00
Dmitry Koteroff
80a2ede0d1 Item List small enhancements
Item list: added new signal - nothing_selected (when mouse clicked on empty space), and two new functions - unselect_all() and is_any_selected()
2017-11-26 22:56:42 +03:00
Bernhard Liebl
80ad8afc85 Native pan and zoom for macOS 2017-11-21 09:11:39 +01:00
Dmitry Koteroff
d67b602f2f Add "New Folder.." to right mouse button click on project fileslist panel _WHEN_ no any file/folder is under mouse cursor. 2017-11-20 21:25:13 +03:00
volzhs
710c87ec99 Fit stylebox on ItemList 2017-11-13 22:24:58 +09:00
Rémi Verschelde
a1ffadb953
Revert "Fixes the selection rect in item_list drawn not clipped" 2017-10-31 10:58:53 +01:00
Gilles Roudiere
37d2b17f88 Fixes the selection rect in item_list drawn not clipped 2017-10-24 10:09:39 +02:00
AlexHolly
776fbe749c Itemlist rmb now provides the same pos as Tree rmb 2017-10-18 14:56:38 +02:00
Daniel J. Ramirez
15986ea343 Several visual improvements.
Added proper label sizing
Improved text editor status bar
Fixed some issues with ItemList and also some style fixes
Added background to color picker samples (the mrcdk fix)
Fixed slider ticks.
Added VS breakpoint and error styleboxes.
2017-09-28 15:00:43 -05:00
letheed
5ad9be4c24 Rename pos to position in user facing methods and variables
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:

* pos -> position
* rot -> rotation
* loc -> location

C++ variables are left as is.
2017-09-20 13:11:10 +02:00
Daniel J. Ramirez
215b110cd3 Improved color temperature in script editor 2017-09-03 02:44:59 -05:00
Hein-Pieter van Braam
f9467ec1ea Fix signed and unsigned comparisons
The first in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-01 08:13:12 +02:00
Rémi Verschelde
bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Ignacio Etcheverry
32dd9a9f66 ClassDB: Provide the enum name of integer constants 2017-08-20 22:07:43 +02:00
Rémi Verschelde
0dd51fc722 Merge pull request #10252 from neikeq/pr-fix-some-stuff-<3
Some method fixes
2017-08-16 18:16:47 +02:00
Gilles Roudiere
0d35d4d53b Replace GUI anchor type by a float between 0 and 1 2017-08-13 21:20:13 +02:00
Ignacio Etcheverry
1a04917fea Fixes ItemList::is_same_column_width() return type 2017-08-11 13:34:06 +02:00
Ignacio Etcheverry
2f290038d6 Removes type information from method binds 2017-08-10 07:17:50 +02:00
Andreas Haas
aef974e7a8
ItemList: Remove redundant Vector2 initializations. 2017-08-02 21:49:06 +02:00
Poommetee Ketson
47c4777ccf Enhanched About dialog, Add ItemList auto_height
Add set/has_auto_height for ItemList to automatically set minimum
size by content.
Add hash to About dialog.
Resize About dialog so that dev list appears in 3 columns.
2017-07-21 14:18:40 +07:00
Juan Linietsky
25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Poommetee Ketson
49c7620326 Add object type hint for docs 2017-07-19 02:03:34 +07:00
ducdetronquito
074801e7a9 [#7212] Fixed missing 'Variant' return values in documentation. 2017-07-11 13:25:51 +02:00
Poommetee Ketson
3aff102fc3 ItemList: expose methods, in-editor items editing support 2017-07-04 20:12:33 +07:00
toger5
50e5c7f980 fixed overlapping of temp. colors (script editor)
+ added a little bit more spacing to the scripts in the script list.
the temp colors now expand to the vseperation, instead of having the same size than the stylebox
2017-06-07 02:41:08 -07:00
alexholly
a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Andreas Haas
9bc5348961
InputEvent: Renamed "pos" property to "position"
Make the naming consistent with other classes.
2017-06-03 11:26:39 +02:00
Sean Bohan
cba62864c8 Fix item list scroll speed.
Remove the extra `set_val` action after the proper one, so the right scroll value won’t get overrided any more.

(cherry picked from commit 064dce7a4c)
2017-05-27 11:37:33 +02:00
Juan Linietsky
5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde
231511b2a6 Merge pull request #8631 from volzhs/editor-theme-custom
New customizable editor theme
2017-05-20 07:16:11 +02:00
toger5
304a1f5b5a Implemented scrolling factor for smooth trackpad scrolling
Working platforms platform: OSX, Windows.
Support for almost all ui elements, including project list.
2017-05-07 14:23:56 +02:00
volzhs
17e8e343fb Revert "Add new editor and default theme (WIP)"
This reverts commit f045efe007.
2017-05-03 06:19:15 +09:00
Daniel J. Ramirez
f045efe007 Add new editor and default theme (WIP) 2017-04-27 08:04:57 +02:00
Rémi Verschelde
df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Rémi Verschelde
5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Thaer Razeq
f50488a361 Various fixes detected using PVS-Studio static analyzer.
- Add FIXME tags comments to some unfixed potential bugs
- Remove some checks (always false: unsigned never < 0)
- Fix some if statements based on reviews.
- Bunch of missing `else` statements
2017-02-28 07:52:02 -06:00
Juan Linietsky
de0045cf1b -renamed globals.h to global_config.cpp (this seems to have caused a few modified files)
-.pck and .zip exporting redone, seems to be working..
2017-02-21 00:06:30 -03:00
Juan Linietsky
f6950956bd Editor Export Settings Dialog is completed!! Now on to make some exporters.. 2017-02-19 23:21:35 -03:00
Hein-Pieter van Braam
411ee71b4d Rename the _MD macro to D_METHOD
This new name also makes its purpose a little clearer

This is a step towards fixing #56
2017-02-13 12:50:02 +01:00
Rémi Verschelde
f44ee891be Style: Fix statements ending with ';;' 2017-01-16 08:49:52 +01:00
Juan Linietsky
04c749a1f0 New API for visibility in both CanvasItem and Spatial
visible (property) - access set_visible(bool) is_visible()
is_visible_in_tree() - true when visible and parents visible
show() hide() - for convenience
2017-01-13 10:45:50 -03:00
Juan Linietsky
e9bb65db81 -All types have editable script now in properties
-Changed clip to a property in Control which can be set by the user
2017-01-09 15:50:59 -03:00
Juan Linietsky
920947f297 renamed _input_event for GUI events to _gui_input, so it's more differentiated than generalized _input 2017-01-08 16:28:12 -03:00
Juan Linietsky
0f7af4ea51 -Changed most project settings in the engine, so they have major and minor categories.
-Changed SectionedPropertyEditor to support this
-Renamed Globals singleton to GlobalConfig, makes more sense.
-Changed the logic behind persisten global settings, instead of the persist checkbox, a revert button is now available
2017-01-05 09:16:00 -03:00
Juan Linietsky
b085c40edf -Conversion of most properties to a simpler syntax, easier to use by script
-Modified help to display properties

GDScript can still not make use of them, though.
2017-01-04 01:16:14 -03:00
Juan Linietsky
118eed485e ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
2017-01-02 23:03:46 -03:00
Rémi Verschelde
c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
volzhs
4c9b00b508 Fix to fit stylebox with ItemList 2016-11-01 07:45:37 +09:00
Brickcaster
cc7bc07e33 Fix for issue #6496
Canged order of NOTIFICATION_DRAW to update scrollbar before scrollbar
is checked to see which list elements to display.
2016-09-16 11:25:07 -04:00
Paulb23
63fd8f863b Added get_v_scroll to item list, issue 5343 2016-09-09 15:20:57 +01:00
Paulb23
62a968b1c6 Ability to disable item list tooltip, issue 6240 2016-09-07 18:13:22 +01:00
Johan Manuel
1a1342670e Fix ItemList.clear() not removing separators 2016-07-22 16:45:57 +02:00
Robert Lewicki
b1df9e016c Fixed ItemList indexing bug while selecting items.
Also added functionality for unselecting items in itemlist while clicking in empty space.
Fixes #5772.
2016-07-22 16:28:37 +02:00
Rémi Verschelde
51b03f0bf5 Fix binding for ItemList.sort_items_by_text
Also forces to recompute the cached rect for all items.
Fixes #5799
2016-07-22 08:08:17 +02:00
Juan Linietsky
93c3c801db properly implement item disabling, fixes #5683 2016-07-21 18:24:56 -03:00
Jean Jung
2fd9b77828 itemlist-get_selected_items 2016-06-28 14:09:17 -03:00
Rémi Verschelde
a7fc04626a Add missing license headers in our source files (#5255)
Also removes a couple wrong Godot headers from third-party source files.
2016-06-18 14:46:12 +02:00
Juan Linietsky
be223c91f9 fixed tile map editor plugin, all previews are now the same size, closes #4983 2016-06-12 17:10:34 -03:00
Juan Linietsky
4667f9e61e Changed how min/max icon size in ItemList works and replaced it by a fixed size. Fixes many issues, closes #4907 2016-06-12 16:52:22 -03:00
Bojidar Marinov
ab97718d8a Reorder tiles into nice columns 2016-05-27 22:42:51 +03:00
Andreas Haas
7c1594ee5a Use scalar to scale TileMap icons 2016-05-27 18:54:46 +02:00
Andreas Haas
677b77036a Allow ItemList icons to stretch to max size. 2016-05-24 20:36:46 +02:00
Juan Linietsky
8b47e26f59 Changes to FileSystem Dock
-Replaced buttons for file actions fo RMB menu
-Added a split mode, if the dock is not sharing vertical space with
anything else
-imroved drag and drop support
2016-05-15 20:25:51 -03:00
Juan Linietsky
bed3efb17e New reworked AnimatedSprite!
-New SpriteFrames editor, with support for drag&drop, multiple animation
sets, animation speed and loop.
-New AnimatedSprite, with support for all the new features!
AnimatedSprite3D has not been updated yet.
-Added support for drag&drop to other editors, such as resourcepreload,
sample library,  etc.
2016-05-14 23:48:45 -03:00
volzhs
81b4d38fa7 open directory or file when double click
fixes #4607
2016-05-13 01:22:19 +09:00
Juan Linietsky
d7318f6965 -begun implementing drag & drop editor wide
-filesystem dock dnd support
-property list dnd support
-scene tree dnd support
2016-05-11 11:59:03 -03:00
Rémi Verschelde
99e31e1005 Merge pull request #4547 from neikeq/pr-wrong-debug-methods
Fix wrong return and argument types in documentation
2016-05-05 09:27:14 +02:00
Juan Linietsky
f909634832 -make sure single select after multi select works better
-fixed some warnings for OSX
2016-05-04 17:41:58 -03:00
Ignacio Etcheverry
1e752c0120 Fix wrong return and argument types in documentation 2016-05-04 15:35:09 +02:00
Franklin Sobrinho
1f07fe5502 Add icon region support for ItemList 2016-03-13 12:51:19 -03:00
Rémi Verschelde
1120b6ae0d Make custom_bg fit the whole "selected" area in ItemLists
Closes #3096
2016-01-22 00:22:27 +01:00
Juan Linietsky
081a236c67 -Merged Script and Help tabs
-Help tabs can be opened many at the same time
-Color temperatures for opened scripts
-Dominant script opening when switching scene tab
2015-11-17 09:46:08 -03:00
George Marques
e6e9e83c2e
Fix typo in ItemList bindings 2015-09-21 14:08:10 -03:00
Juan Linietsky
07e9741425 **WARNING BEFORE PULLING**
This push changes the binary and XML formats and bumps the major version to 2.0. As such, files saved in this version WILL NO LONGER WORK IN PREVIOUS VERSIONS. This compatibility breakage with older versions was required in order to properly provide project refactoring tools.
If I were you, unless you are brave, I would wait a week or two before pulling, in case of bugs :)

Summary of Changes

-New Filesystem dock, with filesystem & tree view modes.
-New refactoring tools, to change or fix dependencies.
-Quick search dialog, to quickly search any file
2015-08-23 20:15:56 -03:00
Juan Linietsky
e9bbb97acc Multiple scene editing *POTENTIALLY UNSTABLE*
-ability to edit multiple scenes at the same time
-resource internal IDs are now persistent, this makes multiple scene
editing possible but maaaaay result in file corruption bugs (tested and
could not find anything but possibility exists because core code
changed, report immediately if you find this).
-properly save settings, layout, etc when edited
-script editing is independent from scene editing now
-show a yellow box when a script belongs to the scene
2015-06-22 00:04:15 -03:00
Juan Linietsky
9acab32daa new file dialog!
-ItemList control for easier lists/thumbnails
-New file dialog, with support for thumbnails, favorites, recent places,
etc
-Moved .fscache out of the project, no more bugs due to committed/pulled
.fscache!
-Dir dialog now sorts directories
2015-06-06 09:44:38 -03:00