Commit Graph

481 Commits

Author SHA1 Message Date
reduz 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
Rémi Verschelde 25ec4b447b
Merge pull request #61211 from Calinou/project-manager-fix-small-window-size 2022-05-20 17:04:01 +02:00
Hugo Locurcio 9e64f3de6c
Fix project manager display at small window sizes
- Don't use minimum size for project order/filter controls.
  This also allows the filter field to become longer at large
  window sizes.
- Hide the loading label instead of changing its opacity.
  This causes a reflow during loading, but this is preferable to having
  the UI overflow.
- Hide the About button on Android as it will spawn a dialog that's
  too large to be closed on most screens.
- Hide the language dropdown on Android as it doesn't work correctly.

This allows the project manager to be displayed correctly at much
lower window sizes than previously.
2022-05-20 16:32:29 +02:00
Aaron Franke a53b7f0a9d
Tweaks to improve the Project Manager display at small sizes 2022-05-19 23:57:48 -05:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +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
bruvzg d36c5514d3
Fix ZipIO crash when reused (and possible leaks). 2022-05-11 16:08:17 +03:00
Aaron Franke b1ea83451a
Fix display of unsupported project features in the project manager 2022-05-10 08:25:22 -05:00
Rémi Verschelde 8dfa12cae7
Merge pull request #59979 from bruvzg/cpp_check2 2022-04-27 10:08:26 +02:00
Rémi Verschelde a19d7d8f8d
Merge pull request #58383 from bruvzg/no_inv_window_placement 2022-04-27 09:33:40 +02:00
bruvzg be611c1c05
Implement Label3D node.
Add "generate_mipmap" font import option.
Add some missing features to the Sprite3D.
Move BiDi override code from Control to TextServer.
Add functions to access TextServer font cache textures.
Add MSDF related flags and shader to the standard material.
Change standard material cache to use HashMap instead of Vector.
2022-04-22 12:08:46 +03: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
bruvzg de4c97758a
Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
Josh Kabo 0bff53135a Unzip read success no longer breaks read loop
unzReadCurrentFile(3) returns number of bytes read, so the current code only processes the file if no bytes were read (UNZ_OK is a #define equal to 0).
I've altered the break to occur only on unsuccessful read, (when unzReadCurrentFile(3) returns less than zero), and added an error message for when an unsuccessful read occurs.
2022-04-16 16:39:37 -07: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
Rémi Verschelde 5613ac37d6
Merge pull request #59440 from bruvzg/fd_ref_counted 2022-04-11 14:12:18 +02:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
kobewi 63de41b996 Improvements to files_dropped signal 2022-04-11 00:37:06 +02:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
bruvzg 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
floppyhammer 536d7581ba Fix project manager window size not applying display scale correctly 2022-03-27 11:06:44 +08:00
C.Even 56d372ef0c Fix project manager window centering in multi-monitor situation
* When main screen's position in not (0,0) and editor scale is larger
  than 1, the project manager window was not centered in main screen
2022-03-26 20:03:04 +08:00
Haoyu Qiu 4d73899352 Improves editor property name extraction 2022-03-18 17:56:45 +08:00
Michael Alexsander deb1342036 Make `TabBar/Container` default their alignments to the left instead of center 2022-03-17 18:12:23 -03:00
Michael Alexsander fc0e657e8f Remove extra borders from the AssetLib plugin 2022-03-15 20:40:46 -03: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
Priyansh Rathi d5b8a25195
fix same project opening mutliple times from project manager 2022-03-06 18:24:06 +05:30
Michael Alexsander a811ebf699 Make `TabContainer` use `TabBar` internally 2022-03-03 21:49:58 -03:00
Jakob Bouchard 6553f5c242
Convert _notification methods to switch - Chunk C 2022-02-16 13:03:05 -05:00
Hugo Locurcio 8c06318722
Tweak the default project icon
This only affects newly created projects.

- Use a 128×128 resolution to make the icon look crisp on hiDPI displays.
- Darken the icon's outside area and remove the border, as the
  contrast rate between the icon and its background is now sufficient.

This different design also allows distinguishing projects that
were made with Godot 3.x from projects made with Godot 4.0.
2022-02-15 20:23:12 +01:00
TechnicalSoup f3b7419790 Center initial position project manager window
Ensure that the project manager window is centered on the screen if any resizing is performed due to DPI scaling.
Resizing and repositioning code has been moved to after the initialisation of the window contents to improve UI response/presentation.
2022-02-13 19:48:53 +11:00
bruvzg 9739a2038a
Fix Project Manager crash on exit.
Fix editor settings loading / saving by Project Manager.
2022-02-12 21:55:11 +02:00
Hendrik Brucker 77fb65debf Use EditorFileDialog instead of FileDialog in the project manager 2022-02-12 12:06:51 +01:00
Hendrik Brucker b396fd4eef Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
Rémi Verschelde 90162851a7
Core: Move generated `VERSION_HASH` to a `.cpp` file
This lets us have its definition in `core/version.h` and avoid
rebuilding a handful of files every time the commit hash changes.
2022-02-09 09:20:17 +01:00
Rémi Verschelde 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
jmb462 a988fad9a0 Add missing SNAME macro optimization to all theme methods call 2022-02-06 23:06:11 +01:00
jmb462 1ce81dc5f2 Add missing SNAME macro optimization in some function calls 2022-02-06 15:54:04 +01:00
Anilforextra adbe948bda String: Add contains(). 2022-02-04 01:28:02 +05:45
bruvzg d2573c1636
Fix decoding UTF-8 filenames on unzipping. 2022-01-05 14:31:20 +02: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
Rémi Verschelde 1032c2c434
Merge pull request #55487 from YeldhamDev/scroll_bikeshedding 2022-01-03 14:10:41 +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
kobewi 841a9ef820 ScrollContainer's scrollbar visibility is now enum 2021-12-07 18:27:12 +01:00
Rémi Verschelde 8bb0f2aff1
Merge pull request #52916 from aaronfranke/no-default-env
Remove `default_env.tres` from generating in new projects
2021-12-02 21:12:12 +01:00
Michael Alexsander ec4f4c6cda Rename all methods that return `ScrollBar` nodes to `get_*_scroll_bar()` 2021-11-30 13:46:36 -03:00
kobewi 30df260810 Improve language lists in localization editor 2021-11-30 15:29:41 +01:00
Aaron Franke 7a096b216e
Remove default_env.tres from generating in new projects 2021-11-26 14:37:27 -06:00
Aaron Franke 9851d3c5b2
Move logic for saving project features to ProjectSettings save_custom 2021-11-25 03:08:05 -06:00
Aaron Franke e81c689592
Project feature warning system 2021-11-24 10:32:07 -06:00
Lightning_A e078f970db Rename `remove()` to `remove_at()` when removing by index 2021-11-23 18:58:57 -07:00
Rémi Verschelde c5ab537617
Merge pull request #42447 from aaronfranke/gitignore-create 2021-11-23 15:21:31 +01:00
Rémi Verschelde bef20f53cf
Merge pull request #54422 from ibrahn/project-manager-nophys 2021-11-16 11:06:46 +01:00
Aaron Franke ed9c7bf450
Allow creating .gitignore and .gitattributes when creating a new project
Also allow creating these files later, and also allow disabling creating the default environment in editor settings.
2021-11-12 21:27:31 -06:00
Aaron Franke 3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
Hugo Locurcio 7cc33b14c9
Use Enter instead of F2 as an editor renaming shortcut on macOS 2021-11-12 20:50:23 +01:00
Aaron Record 259fdaf48e Make "Last Modified" the default sorting order for the Project Manager 2021-11-07 15:23:35 -07:00
Hugo Locurcio 665d29c16d
Fix new projects always being created with OpenGL
Only Vulkan is fully implemented for now, so OpenGL isn't available
in the project manager yet.

This also makes the rendering driver checks use lowercase names
everywhere for consistency.
2021-11-01 22:04:36 +01:00
bruvzg 0b6b8427c8 [macOS] Add `create_instance` function to spawn editor copies.
[macOS] Modify `create_project` function to detect and run app bundles using NSWorkspace to ensure app window is registered and activated correctly.
2021-11-01 11:48:23 +02:00
Clay John 8a10bb7d0d
Use OpenGL 3.3 core profile instead of compatibility profile
- Rename OpenGL to GLES3 in the source code per community feedback.
  - The renderer is still exposed as "OpenGL 3" to the user.
- Hide renderer selection dropdown until OpenGL support is more mature.
  - The renderer can still be changed in the Project Settings or using
    the `--rendering-driver opengl` command line argument.
- Remove commented out exporter code.
- Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-31 15:56:45 +01:00
Ibrahn Sahir 27a6ab457b Turn off physics and 3d navigation servers in the Project Manager.
Copying the editor behaviour of deactivating these servers we're not
using, to reduce CPU load.
2021-10-30 15:15:00 +01:00
Hugo Locurcio ce97ddbcb1
Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3
- Use lowercase driver names for the `--rendering-driver`
  command line argument.
2021-10-30 02:05:49 +02:00
lawnjelly e3491a3744
Add GLES2 2D renderer + Linux display manager
First implementation with Linux display manager.

- Add single-threaded mode for EditorResourcePreview (needed for OpenGL).

Co-authored-by: clayjohn <claynjohn@gmail.com>
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-30 02:05:48 +02:00
Rémi Verschelde a7ba227631
Merge pull request #52711 from m4gr3d/provide_getter_for_project_data_dir_master 2021-10-05 21:02:27 +02:00
ne0fhyk 69f890ff11 Provide a getter for the project data directory. 2021-09-15 12:52:03 -07:00
Jacob Edie 2b292a1a2a
--single-window is passed through project manager.
This means you can start godot with --single-window
2021-09-15 10:20:50 +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
Hugo Locurcio d2b65c69e9
Expose Vulkan's clustered and mobile backends in the project manager
Since OpenGL will not be available in Godot 4.0, this exposes a
choice between Vulkan clustered and Vulkan mobile in the project manager.

Despite the name, Vulkan mobile has many benefits on desktop platforms.
It provides better performance on simple scenes, and ensures that you
won't accidentally use unsupported features while testing your project
on desktop platforms.

The Vulkan backend setting was made into a "basic" setting so that
it can be changed without having to enable the Advanced Settings toggle.

This also improves list formatting to use bullet points and tweaks
the property hint to be more descriptive.
2021-07-30 19:36:17 +02:00
Rémi Verschelde ac3322b0af
Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
Aaron Franke 4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
reduz 75755beeee
Implement textual ext/subresource IDs.
* Friendlier with version control.
* Generates pseudo unique IDs, to minimize conflicts when merging, but still
  user readable (so, not UUID).
* Eventually will also allow to have more precisely named sub-resources in
  imported files.
* This will allow better reloading on changes (including resources already
  loaded) as well as better keeping track of changes on the DCC.
* Keeps backward compatibility with the old formats.
* Binary and text format version incremented to mark breakage in forward
  compatibility.
2021-07-22 19:37:47 +02: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
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde 82eb4cfc00
Merge pull request #47894 from Calinou/project-manager-add-keyboard-shortcuts
Add keyboard shortcuts to the project manager
2021-06-17 12:41:47 +02:00
Rémi Verschelde f862f9a056
EditorSettings: Factor code to compute auto display scale
Also fixes typo introduced in https://github.com/godotengine/godot/pull/48597/files#r652636544.
2021-06-16 14:36:09 +02:00
Rémi Verschelde 3f01b38185
Merge pull request #48597 from Calinou/editor-scale-auto-portrait
Handle portrait mode monitors in the automatic editor scale detection
2021-06-15 18:27:48 +02:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Andrii Doroshenko (Xrayez) 293550f56a Separate version hash from version number in editor and project manager
When copy-pasting the version from About dialog to bug reports at GitHub,
this makes the version hash linkable to commits at GitHub.
2021-06-08 17:30:37 +03:00
Aaron Franke 7813167196
Rename tabs in the project manager 2021-06-03 20:02:02 -04:00
Rémi Verschelde 4c1d555b9a
Merge pull request #48770 from LightningAA/scrollcontainer-ensure-item-visible-4.0
ScrollContainer: Expose `_ensure_focused_visible` to the scripting API and rename it to `ensure_control_visible`
2021-06-01 11:01:40 +02:00
Lightning_A 6d5b5ba89f ScrollContainer: Expose `_ensure_focused_visible` to the API
Was renamed to `ensure_control_visible`
2021-05-31 17:14:57 -10:00
Tomasz Chabora b1859510ab Change behavior of String.right 2021-05-20 23:07:57 +02:00
Ev1lbl0w 056deefa55
Fix zip_root not being defined when importing by drag&drop 2021-05-19 22:43:54 +01:00
Hugo Locurcio 728fa3ff71
Handle portrait mode monitors in the automatic editor scale detection
Using the smallest dimension of the width and height makes it possible
to support both landscape and portrait monitors.
2021-05-09 23:35:24 +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 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
Hugo Locurcio be01025376
Make it possible to copy the Godot version identifier by clicking it
This closes #24317.
2021-04-28 17:35:57 +02:00
Hugo Locurcio 76722b5108
Add the About dialog to the project manager
The About button is located in the bottom-right corner of the
project manager.

This allows removing the copyright notice from the window title
(which looked a bit ugly in comparison to other applications).
2021-04-16 17:14:05 +02:00
Hugo Locurcio 86455d0c58
Strip leading/trailing whitespace for project name in the project manager
This affects creating projects and renaming them.
2021-04-14 20:25:44 +02:00
Hugo Locurcio 9bda49e030
Add keyboard shortcuts to the project manager
- Ctrl + N: New Project
- Ctrl + I: Import Project
- Ctrl + S: Scan for Projects
- Ctrl + E: Edit Project
- Ctrl + R: Run Project
- F2: Rename Project
- Delete: Remove Project
  - Already implemented previously, but moved to use `ED_SHORTCUT()`.

Note that depsite using `ED_SHORTCUT()`, these shortcuts won't appear
in the Editor Settings' Shortcuts dialog and won't be remappable since
the project manager code isn't run in the editor.
2021-04-14 20:07:22 +02:00
Rémi Verschelde 45f0b5db28
Merge pull request #47200 from LightningAA/delete-from-project-manager-4.0
Add the ability to remove project contents from the remove project dialog
2021-04-06 11:30:14 +02:00
Rémi Verschelde 77dc4c3cb6
Merge pull request #47636 from qarmin/input
Fix crashes in *_input functions
2021-04-05 11:54:08 +02:00
Rafał Mikrut 504bc5cc67 Fix crashes in *_input functions 2021-04-05 08:52:21 +02:00
Hugo Locurcio d89d00ac7e
Automatically focus the Search field when displaying asset library
- Focus the project search box when switching from the Templates tab
  back to the Projects tab in the project manager.
- Add a context-specific placeholder for the asset library search box.
- Rename "Search" project filter box placeholder to the more
  descriptive "Filter projects". When performing a search on an
  existing selection, "Filter" is more accurate than "Search".
2021-04-05 01:45:39 +02:00
Rémi Verschelde 36c11a5b93
Merge pull request #42890 from Ev1lbl0w/bugfix-import-zip
Allow Godot to import .ZIP files with non-regular structure
2021-04-01 00:18:19 +02:00
Kyle 918f50c04c Fixes project manager window size scaling
This is a workaround fix for a Vector2i multiplication regression issue that prevents the project manager window size from scaling correctly. This calculates the new window size x and y values separately.
2021-03-26 21:27:43 -04:00
Aaron Franke 10d7fccb54
Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
Lightning_A 93f944b070 Add the ability to remove project contents from the remove project dialog 2021-03-20 15:34:37 -06:00
Haoyu Qiu 30842b2efe Fix project icon size in Project Manager 2021-03-20 17:32:38 +08:00
reduz 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
Rémi Verschelde b21f854b7f
Merge pull request #45910 from Ansraer/default-scale-highres-monitor
Adjust auto scale on 4k monitors to 150%
2021-02-14 12:54:04 +01:00
Ansraer 466cf0b466 Adjust auto scale on high res displays 2021-02-12 01:12:25 +01:00
Hugo Locurcio 8be51252f6
Display loading text while the project manager is loading
This hints the user that the project manager is currently busy
loading the project. This is important for the HTML5 editor as the
current feedback isn't very obvious.

This also removes the unused `_exit_dialog` function.
2021-02-07 02:04:10 +01:00
Fabio Alessandrelli 9db7e07d5a Import zip via drag and drop in project manager.
Dropping a single ZIP file in the project manager will now prompt the
import dialog.
2021-02-03 18:59:54 +01:00
Rémi Verschelde ea1e26f312
Merge pull request #45648 from Kanabenki/check-project-manager-dirs
Check default project and autoscan directories exist on project manager startup
2021-02-02 13:12:12 +01:00
Kanabenki 58be3c069a Check default project and autoscan directories exist on project manager startup 2021-02-02 12:55:11 +01:00
Hugo Locurcio 04cbfbe6b2
Make the Open Project Folder button more visible in the project manager
This closes https://github.com/godotengine/godot-proposals/issues/619.
2021-02-01 20:04:01 +01:00
Hugo Locurcio 57654508c9
Tweak the "Auto" editor setting hints to be more indicative
This affects the editor scale and font hinting settings which will now
display their automatically chosen value in parentheses.
2021-01-18 16:29:04 +01:00
Marcel Admiraal 2a74b388d0 Split OS::execute into two methods
1. execute(): Executes a command and returns the results.
2. create_process(): Creates a new process and returns the new process' id.
2021-01-09 10:03:23 +00: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 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
Marcel Admiraal 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
Rafał Mikrut e1811b689b Initialize class/struct variables with default values in platform/ and editor/ 2020-12-02 16:09:11 +01:00
Rémi Verschelde a09846e015
Merge pull request #42109 from EricEzaM/PR/input-and-shortcuts-rework
Shortcuts rework - fixed issues with input propagation and triggering of unwanted shortcuts.
2020-11-28 09:04:25 +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
Eric M efe5c250d5 Implement new shortcuts system.
unhandled_key_input changed to unhandled_button_input. Controls can set a 'shortcut_context' which they can then use to determine if their shortcuts should be triggered or not, based on if the viewport's focused GUI control is a child of their 'shortcut context'.
2020-11-23 21:14:26 +10:00
Rafał Mikrut b20c20a6f7 Allow to open multiple projects when some are not imported or without main scene. 2020-11-18 21:24:27 +01:00
Rémi Verschelde d191ffe647
Merge pull request #43479 from Calinou/use-low-editor-scale-auto
Use 75% editor scale on small displays automatically
2020-11-16 16:36:10 +01:00
Hugo Locurcio c1a65e5289
Use 75% editor scale on small displays automatically
This also makes borders always display in the editor theme,
even if the editor scale is below 100%. Otherwise, "focus" outlines
would vanish when using an editor scale below 100%,
which harms usability.
2020-11-16 16:23:15 +01:00
Aaron Franke 46fdca4fae
Allow creating projects in non-empty folders with a confirmation popup 2020-11-10 00:12:07 -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
Ev1lbl0w 9b1db715fd
Allow Godot to import .ZIP files with non-regular structure 2020-10-19 09:37:04 +01:00
Aaron Franke 5fbcd8f9df
Rename the ".import" folder to ".godot/imported" 2020-09-28 05:23:45 -04:00
Rémi Verschelde 9568bcf166
i18n: Sync translations with Weblate
Add translators comment for the two 'Project Manager' strings,
and fix some of the translations.

(cherry picked from commit c5f6d2097b)
2020-09-08 15:18:17 +02:00
Rémi Verschelde 71833520da
Merge pull request #41589 from sburris0/master
Make blank project name create an error, not a warning
2020-09-03 00:27:57 +02:00
Aaron Franke 0b6326c79a
Change the "remove missing" button to disabled rather than hidden
Also set a minimum size
2020-08-31 11:40:06 -04:00
Stijn Hinlopen 31fdb0fe46 Fix not saving new filter order 2020-08-29 15:39:34 +02:00
Spencer Burris 0e3d938968 Make blank project name create an error, not a warning 2020-08-28 15:57:33 -07:00
Stijn Hinlopen 598447c5bc Refactor project filter in Project Manager
- Reorder search/sort bar
 - Removed ProjectListFilter (unnecessary abstraction)
 - Reorder side bar buttons
 - Removed some unused variables/methods
2020-08-27 22:14:30 +02:00
Raul Santos f997004ee8
Create default_env.tres with the same format used to save it 2020-08-10 09:51:47 +02:00
Stijn Hinlopen 526e060b73 Resize dialogs (FileDialog, EditorFileDialog, Reparent, SceneTreeDialog and resource depency dialogs). 2020-07-14 14:35:22 +02:00
Marcel Admiraal 26fcf2b04c Add override keywords. 2020-07-10 13:56:54 +01:00
PouleyKetchoupp b2d27214aa Keep debug & verbose options after loading project from project manager 2020-07-09 09:51:32 +02:00
bruvzg df968d577a
[macOS] Implement seamless display scaling. 2020-07-04 10:36:33 +03:00
Stijn Hinlopen 929b98d24b Remove String::find_last (same as rfind) 2020-07-03 15:26:22 +02:00
Hugo Locurcio 31b7f02a29
Remove ToolButton in favor of Button
ToolButton has no redeeming differences with Button;
it's just a Button with the Flat property enabled by default.
Removing it avoids some confusion when creating GUIs.

Existing ToolButtons will be converted to Buttons, but the Flat
property won't be enabled automatically.

This closes https://github.com/godotengine/godot-proposals/issues/1081.
2020-06-19 20:49:49 +02:00
hilfazer 512aaf018c Fixed "Favourite Project" button in Project Manager 2020-06-13 12:43:54 +02:00
Dominik 'dreamsComeTrue' Jasiński 1ec8f59397 Grabbing focus on ProjectList after clicking an item.
Fixes: #39012
2020-05-30 21:19:50 +02:00
Rémi Verschelde 0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde 0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde 69de7ce38c Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
Hugo Locurcio 72da1667e0
Improve path search behavior discoverability in the project manager
This closes #38185.
2020-04-25 21:59:38 +02:00
lupoDharkael 95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
bruvzg 15a9f94346 Add macOS DisplayServer implementation.
Change global menu to use Callable, add support for check items and submenus.
2020-03-26 16:24:05 +01:00
Mateo Kuruk Miccino f387b9b4f4 Multiple changes to DisplayServerX11
- Travis: Change x11 to linuxbsd
- SCons: Change x11 plataform to linuxbsd
- Plugins: Remove ; to avoid fallthrough warning
- DisplayServerX11: Implement set_icon
- DisplayServerX11: Fix X11 bug when a window was erased from windows
  map, all the changes from that erased windows are sending to the main
  window
- DisplayServerX11: Reorder create_window commands
- DisplayServerX11: Change every Size2 to Size2i and Rect2 to Rect2i
  where it belongs

+ More X11 fixes which have been integrated directly back into reduz's
original commits while rebasing the branch.
2020-03-26 15:49:54 +01:00
Juan Linietsky 441f1a5fe9 Popups are now windows also (broken!) 2020-03-26 15:49:42 +01:00
Juan Linietsky 4758057f20 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Juan Linietsky 8e6960a69e Refactored input, goes all via windows now.
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26 15:49:39 +01:00
Juan Linietsky f8a79a97c7 Effective DisplayServer separation, rename X11 -> LinuxBSD 2020-03-26 15:49:34 +01:00
clayjohn 61a74739ca Working sky shader implementation 2020-03-21 20:43:44 -07:00
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