Commit Graph

228 Commits

Author SHA1 Message Date
Mateo Miccino 86b48093eb Signals: filter_changed from ProjectListFilter now is emitted when it's on scene tree to avoid unexpected call 2020-03-07 18:34:10 -03:00
Rémi Verschelde e2b66cacf7
Merge pull request #18020 from bruvzg/input_fix_non_latin_and_add_hw_scancodes
Fix non-latin layout scancodes on Linux, adds access to physical scancodes.
2020-03-01 23:00:42 +01:00
Rémi Verschelde f742dabafe Signals: Manually port most of remaining connect_compat uses
It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
2020-02-28 14:24:09 +01:00
Rémi Verschelde 01afc442c7 Signals: Port connect calls to use callable_mp
Remove now unnecessary bindings of signal callbacks in the public API.
There might be some false positives that need rebinding if they were
meant to be public.

No regular expressions were harmed in the making of this commit.
(Nah, just kidding.)
2020-02-28 14:24:09 +01:00
bruvzg 1af06d3d46
Rename `scancode` to `keycode`.
Add `physical_keycode` (keyboard layout independent keycodes) to InputEventKey and InputMap.
Fix non-latin keyboard layout keycodes on Linux/X11 (fallback to physical keycodes).
2020-02-25 12:30:33 +02:00
Juan Linietsky 69c95f4b4c Reworked signal connection system, added support for Callable and Signal objects and made them default. 2020-02-20 08:24:50 +01:00
Juan Linietsky 3205a92ad8 PoolVector is gone, replaced by Vector
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
Marcin Zawiejski dc793bb816 fix Vulkan project description 2020-02-13 21:04:43 +01:00
Rémi Verschelde 386968ea97 Remove obsolete GLES3 backend
Due to the port to Vulkan and complete redesign of the rendering backend,
the `drivers/gles3` code is no longer usable in this state and is not
planned to be ported to the new architecture.

The GLES2 backend is kept (while still disabled and non-working) as it
will eventually be ported to serve as the low-end renderer for Godot 4.0.

Some GLES3 features might be selectively ported to the updated GLES2
backend if there's a need for them, and extensions we can use for that.

So long, OpenGL driver bugs!
2020-02-13 10:36:44 +01:00
Rémi Verschelde 57dca8b8cc
Merge pull request #36152 from Calinou/project-manager-rename-last-modified
Rename the "Last Modified" project list sorting option to "Last Edited"
2020-02-13 09:09:24 +01:00
Hugo Locurcio bb2fffa10c
Disable the GLES2 renderer option in the Project Manager
It will be re-enabled once the GLES2 renderer is refactored to work
in Godot 4.0.
2020-02-13 00:29:17 +01:00
Hugo Locurcio e10460e36f
Rename the "Last Modified" project list sorting option to "Last Edited"
The `project.godot` file will always be modified when editing a project,
but not when running it. This effectively makes the option sort by
last edition date, rather than modification as is typically understood
by users.

This closes #36127.
2020-02-12 18:13:32 +01:00
Teashrock 919293b369 Changed in-text driver name to "Vulkan"
But it still requires a change of "driver_name" in backend itself.
2020-02-12 11:07:33 +02:00
Juan Linietsky 3f335ce3d4 Texture refactor
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11 11:53:26 +01:00
Rémi Verschelde 01d487c4f5 Merge pull request #34027 from Calinou/tweak-project-manager-renderer-selection
Improve the renderer selection display in the project manager
2020-02-10 11:28:32 +01:00
Rémi Verschelde 1ceba5a653 Merge pull request #35260 from Calinou/project-manager-enter-open-first
Select the first project when searching in the project manager
2020-02-10 11:16:47 +01:00
Rémi Verschelde f5fa2b41df
Merge pull request #35892 from Calinou/project-manager-allow-hidden-files
Allow existing hidden files/directories when creating a new project
2020-02-06 11:21:17 +01:00
Haoyu Qiu c1011178c0 Centers icon vertically in project list 2020-02-06 10:56:43 +08:00
Hugo Locurcio 34b747bac0
Allow existing hidden files/directories when creating a new project
For instance, this lets users initialize a Git repository
and still be able to create a project in the directory afterwards.

This closes https://github.com/godotengine/godot-proposals/issues/291.
2020-02-03 21:35:00 +01:00
Hugo Locurcio 56aae0e8bc
Use a loading placeholder for project icons in the project manager
Now that projects are loaded asynchronously, some projects in the
list may be displayed before their icon is done loading. This is
especially common on slower hardware.

In such cases, this makes the project manager display a loading
placeholder instead of the default project icon.
2020-01-21 22:56:19 +01:00
Hugo Locurcio d72f5e0938
Only create the editor theme once
This prevents the editor theme from being created twice.
This speeds up the project editor and editor startup
significantly; startup is now 1.3 times faster on average
(tested on a debug build). RAM usage was also lowered by 7.5 MB
on average.

This partially addresses #35321.
2020-01-19 21:51:21 +01:00
Hugo Locurcio 2897918426
Select the first project when searching in the project manager
This makes the project manager usable for opening existing projects
without ever touching the mouse. Just enter text in the autofocused
search box and press Enter.

This partially addresses #8149.
2020-01-18 00:58:52 +01:00
Haoyu Qiu 047d66cc6f Fixes the New Window option in macOS dock menu 2020-01-13 08:58:12 +08:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Marc Gilleron 4c7d02dea1 Fix wrong project opening in some situations, hidden nodes were not reordered 2019-12-30 17:04:29 +00:00
Rémi Verschelde 45908eebf3 i18n: Sync translation template with current source 2019-12-17 11:47:29 +01:00
Haoyu Qiu 7a9c337dfe Makes more strings in editor translatable
* File type names in file dialogs
* Layout option names
* Visual shader editor UI
2019-12-16 16:41:07 +08:00
Rémi Verschelde 2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Hugo Locurcio 82c8751e65
Improve the renderer selection display in the project manager
- Format characteristics as a bullet-point list.
- Fade out secondary text to make other fields more prominent.
2019-12-07 23:00:27 +01:00
Haoyu Qiu 22b345c969 Fixes translation for project sort options 2019-12-04 15:17:45 +08:00
bruvzg 2f3db42de8
Update dock menu on project list changes, add favourites separator. 2019-10-24 13:25:21 +03:00
lupoDharkael 4753c51de6 Project Manager: Update template dialog position after window resize 2019-10-01 12:10:58 +02:00
Hugo Locurcio 76dd021a30
Don't open a project in the list if Ctrl is held while double-clicking 2019-09-23 17:25:37 +02:00
Hugo Locurcio 61299dc451
Focus the project manager's search box automatically on startup
This allows the user to search projects as soon as the project manager
opens, without having to click on the search field first.
2019-09-23 02:50:50 +02:00
Hugo Locurcio 9e5f1d6641
Add an "hover" style to items in the project manager
This makes the project manager feel more responsive to user input.
2019-09-13 02:34:05 +02:00
Hugo Locurcio ef9f234d2b
Tweak the editor window dimming intensity, remove dim fade animation
The fade animation tended to give the editor a "sluggish" feel
when running at lower FPS (which is common in heavy 3D scenes),
so it's probably a good idea to remove it.

This also makes dimming less intense (50% instead of 60%).
2019-08-29 15:54:08 +02:00
Hugo Locurcio 5bd01bf637
Add a project description setting
The description is displayed as a tooltip when hovering the project
in the Project Manager. It can span multiple lines.

This partially addresses #8167.
2019-08-28 22:34:29 +02:00
Emmanuel Barroga 36e3996677 Fixes Keyup Navigation in Project Manager
This PR fixes the issue of navigation via keyup in the project manager not selecting the first item.
2019-08-27 10:15:37 -07:00
bruvzg db6d4352ea
[macOS] Add methods to modify global and dock menus. Add ability to open multiple editor/project manager instances, recent/favourite project list to project manager dock menu and opened scene list to editor dock menu. 2019-08-26 16:45:49 +03:00
Hugo Locurcio 0271a5f1d8
Improve the display of missing projects in the Project Manager
- Use a "broken file" icon instead of a "folder" icon for missing
  projects
- Fade out the project icon for missing projects
- Use transparent modulate for grayed out projects as it results in
  better-looking text
- Disable the "Edit", "Run" and "Rename" buttons if at least
  one missing project is selected
- Make double-clicking or pressing Enter do nothing when a missing
  project is selected
- Change the "Open in FileSystem" tooltip accordingly for missing
  projects
- Don't connect the "Open in FileSystem" pressed signal to make the
  button ineffective for missing projects
- Name missing projects as "Missing Project" instead of
  "Unnamed Project"
2019-08-22 17:06:02 +02:00
Hugo Locurcio 3ae0306a1f
Tweak a few strings displayed in the editor for consistency 2019-08-21 19:33:29 +02:00
Rémi Verschelde a4377ca465
Merge pull request #31356 from Calinou/improve-project-manager-ui
Improve the project manager UI
2019-08-20 12:55:15 +02:00
Hugo Locurcio c0eee235c4
Define a minimum window size in the editor and project manager
This prevents most UI elements from overlapping or being cut off
as a result of the window being too small.

This closes #20669.
2019-08-17 21:56:59 +02:00
Hugo Locurcio cef7ca4abb
Improve the project manager UI
This incorporates many suggestions from #31342.

This also revises the search behavior to be simpler and more efficient:

- Searching will now search in both the project name and path. A project
  will be displayed if either of these match the search term.
- If the search term contains a "/", the whole path will be used to match
  the search term. Otherwise, only the last path component will be used.
2019-08-17 13:48:25 +02:00
Emmanuel Barroga 1f5dc0ea3b Fixes ProjectManager Buttons Not Updating
Fixes buttons in ProjectManager not updating to disabled after deleting projects.
2019-08-14 18:30:42 -07:00
Tomasz Chabora bd9a0a3236 Fix Project Manager not remembering sorting option 2019-08-14 13:09:04 +02:00
Hugo Locurcio 8f2bcfd909
Use Lanczos filtering for variable-sized images such as project icons
This results in better-looking icons with less artifacts
induced by downscaling.
2019-08-13 22:08:23 +02:00
Hugo Locurcio 6f6a9d9c09
Simplify editor settings related to window dimming
Only a single checkbox is now exposed to control whether the editor
window should be dimmed when opening a popup. The main use case
for disabling it is picking colors from the editor window while
a popup is open.
2019-07-26 15:29:04 +02:00
Marc Gilleron d3652887df Project manager improvements
- Faster launch time by loading icons in a coroutine
- Faster sorting, filtering, fav'ing etc
- Refactored project list with a proper structured class
2019-07-21 20:47:25 +01:00
gaisama f3b95560f4 Set a default value for project name when installing a project.
If I download a template named KewlGame, we should not force the user to have to type that name in order to complete the installation process.  The user can still rename it if they wish to but we should be providing a default value.  This quality of life enhancement will improve the workflow for newcomers to Godot who typically attempt to install a template as their first action within the program.
2019-07-10 18:40:29 -04:00
Tomasz Chabora 39e5c510fc Properly sort projects by name 2019-06-18 15:51:58 +02:00
Hugo Locurcio bf97247cec
Improve the default project naming in the Project Manager
The Project Manager will now infer a project name from the
project path if the name is empty or equal to the default value.
The project name will also be capitalized automatically.
2019-06-15 00:01:44 +02:00
Hugo Locurcio c9bc807ce4
Dim the project manager window while it's quitting
This makes it clearer that the project manager window is busy
while it's quitting (which can take a while on slower PCs).
This also makes it feel more responsive to user input.
2019-06-09 22:48:12 +02:00
Hugo Locurcio dc981d8af7
Display longer Git hashes in engine version dialogs
Due to the high number of commits in the Godot repository,
7-character hashes were starting to become occasionally ambiguous.

In contrast, 9-character hashes are currently unambiguous for
all commits.
2019-06-01 13:52:58 +02:00
Rémi Verschelde 0d3ae2a415
Merge pull request #29198 from NilsIrl/seg_fault
Fix Segmentation fault and reduce memory consumption
2019-05-27 11:59:38 +02:00
Nils ANDRÉ-CHANG a156b7976d Fix Segmentation fault and reduce memory consumption 2019-05-26 20:32:09 +01:00
Hugo Locurcio deb7152724
Quit the Project Manager when Command + Q is pressed
This uses the same shortcut as quitting Godot while in the editor.

This partially addresses #27251.
2019-05-13 22:17:16 +02:00
qarmin d9eaa3e093 Fix Remove Missing Project projects on Windows 2019-05-01 14:36:04 +02:00
Rémi Verschelde 5902e15b9b
Merge pull request #27187 from IronicallySerious/add-new-folder-button
Add 'Create Folder' button in Install Project dialog
2019-04-30 18:32:42 +02:00
Rémi Verschelde 1b08ba1a48
Merge pull request #25713 from qarmin/remove_all_missing_projects
Add button in Project Manager to remove all missing projects
2019-04-30 13:56:29 +02:00
Hugo Locurcio 35a0162167
Improve wording of various messages and make casing more consistent
This also adds the number of selected projects to the confirmation
dialog that appears before removing projects.
2019-04-21 14:37:14 +02:00
Twarit 0e62f5e6f7 Add 'Create Folder' button while installing templates
Fixes #25454
2019-04-10 11:23:13 +05:30
Rémi Verschelde fc370b3feb Fix -Wimplicit-fallthrough warnings from GCC 8
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional.
Can be replaced by `[[fallthrough]]` if/when we switch to C++17.

The warning is now enabled by default for GCC on `extra` warnings level
(part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet,
but we could enable it manually once we switch to C++11. There's no
equivalent feature in MSVC for now.

Fixes #26135.
2019-04-05 15:14:53 +02:00
marxin 8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Michael Alexsander Silva Dias 0de15955ad Add small spacing between top bars in main editor and project manager 2019-02-20 12:08:52 -03:00
Kārlis Seņko bb3429c1c5 Fix project opening while filter is applied.
Fixes #25268
2019-02-19 00:06:20 +02:00
Michael Alexsander Silva Dias da45f1bf85 Minor cleanup in the Project Manager 2019-02-12 08:25:09 -02:00
qarmin a14733be3f Add button in Project Manager to remove all missing projects 2019-02-11 17:44:23 +01:00
Rémi Verschelde da18307a53
Merge pull request #25562 from IronicallySerious/fix-empty-project
Fix prompt for empty project files when loaded
2019-02-08 12:16:01 +01:00
Twarit 56f4d59962 Fix prompt for empty project files when loaded
Fixes #25541
2019-02-06 17:21:19 +05:30
Leon Krause 12bdb46706 Add renderer selection to New Project dialog 2019-01-25 01:49:55 +01:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde 616beb1041 ProjectManager: Warn when projects have different config_version
When opening projects for edition through the project manager, the
following checks are now done:

1. If the config_version is lower than the one used by the current
   engine version, users are asked if they want to convert to the new
   format or abort editing. Fixes #20626.
2. If the config_version is higher than the expected one (project
   from a more recent and incompatible engine version), projects are
   grayed out and can't be edited. Fixes #18758.

When editing from the command line, the behaviour is unchanged:
projects in situation (1) are automatically converted, while projects
in situation (2) show an error message (made more explicit).

The "Run" option from the project manager was not changed, so it will
still run (1) projects without converting them, and fail running (2)
projects.

Co-authored-by: groud <gilles.roudiere@gmail.com>
2018-12-21 12:45:27 +01:00
Gleb Mineev b675a3f745 24303: remember sorting order in the project manager 2018-12-15 17:38:49 +01:00
Rémi Verschelde 17c3c64a80 i18n: Sync translation template with current source
Also French translation update and misc fixes to source strings.
2018-12-13 14:47:24 +01:00
Rémi Verschelde c084340216
Merge pull request #23935 from helenaMontenegro/master
Add sorting to the project manager
2018-12-06 14:14:08 +01:00
qichunren 1986cc1118 Fixed project name line edit focus lost when open project-create dialog.
This also select default project name text for convenience.
2018-11-26 15:56:34 +08:00
helenaMontenegro 911cf63eb8 Add sorting to project manager. Fixes #8794. 2018-11-23 23:53:21 +00:00
Michael Alexsander Silva Dias f3835282c4 Small capitalization fixes across the editor 2018-10-26 16:11:36 -03:00
lupoDharkael 006021236a Project manager: remove projects with delete key 2018-10-02 11:28:18 +02:00
Fabio Alessandrelli d2b38aabec Bundle SSL certs with the templates.
If this is undesired it can be avoided by specifying builtin_certs=no .
Bundled SSL certs will be used unless you specify an override in:
Project Settings -> SSL -> Certificates .
2018-09-15 10:54:00 +02:00
Rémi Verschelde 277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
Hugo Locurcio 9c5ce5cf58
Fix the project manager window size on hiDPI displays on macOS
This closes #21525.
2018-09-02 11:52:26 +02:00
Rémi Verschelde 52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
Rémi Verschelde 8c38bab6d7
Merge pull request #20831 from Calinou/project-manager-window-size-hidpi
Scale the project manager window size with the editor scale
2018-08-14 15:45:48 +02:00
Ivan Vodopiviz f6a250adf8 Always show "Open in File Manager"
Now this button is always shown in the project manager. Fixes #20799.
2018-08-14 14:17:55 +02:00
Rémi Verschelde 68ab428d4d
Merge pull request #20155 from Tunous/line-edit-clear
Add clear button to search fields
2018-08-13 12:54:57 +02:00
Łukasz Rutkowski 81fb81de9d Do not use theme to set LineEdit right_icon 2018-08-11 12:04:26 +02:00
Łukasz Rutkowski e8a435c8cd Add clear text button to LineEdit
- Add pressed state to clear button
- Enable clear button on all inputs with search icon
- Remove duplicate clear buttons
- Fix rendering of icon for center and right alignments
- Add clear button to more search fields
- Add clear icon to default theme
- Add method to control enabled state of clear button
- Add property to enable clear button from inspector
2018-08-11 12:04:26 +02:00
Hugo Locurcio cd29cdab15
Scale the project manager window size with the editor scale
This also makes the project search field slightly larger.
2018-08-09 11:10:48 +02:00
Ibrahn Sahir 62f0dd9d57 removed some surplus null appends that got typoed in 0e29f7974b
A couple of null appends got typoed to append a '0' character instead.
Removed them here since String already takes care of the null terminator for us.
2018-08-07 03:30:14 +01:00
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
Nathan Harrell 6831bc422b Add ability to import projects via ZIP archive. 2018-06-22 00:55:16 -04:00
Ibrahn Sahir 8afb00a8ec fixup project_manager and find_in_files for text_changed signal change.
Background:
Commit 2abec59db9 removing text_changed
signal emmision from LineEdit::set_text broke the project manager and
find_in_files.
2018-05-20 16:45:22 +01:00
DmitryKrutskikh 965b6ac273 Disable 'run' button if any project not selected and tiny refactoring 2018-05-09 19:13:53 +03:00
Felix Yang 164dceab28 Fix for Issue#18457 - Folder name with trailing space on Windows 2018-05-03 10:19:43 +02:00
Hugo Locurcio 61bf0d10d5
Overhaul the display scaling editor settings
This adds more scaling options, in addition to a custom scaling option
which allows any scale between 0.75 and 3.0 to be used.
2018-03-23 14:04:39 +01:00
Emanuele Fornara 0071c04dcb skip demo download prompt if ssl is unavailable 2018-03-05 17:08:39 +01:00
Rémi Verschelde 23ebae01dc Refactor version macros and fix related bugs
The previous logic with VERSION_MKSTRING was a bit unwieldy, so there were
several places hardcoding their own variant of the version string, potentially
with bugs (e.g. forgetting the patch number when defined).

The new logic defines:

- VERSION_BRANCH, the main 'major.minor' version (e.g. 3.1)
- VERSION_NUMBER, which can be 'major.minor' or 'major.minor.patch',
  depending on whether the latter is defined (e.g. 3.1.4)
- VERSION_FULL_CONFIG, which contains the version status (e.g. stable)
  and the module-specific suffix (e.g. mono)
- VERSION_FULL_BUILD, same as above but with build/reference name
  (e.g. official, custom_build, mageia, etc.)
  Note: Slight change here, as the previous format had the build name
  *before* the module-specific suffix; now it's after
- VERSION_FULL_NAME, same as before, so VERSION_FULL_BUILD prefixed
  with "Godot v" for readability

Bugs fixed thanks to that:

- Export templates version matching now properly takes VERSION_PATCH
  into account by relying on VERSION_FULL_CONFIG.
- ClassDB hash no longer takes the build name into account, but limits
  itself to VERSION_FULL_CONFIG (build name is cosmetic, not relevant
  for the API hash).
- Docs XML no longer hardcode the VERSION_STATUS, this was annoying.
- Small cleanup in Windows .rc file thanks to new macros.
2018-02-23 20:15:29 +01:00