Commit Graph

229 Commits

Author SHA1 Message Date
Hugo Locurcio
04a930d9a6
Disable multi-window buttons instead of hiding them when support is unavailable
This is more explicit as for why this functionality isn't available
depending on editor settings and current platform.

This also exposes a `EditorInterface.is_multi_window_enabled()` method
so that editor plugins can easily query whether the editor is able and
expected to create multiple windows.
2024-01-27 19:38:39 +01:00
Yuri Sizov
95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
kobewi
0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Rémi Verschelde
5eb22a317d
Merge pull request #83577 from DennisManaa/fix-translation-for-item-list
Add automatic translation of items to ItemList
2024-01-04 16:39:36 +01:00
Rémi Verschelde
6c390b620d
Merge pull request #84445 from Rubonnek/add-const-references-clang-tidy
Add const references detected by clang-tidy
2024-01-04 14:25:33 +01:00
kobewi
779d731940 Handle built-in shaders when closing scene 2024-01-02 16:00:11 +01:00
Wilson E. Alvarez
a3cb1b096f
Add const references detected by clang-tidy 2023-12-16 13:36:44 -05:00
Yuri Sizov
0f5a14c397 Make script/shader editor save shortcuts unique again 2023-11-15 14:10:12 +01:00
Rémi Verschelde
e5bacbc471
Merge pull request #84628 from KoBeWi/no_meta_only_path
Don't store shader edit path in metadata
2023-11-08 19:18:55 +01:00
kobewi
9c810ef061 Don't store shader edit path in metadata 2023-11-08 19:14:16 +01:00
Yuri Sizov
e7dba3b064 Correctly set up shortcut context in the shader editor 2023-11-08 13:07:31 +01:00
jsjtxietian
775adc0a6d Add save shortcut for text shader editor to prevent it propagated to scene
when hit ctrl s in the shader editor
2023-10-28 00:53:03 +08:00
DennisManaa
1a1c542836 Implement automatic translation for ItemList 2023-10-23 10:14:08 +02:00
jsjtxietian
15e66ccb9b Close shader in Shader Editor tab when deleting shader file in FileSystem panel 2023-10-16 18:50:56 +08:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
kobewi
b883f32188 Check for unsaved changes when closing a scene 2023-07-18 14:27:56 +02:00
kobewi
000471ee56 Add unsaved status for script and shader editors 2023-07-18 14:18:36 +02:00
Yuri Sizov
8cfbc6bda2 Revert "Remember only permanent bottom tabs"
This reverts commit 5dde57e958.
2023-06-23 15:23:36 +02:00
Rémi Verschelde
9ab388c146
Merge pull request #78609 from KoBeWi/—GodotEngine
Unify window title format
2023-06-23 12:36:44 +02:00
kobewi
44bec97d5e Unify window title format 2023-06-23 12:21:56 +02:00
kobewi
5dde57e958 Remember only permanent bottom tabs 2023-06-23 10:53:39 +02:00
bitsawer
993e671dc0 Fix shader editor crash 2023-05-26 07:01:23 +03:00
Hendrik Brucker
dc46163b12 Improve editor state persistence 2023-05-11 04:17:03 +02:00
trollodel
b4d6b47c17 Add multi window code and shader editors 2023-05-10 09:14:21 +02:00
kobewi
aaf02ec04a Close built-in shaders when closing scene 2023-04-09 22:10:43 +02:00
Yuri Sizov
f08ffdc372
Merge pull request #74869 from fahadshihab/master
Added drag and drop support for shader include files in shader editor
2023-03-15 16:17:50 +01:00
Fahad Shihab
e5601b517e Added drag and drop support for shaderinclude
Dragging and dropping now works for shader include file.
2023-03-15 19:24:35 +05:30
Andreas Raddau
1566b402c1 Shader editor trims trailing whitespace if set in editor settings 2023-03-09 17:27:23 +01:00
Rémi Verschelde
bda87300e8
Merge pull request #71770 from KoBeWi/better_editing_or_something
Rework EditorPlugin editing logic
2023-01-22 11:07:39 +01:00
kobewi
4ae168eb04 Rework EditorPlugin editing logic 2023-01-22 00:20:45 +01:00
kobewi
615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
Rémi Verschelde
bcaf048f33
Merge pull request #71379 from KoBeWi/destruction_of_compatibility_function
Remove set_drag_forwarding_compat()
2023-01-18 17:40:13 +01:00
kobewi
b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +01:00
kobewi
59ea36b87c Remove set_drag_forwarding_compat() 2023-01-14 15:16:51 +01:00
Juan Linietsky
e6a4debede Change set_drag_forwarding() to use callables.
* This solution is much cleaner than the one in 3.x thanks to the use of callables.
* Works without issues in any language (no need to worry about camel or snake case).
* Editor code uses a compatibility function (too much work to redo).

Fixes #59899
2023-01-10 14:09:24 +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
kobewi
15831e381b Unify usage of undo_redo in editor 2022-11-02 17:51:58 +01:00
Kasper Sauramo
bedbb2e893 add explicit editor save tagging when saving 2022-10-04 11:49:32 +03:00
Rémi Verschelde
498844f687 Merge pull request #65276 from aaronfranke/shader
Separate TextShaderEditor and ShaderEditorPlugin into different files
2022-10-03 09:24:51 +02:00
Aaron Franke
252963166d
Separate TextShaderEditor and ShaderEditorPlugin into different files 2022-10-02 02:19:38 -05:00
Aaron Franke
38cb2f8afc
Rename ShaderEditor that edits text shaders to TextShaderEditor 2022-10-02 02:18:46 -05:00
Anutrix
119e1a2937 Fixed shader editor when no files are currently in shader list 2022-10-01 00:33:13 +05:30
VolTer
ded10214bf Rename Indent Left/Right to Indent/Dedent 2022-09-29 14:42:46 +02:00
Yuri Rubinsky
344aa610e3 Add defines to completion list in shaders 2022-09-26 16:04:19 +03:00
jeffres
b9d9528c45 Close shader under cursor when middle mouse clicking in editor list
Previously middle mouse clicking resulted in the currently selected
file to be closed, which is not the behavior commonly expected.
2022-09-18 13:25:13 +02:00
jeffres
1c98f03784 Fix selected shader file not being highlighted in shader editor list 2022-09-17 17:49:51 +02:00
Yuri Rubinsky
8191b3c110 Rename uniform to parameter across the engine 2022-09-01 11:42:57 +03:00
Aaron Franke
10a56981dc
Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
Rémi Verschelde
fd6453c45e Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED"
This reverts commit 4b817a565c.

Fixes #64988.
Fixes #64997.

This caused several regressions (#64988, #64997,
https://github.com/godotengine/godot/issues/64997#issuecomment-1229970605)
which point at a flaw in the current logic:

- `Control::NOTIFICATION_ENTER_TREE` triggers a *deferred* notification with
  `NOTIFCATION_THEME_CHANGED` as introduced in #62845.
- Some classes use their `THEME_CHANGED` to cache theme items in
  member variables (e.g. `style_normal`, etc.), and use those member
  variables in `ENTER_TREE`, `READY`, `DRAW`, etc. Since the `THEME_CHANGE`
  notification is now deferred, they end up accessing invalid state and this
  can lead to not applying theme properly (e.g. for EditorHelp) or crashing
  (e.g. for EditorLog or CodeEdit).

So we need to go back to the drawing board and see if `THEME_CHANGED` can be
called earlier so that the previous logic still works?

Or can we refactor all engine code to make sure that:
- `ENTER_TREE` and similar do not depend on theme properties cached in member
  variables.
- Or `THEME_CHANGE` does trigger a general UI update to make sure that any
  bad theme handling in `ENTER_TREE` and co. gets fixed when `THEME_CHANGE`
  does arrive for the first time. But that means having a temporary invalid
  (and possibly still crashing) state, and doing some computations twice
  which might be heavy (e.g. `EditorHelp::_update_doc()`).
2022-08-29 11:11:29 +02:00