Commit graph

74 commits

Author SHA1 Message Date
Yuri Sizov 632423f969 Improve selection handling in the project manager
Also clean up some unused methods and method names
2023-04-04 15:27:13 +02:00
Yuri Sizov d4c3cc4146 Improve drawing and layout logic of the project list in the Project Manager 2023-03-16 12:36:27 +01:00
Yuri Sizov aa47427cc7 Improve theming support in the Project Manager 2023-03-16 12:36:26 +01:00
Yuri Sizov 10420f91ba Reorganize ProjectManager code to be more idiomatic 2023-03-16 12:36:26 +01:00
clayjohn 45a26ff292 Disallow creating a project in the Home or Documents folder
Also don't prompt users to delete the project folder for now.

This is a temporary fix to ensure that users do not delete their entire home folders by mistake
2023-03-15 16:38:30 -07:00
Yuri Sizov 236cec0633 Add a custom icon for the project.godot file in the EditorFileDialog 2023-02-17 22:42:23 +01:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
trollodel c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
Rémi Verschelde e7ce3f539e Project Manager: Clarify text in project conversion dialogs
Let the cancel button grab focus to prevent any accident.

Make the full project conversion respect OS specific ok/cancel
positions.

Improve popup sizing and wrapping a bit.
2022-09-15 01:38:26 +02:00
kobewi 305d407dad Add option to convert project from Project Manager 2022-09-12 18:31:03 +02:00
Ryan Roden-Corrent 366871a3ff
Migrate project list to separate config file.
Storing the project/favorites list in the EditorSettings makes it
difficult to version-control your editor configuration, as the file will
continually change as you open new projects. It also means a
configuration can't be shared across machines, as they might not have
the same projects or file layout.

Now the project list is stored in $godot_data_dir/projects.cfg.
Each path is a section, which has a boolean favorite value.
If the new config does not exist, the editor attempts to migrate legacy
EditorSettings-based configuration to the new file.

Fixes godotengine/godot-proposals#1637.
2022-08-07 07:46:52 -04:00
FireForge b7b6b38453 Add icons to the Project Manager side buttons 2022-06-16 19:32:41 -05:00
Aaron Franke a53b7f0a9d
Tweaks to improve the Project Manager display at small sizes 2022-05-19 23:57:48 -05: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
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
kobewi 63de41b996 Improvements to files_dropped signal 2022-04-11 00:37:06 +02: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
Marios Staikopoulos 7af275e2d5 Fix lack of ProjectManager nullptr initializations
Initialize all pointers to nullptr, fixes a crash with asset_library
caused by uninitialized memory.
2022-03-29 11:17:24 -07: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
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
Aaron Record 259fdaf48e Make "Last Modified" the default sorting order for the Project Manager 2021-11-07 15:23:35 -07: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 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
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
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
Lightning_A 93f944b070 Add the ability to remove project contents from the remove project dialog 2021-03-20 15:34:37 -06: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
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
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
Aaron Franke 46fdca4fae
Allow creating projects in non-empty folders with a confirmation popup 2020-11-10 00:12:07 -05:00
Stijn Hinlopen 31fdb0fe46 Fix not saving new filter order 2020-08-29 15:39:34 +02: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
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
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
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
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
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
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
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 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
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
Tomasz Chabora 39e5c510fc Properly sort projects by name 2019-06-18 15:51:58 +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
Nils ANDRÉ-CHANG a156b7976d Fix Segmentation fault and reduce memory consumption 2019-05-26 20:32:09 +01: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
Kārlis Seņko bb3429c1c5 Fix project opening while filter is applied.
Fixes #25268
2019-02-19 00:06:20 +02:00