mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-17 08:43:11 +00:00
Add options to configure default extension in other commands (fix #1683)
Maybe too much configuration for my taste, but well, more configuration is good.
This commit is contained in:
parent
edc79dc886
commit
0429282967
@ -260,9 +260,12 @@
|
||||
</section>
|
||||
<section id="export_file">
|
||||
<option id="show_overwrite_files_alert" type="bool" default="true" />
|
||||
<option id="image_default_extension" type="std::string" default=""png"" />
|
||||
<option id="animation_default_extension" type="std::string" default=""gif"" />
|
||||
</section>
|
||||
<section id="sprite_sheet">
|
||||
<option id="show_overwrite_files_alert" type="bool" default="true" />
|
||||
<option id="default_extension" type="std::string" default=""png"" />
|
||||
</section>
|
||||
<section id="gif">
|
||||
<option id="show_alert" type="bool" default="true" />
|
||||
|
@ -856,7 +856,11 @@ show_full_path_tooltip = <<<END
|
||||
Uncheck this option if you would prefer to hide
|
||||
full path on UI (e.g. useful for live streaming)
|
||||
END
|
||||
default_extension = Default extension when saving files
|
||||
default_extension_for = Default extension for:
|
||||
save_default_extension = File > Save:
|
||||
export_image_default_extension = File > Export (one image):
|
||||
export_animation_default_extension = File > Export (animation):
|
||||
export_sprite_sheet_default_extension = File > Export Sprite Sheet:
|
||||
recent_files = Recent Items:
|
||||
recent_files_tooltip = Number of recent files and folders
|
||||
clear_recent_files = Clear
|
||||
|
@ -79,10 +79,22 @@
|
||||
<!-- Files -->
|
||||
<vbox id="section_files">
|
||||
<separator text="@.section_files" horizontal="true" />
|
||||
<hbox>
|
||||
<label text="@.default_extension" />
|
||||
|
||||
<label text="@.default_extension_for" />
|
||||
<grid columns="2">
|
||||
<label text="@.save_default_extension" />
|
||||
<combobox id="default_extension" />
|
||||
</hbox>
|
||||
|
||||
<label text="@.export_image_default_extension" />
|
||||
<combobox id="export_image_default_extension" />
|
||||
|
||||
<label text="@.export_animation_default_extension" />
|
||||
<combobox id="export_animation_default_extension" />
|
||||
|
||||
<label text="@.export_sprite_sheet_default_extension" />
|
||||
<combobox id="export_sprite_sheet_default_extension" />
|
||||
</grid>
|
||||
|
||||
<grid columns="2">
|
||||
<label text="@.recent_files" />
|
||||
<hbox>
|
||||
|
@ -246,10 +246,12 @@ public:
|
||||
|
||||
if (m_filename.empty() ||
|
||||
m_filename == kSpecifiedFilename) {
|
||||
if (base::utf8_icmp(base::get_file_extension(site.document()->filename()), "png") == 0)
|
||||
m_filename = base + "-sheet.png";
|
||||
std::string defExt = Preferences::instance().spriteSheet.defaultExtension();
|
||||
|
||||
if (base::utf8_icmp(base::get_file_extension(site.document()->filename()), defExt) == 0)
|
||||
m_filename = base + "-sheet." + defExt;
|
||||
else
|
||||
m_filename = base + ".png";
|
||||
m_filename = base + "." + defExt;
|
||||
}
|
||||
|
||||
if (m_dataFilename.empty() ||
|
||||
|
@ -143,15 +143,10 @@ public:
|
||||
sectionListbox()->Change.connect(base::Bind<void>(&OptionsWindow::onChangeSection, this));
|
||||
|
||||
// Default extension to save files
|
||||
{
|
||||
std::string defExt = m_pref.saveFile.defaultExtension();
|
||||
base::paths exts = get_writable_extensions();
|
||||
for (const auto& e : exts) {
|
||||
int index = defaultExtension()->addItem(e);
|
||||
if (base::utf8_icmp(e, defExt) == 0)
|
||||
defaultExtension()->setSelectedItemIndex(index);
|
||||
}
|
||||
}
|
||||
fillExtensionsCombobox(defaultExtension(), m_pref.saveFile.defaultExtension());
|
||||
fillExtensionsCombobox(exportImageDefaultExtension(), m_pref.exportFile.imageDefaultExtension());
|
||||
fillExtensionsCombobox(exportAnimationDefaultExtension(), m_pref.exportFile.animationDefaultExtension());
|
||||
fillExtensionsCombobox(exportSpriteSheetDefaultExtension(), m_pref.spriteSheet.defaultExtension());
|
||||
|
||||
// Number of recent items
|
||||
recentFiles()->setValue(m_pref.general.recentItems());
|
||||
@ -395,10 +390,10 @@ public:
|
||||
m_pref.general.rewindOnStop(rewindOnStop()->isSelected());
|
||||
m_globPref.timeline.firstFrame(firstFrame()->textInt());
|
||||
m_pref.general.showFullPath(showFullPath()->isSelected());
|
||||
{
|
||||
Widget* defExt = defaultExtension()->getSelectedItem();
|
||||
m_pref.saveFile.defaultExtension(defExt ? defExt->text(): std::string());
|
||||
}
|
||||
m_pref.saveFile.defaultExtension(getExtension(defaultExtension()));
|
||||
m_pref.exportFile.imageDefaultExtension(getExtension(exportImageDefaultExtension()));
|
||||
m_pref.exportFile.animationDefaultExtension(getExtension(exportAnimationDefaultExtension()));
|
||||
m_pref.spriteSheet.defaultExtension(getExtension(exportSpriteSheetDefaultExtension()));
|
||||
{
|
||||
const int limit = recentFiles()->getValue();
|
||||
m_pref.general.recentItems(limit);
|
||||
@ -546,6 +541,22 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
void fillExtensionsCombobox(ui::ComboBox* combobox,
|
||||
const std::string& defExt) {
|
||||
base::paths exts = get_writable_extensions();
|
||||
for (const auto& e : exts) {
|
||||
int index = combobox->addItem(e);
|
||||
if (base::utf8_icmp(e, defExt) == 0)
|
||||
combobox->setSelectedItemIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
std::string getExtension(ui::ComboBox* combobox) {
|
||||
Widget* defExt = combobox->getSelectedItem();
|
||||
ASSERT(defExt);
|
||||
return (defExt ? defExt->text(): std::string());
|
||||
}
|
||||
|
||||
void selectScalingItems() {
|
||||
// Screen/UI Scale
|
||||
screenScale()->setSelectedItemIndex(
|
||||
|
@ -29,6 +29,8 @@ ExportFileWindow::ExportFileWindow(const Document* doc)
|
||||
, m_docPref(Preferences::instance().document(doc))
|
||||
, m_preferredResize(1)
|
||||
{
|
||||
auto& pref = Preferences::instance();
|
||||
|
||||
// Is a default output filename in the preferences?
|
||||
if (!m_docPref.saveCopy.filename().empty()) {
|
||||
setOutputFilename(m_docPref.saveCopy.filename());
|
||||
@ -36,7 +38,8 @@ ExportFileWindow::ExportFileWindow(const Document* doc)
|
||||
else {
|
||||
std::string newFn = base::replace_extension(
|
||||
doc->filename(),
|
||||
doc->sprite()->totalFrames() > 1 ? "gif": "png");
|
||||
(doc->sprite()->totalFrames() > 1 ? pref.exportFile.animationDefaultExtension():
|
||||
pref.exportFile.imageDefaultExtension()));
|
||||
if (newFn == doc->filename()) {
|
||||
newFn = base::join_path(
|
||||
base::get_file_path(newFn),
|
||||
|
Loading…
x
Reference in New Issue
Block a user