New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Save color palette as resources to reuse later #91604
base: master
Are you sure you want to change the base?
Conversation
99416da
to
8ad7da9
Compare
scene/gui/color_picker.cpp
Outdated
|
||
save_swatches = memnew(Button); | ||
save_swatches->set_flat(true); | ||
save_swatches->set_tooltip_text("Save the current color palette to reuse latter"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
save_swatches->set_tooltip_text("Save the current color palette to reuse latter"); | |
save_swatches->set_tooltip_text("Save the current color palette to reuse later"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also for translatable text you should use translation macros like TTR or RTR.
scene/gui/color_picker.cpp
Outdated
@@ -35,6 +35,7 @@ | |||
#include "core/math/color.h" | |||
#include "core/os/keyboard.h" | |||
#include "core/os/os.h" | |||
#include "editor/editor_node.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Must #ifdef for TOOLS_ENABLED. Though ideally, the saving and loading palette feature should also work when using the ColorPicker in a game/application project. Possibly with a boolean flag to enable or disable this feature.
This should use icons available at runtime, not editor icons, there are some appropriate ones available, and otherwise they should be added, this shouldn't depend on the editor |
7c37110
to
0839503
Compare
I approve of allowing saving the color pallete from a usability team perspective. |
Update:
@AThousandShips What do you mean when you say |
Icons available at runtime are those which aren't editor specific, meant in running projects not running the program itself sorry for confusion |
0839503
to
6084096
Compare
04ebe85
to
acdd5f8
Compare
Sorry for the annoying force push. I wasn't familiar with the TTR part. I need one more favor. I couldn't find the correct icon to use in the function |
If it isn't in the default theme But I think the normal folder icon is sufficient Gonna test this one probably tomorrow but code looks good, got some final remarks I'll add when I've tested it out |
I wonder if it should be possible to give a name to each color, and have the name displayed in a tooltip when hovering the color in the ColorPicker's swatch list. It's common for designers to assign names to colors to make slightly different colors easier to distinguish from each other, or even to refer to them in natural language. If I refer to "lime 800" from Tailwind's color palette, you can immediately know it's This could be left to a future PR, but we should make sure this feature can be implemented in the future without breaking compatibility (i.e. without changing the data structure in the resource). |
768da7a
to
10f2235
Compare
Tested and it works as expected, however I don't think the list of resources allowed makes sense, it should probably just limit to Edit: correction, it shouldn't even be that, it should be some binary format dedicated to this, it doesn't actually store a |
I suggest using ConfigFile to save palettes as opposed to FileAccess, so you have a text format that is friendly to version control. I'd also give them a custom file extension so they can be targeted more specifically, e.g. A similar approach is used for script editor syntax themes, which use a |
feca7e7
to
1e0de24
Compare
430cbd3
to
06316f1
Compare
06316f1
to
f9b68fc
Compare
scene/gui/color_picker.cpp
Outdated
@@ -35,9 +35,14 @@ | |||
#include "core/math/color.h" | |||
#include "core/os/keyboard.h" | |||
#include "core/os/os.h" | |||
#ifdef TOOLS_ENABLED | |||
#include "editor/editor_quick_open.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can't include editor code in scene/ files. You'll need to find a way to use quick open without the dependency (maybe it can be handled by parent node and a callback).
The quickloading option should not appear when running the app; it is only available in the editor. Quick loading is only supported in the editor. Therefore, if I add this option to the ColorPicker, users will be aware of its availability. However, when they use the ColorPicker in their games, they will notice that the quickloading feature is missing, causing a discrepancy in workflow. I am unsure whether to remove it entirely or implement a QuickOpenDialog that supports both the editor and in-game instances. Do you have any opinions on this? |
But it does appear and causes a crash. It's fine if it would be only in the editor. If you want to get rid of the editor dependency, you could add an unexposed method |
f9b68fc
to
b45baac
Compare
1b024dd
to
22775e5
Compare
Ops, I messed up git history again. |
1e28141
to
168b4f7
Compare
168b4f7
to
71a123a
Compare
71a123a
to
e7d39f0
Compare
Close godotengine/godot-proposals#7946
The lack of a palette library slows down development time because swatches contain many colors that may not match the mood an artist is trying to achieve. This can hinder their workflow as they search for the right color within a large set of mostly irrelevant options.
Untitled.video.-.Made.with.Clipchamp.mp4