mirror of https://github.com/aseprite/aseprite.git
				
				
				
			Add palette option to save as preset
This works the same as saving a palette normally, but opens the file dialogue to the default palette preset directory.
This commit is contained in:
		
							parent
							
								
									21e893162d
								
							
						
					
					
						commit
						98a0bcb2d7
					
				|  | @ -1080,6 +1080,9 @@ | ||||||
|       <separator /> |       <separator /> | ||||||
|       <item command="LoadPalette" text="@.load_palette" /> |       <item command="LoadPalette" text="@.load_palette" /> | ||||||
|       <item command="SavePalette" text="@.save_palette" /> |       <item command="SavePalette" text="@.save_palette" /> | ||||||
|  |       <item command="SavePalette" text="@.save_palette_as_preset"> | ||||||
|  |         <param name="save_as_preset" value="true" /> | ||||||
|  |       </item> | ||||||
|       <item command="LoadPalette" text="@.load_default_palette"> |       <item command="LoadPalette" text="@.load_default_palette"> | ||||||
|         <param name="preset" value="default" /> |         <param name="preset" value="default" /> | ||||||
|       </item> |       </item> | ||||||
|  |  | ||||||
|  | @ -1318,6 +1318,7 @@ ryb_color_wheel = RYB Color Wheel | ||||||
| normal_map_color_wheel = Normal Map Color Wheel | normal_map_color_wheel = Normal Map Color Wheel | ||||||
| load_palette = L&oad Palette | load_palette = L&oad Palette | ||||||
| save_palette = S&ave Palette | save_palette = S&ave Palette | ||||||
|  | save_palette_as_preset = Save Palette as Preset | ||||||
| load_default_palette = Load Default Palette | load_default_palette = Load Default Palette | ||||||
| save_as_default_palette = Save as Default Palette | save_as_default_palette = Save as Default Palette | ||||||
| create_palette_from_current_sprite = Create Palette from Current Sprite | create_palette_from_current_sprite = Create Palette from Current Sprite | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ protected: | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|   std::string m_preset; |   std::string m_preset; | ||||||
|  |   bool m_save_as_preset; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| SavePaletteCommand::SavePaletteCommand() | SavePaletteCommand::SavePaletteCommand() | ||||||
|  | @ -45,6 +46,7 @@ SavePaletteCommand::SavePaletteCommand() | ||||||
| void SavePaletteCommand::onLoadParams(const Params& params) | void SavePaletteCommand::onLoadParams(const Params& params) | ||||||
| { | { | ||||||
|   m_preset = params.get("preset"); |   m_preset = params.get("preset"); | ||||||
|  |   m_save_as_preset = params.get("save_as_preset") == "true"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void SavePaletteCommand::onExecute(Context* context) | void SavePaletteCommand::onExecute(Context* context) | ||||||
|  | @ -58,8 +60,9 @@ void SavePaletteCommand::onExecute(Context* context) | ||||||
|   else { |   else { | ||||||
|     base::paths exts = get_writable_palette_extensions(); |     base::paths exts = get_writable_palette_extensions(); | ||||||
|     base::paths selFilename; |     base::paths selFilename; | ||||||
|  |     std::string initialPath = m_save_as_preset ? get_preset_palettes_dir() : ""; | ||||||
|     if (!app::show_file_selector( |     if (!app::show_file_selector( | ||||||
|           "Save Palette", "", exts, |           "Save Palette", initialPath, exts, | ||||||
|           FileSelectorType::Save, selFilename)) |           FileSelectorType::Save, selFilename)) | ||||||
|       return; |       return; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -161,12 +161,7 @@ bool set_current_palette(const Palette *_palette, bool forced) | ||||||
| std::string get_preset_palette_filename(const std::string& preset, | std::string get_preset_palette_filename(const std::string& preset, | ||||||
|                                         const std::string& dot_extension) |                                         const std::string& dot_extension) | ||||||
| { | { | ||||||
|   ResourceFinder rf; |   std::string palettesDir = get_preset_palettes_dir(); | ||||||
|   rf.includeUserDir(base::join_path("palettes", ".").c_str()); |  | ||||||
|   std::string palettesDir = rf.getFirstOrCreateDefault(); |  | ||||||
| 
 |  | ||||||
|   if (!base::is_directory(palettesDir)) |  | ||||||
|     base::make_directory(palettesDir); |  | ||||||
| 
 | 
 | ||||||
|   return base::join_path(palettesDir, preset + dot_extension); |   return base::join_path(palettesDir, preset + dot_extension); | ||||||
| } | } | ||||||
|  | @ -176,4 +171,16 @@ std::string get_default_palette_preset_name() | ||||||
|   return "default"; |   return "default"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | std::string get_preset_palettes_dir() | ||||||
|  | { | ||||||
|  |   ResourceFinder rf; | ||||||
|  |   rf.includeUserDir(base::join_path("palettes", ".").c_str()); | ||||||
|  |   std::string palettesDir = rf.getFirstOrCreateDefault(); | ||||||
|  | 
 | ||||||
|  |   if (!base::is_directory(palettesDir)) | ||||||
|  |     base::make_directory(palettesDir); | ||||||
|  | 
 | ||||||
|  |   return palettesDir; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| } // namespace app
 | } // namespace app
 | ||||||
|  |  | ||||||
|  | @ -33,6 +33,7 @@ namespace app { | ||||||
|   std::string get_preset_palette_filename(const std::string& preset, |   std::string get_preset_palette_filename(const std::string& preset, | ||||||
|                                           const std::string& dot_extension); |                                           const std::string& dot_extension); | ||||||
|   std::string get_default_palette_preset_name(); |   std::string get_default_palette_preset_name(); | ||||||
|  |   std::string get_preset_palettes_dir(); | ||||||
| 
 | 
 | ||||||
| } // namespace app
 | } // namespace app
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue