Use BoolPrefWidget for alert options in Preferences dialog

This commit is contained in:
David Capello 2018-06-08 15:25:08 -03:00
parent b8445956ae
commit 7d96968ac3
4 changed files with 42 additions and 35 deletions

View File

@ -309,13 +309,20 @@
<!-- Alerts --> <!-- Alerts -->
<vbox id="section_alerts"> <vbox id="section_alerts">
<separator text="@.section_alerts" horizontal="true" /> <separator text="@.section_alerts" horizontal="true" />
<check id="file_format_doesnt_support_alert" text="@.file_format_doesnt_support_alert" /> <check id="file_format_doesnt_support_alert" text="@.file_format_doesnt_support_alert"
<check id="export_animation_in_sequence_alert" text="@.export_animation_in_sequence_alert" /> pref="save_file.show_file_format_doesnt_support_alert" />
<check id="overwrite_files_on_export_alert" text="@.overwrite_files_on_export_alert" /> <check id="export_animation_in_sequence_alert" text="@.export_animation_in_sequence_alert"
<check id="overwrite_files_on_export_sprite_sheet_alert" text="@.overwrite_files_on_export_sprite_sheet_alert" /> pref="save_file.show_export_animation_in_sequence_alert" />
<check id="gif_options_alert" text="@.gif_options_alert" /> <check id="overwrite_files_on_export_alert" text="@.overwrite_files_on_export_alert"
<check id="jpeg_options_alert" text="@.jpeg_options_alert" /> pref="export_file.show_overwrite_files_alert" />
<check id="advanced_mode_alert" text="@.advanced_mode_alert" /> <check id="overwrite_files_on_export_sprite_sheet_alert" text="@.overwrite_files_on_export_sprite_sheet_alert"
pref="sprite_sheet.show_overwrite_files_alert" />
<check id="gif_options_alert" text="@.gif_options_alert"
pref="gif.show_alert" />
<check id="jpeg_options_alert" text="@.jpeg_options_alert"
pref="jpeg.show_alert" />
<check id="advanced_mode_alert" text="@.advanced_mode_alert"
pref="advanced_mode.show_alert" />
<separator horizontal="true" /> <separator horizontal="true" />
<hbox> <hbox>
<hbox expansive="true" /> <hbox expansive="true" />

View File

@ -154,13 +154,6 @@ public:
clearRecentFiles()->Click.connect(base::Bind<void>(&OptionsWindow::onClearRecentFiles, this)); clearRecentFiles()->Click.connect(base::Bind<void>(&OptionsWindow::onClearRecentFiles, this));
// Alerts // Alerts
fileFormatDoesntSupportAlert()->setSelected(m_pref.saveFile.showFileFormatDoesntSupportAlert());
exportAnimationInSequenceAlert()->setSelected(m_pref.saveFile.showExportAnimationInSequenceAlert());
overwriteFilesOnExportAlert()->setSelected(m_pref.exportFile.showOverwriteFilesAlert());
overwriteFilesOnExportSpriteSheetAlert()->setSelected(m_pref.spriteSheet.showOverwriteFilesAlert());
gifOptionsAlert()->setSelected(m_pref.gif.showAlert());
jpegOptionsAlert()->setSelected(m_pref.jpeg.showAlert());
advancedModeAlert()->setSelected(m_pref.advancedMode.showAlert());
resetAlerts()->Click.connect(base::Bind<void>(&OptionsWindow::onResetAlerts, this)); resetAlerts()->Click.connect(base::Bind<void>(&OptionsWindow::onResetAlerts, this));
// Cursor // Cursor
@ -430,14 +423,6 @@ public:
warnings += "<<- " + Strings::alerts_restart_by_preferences_save_recovery_data_period(); warnings += "<<- " + Strings::alerts_restart_by_preferences_save_recovery_data_period();
} }
m_pref.saveFile.showFileFormatDoesntSupportAlert(fileFormatDoesntSupportAlert()->isSelected());
m_pref.saveFile.showExportAnimationInSequenceAlert(exportAnimationInSequenceAlert()->isSelected());
m_pref.exportFile.showOverwriteFilesAlert(overwriteFilesOnExportAlert()->isSelected());
m_pref.spriteSheet.showOverwriteFilesAlert(overwriteFilesOnExportSpriteSheetAlert()->isSelected());
m_pref.gif.showAlert(gifOptionsAlert()->isSelected());
m_pref.jpeg.showAlert(jpegOptionsAlert()->isSelected());
m_pref.advancedMode.showAlert(advancedModeAlert()->isSelected());
m_pref.editor.zoomFromCenterWithWheel(zoomFromCenterWithWheel()->isSelected()); m_pref.editor.zoomFromCenterWithWheel(zoomFromCenterWithWheel()->isSelected());
m_pref.editor.zoomFromCenterWithKeys(zoomFromCenterWithKeys()->isSelected()); m_pref.editor.zoomFromCenterWithKeys(zoomFromCenterWithKeys()->isSelected());
m_pref.editor.showScrollbars(showScrollbars()->isSelected()); m_pref.editor.showScrollbars(showScrollbars()->isSelected());
@ -642,13 +627,13 @@ private:
} }
void onResetAlerts() { void onResetAlerts() {
fileFormatDoesntSupportAlert()->setSelected(m_pref.saveFile.showFileFormatDoesntSupportAlert.defaultValue()); fileFormatDoesntSupportAlert()->resetWithDefaultValue();
exportAnimationInSequenceAlert()->setSelected(m_pref.saveFile.showExportAnimationInSequenceAlert.defaultValue()); exportAnimationInSequenceAlert()->resetWithDefaultValue();
overwriteFilesOnExportAlert()->setSelected(m_pref.exportFile.showOverwriteFilesAlert.defaultValue()); overwriteFilesOnExportAlert()->resetWithDefaultValue();
overwriteFilesOnExportSpriteSheetAlert()->setSelected(m_pref.spriteSheet.showOverwriteFilesAlert.defaultValue()); overwriteFilesOnExportSpriteSheetAlert()->resetWithDefaultValue();
gifOptionsAlert()->setSelected(m_pref.gif.showAlert.defaultValue()); gifOptionsAlert()->resetWithDefaultValue();
jpegOptionsAlert()->setSelected(m_pref.jpeg.showAlert.defaultValue()); jpegOptionsAlert()->resetWithDefaultValue();
advancedModeAlert()->setSelected(m_pref.advancedMode.showAlert.defaultValue()); advancedModeAlert()->resetWithDefaultValue();
} }
void onChangeBgScope() { void onChangeBgScope() {

View File

@ -50,6 +50,12 @@ public:
} }
} }
void resetWithDefaultValue() {
// Reset to default value in preferences
if (m_option)
this->setSelected(m_option->defaultValue());
}
protected: protected:
bool onProcessMessage(ui::Message* msg) override { bool onProcessMessage(ui::Message* msg) override {
if (msg->type() == kSavePreferencesMessage) { if (msg->type() == kSavePreferencesMessage) {

View File

@ -1,5 +1,5 @@
// Aseprite Code Generator // Aseprite Code Generator
// Copyright (c) 2014-2017 David Capello // Copyright (c) 2014-2018 David Capello
// //
// This file is released under the terms of the MIT license. // This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information. // Read LICENSE.txt for more information.
@ -47,7 +47,8 @@ static void collect_widgets_with_ids(TiXmlElement* elem, XmlElements& widgets)
} }
} }
static std::string convert_type(const std::string& name) static std::string convert_type(const std::string& name,
const bool hasPref)
{ {
static std::string parent; static std::string parent;
if (name != "item") if (name != "item")
@ -56,7 +57,12 @@ static std::string convert_type(const std::string& name)
if (name == "box") return "ui::Box"; if (name == "box") return "ui::Box";
if (name == "button") return "ui::Button"; if (name == "button") return "ui::Button";
if (name == "buttonset") return "app::ButtonSet"; if (name == "buttonset") return "app::ButtonSet";
if (name == "check") return "ui::CheckBox"; if (name == "check") {
if (hasPref)
return "BoolPrefWidget<ui::CheckBox>";
else
return "ui::CheckBox";
}
if (name == "colorpicker") return "app::ColorButton"; if (name == "colorpicker") return "app::ColorButton";
if (name == "combobox") return "ui::ComboBox"; if (name == "combobox") return "ui::ComboBox";
if (name == "dropdownbutton") return "app::DropDownButton"; if (name == "dropdownbutton") return "app::DropDownButton";
@ -102,7 +108,7 @@ void gen_ui_class(TiXmlDocument* doc,
std::string className = convert_xmlid_to_cppid(widgetId, true); std::string className = convert_xmlid_to_cppid(widgetId, true);
std::string fnUpper = base::string_to_upper(base::get_file_title(inputFn)); std::string fnUpper = base::string_to_upper(base::get_file_title(inputFn));
std::string widgetType = convert_type(elem->Value()); std::string widgetType = convert_type(elem->Value(), false);
std::cout std::cout
<< "#ifndef GENERATED_" << fnUpper << "_H_INCLUDED\n" << "#ifndef GENERATED_" << fnUpper << "_H_INCLUDED\n"
@ -111,6 +117,7 @@ void gen_ui_class(TiXmlDocument* doc,
<< "\n" << "\n"
<< "#include \"app/find_widget.h\"\n" << "#include \"app/find_widget.h\"\n"
<< "#include \"app/load_widget.h\"\n" << "#include \"app/load_widget.h\"\n"
<< "#include \"app/ui/pref_widget.h\"\n"
<< "#include \"ui/ui.h\"\n" << "#include \"ui/ui.h\"\n"
<< "\n" << "\n"
<< "namespace app {\n" << "namespace app {\n"
@ -149,8 +156,9 @@ void gen_ui_class(TiXmlDocument* doc,
<< "\n"; << "\n";
for (TiXmlElement* elem : widgets) { for (TiXmlElement* elem : widgets) {
std::string childType = convert_type(elem->Value());
const char* id = elem->Attribute("id"); const char* id = elem->Attribute("id");
const char* pref = elem->Attribute("pref");
std::string childType = convert_type(elem->Value(), (pref != nullptr));
std::string cppid = convert_xmlid_to_cppid(id, false); std::string cppid = convert_xmlid_to_cppid(id, false);
std::cout std::cout
<< " " << childType << "* " << cppid << "() const { return m_" << cppid << "; }\n"; << " " << childType << "* " << cppid << "() const { return m_" << cppid << "; }\n";
@ -161,8 +169,9 @@ void gen_ui_class(TiXmlDocument* doc,
<< " private:\n"; << " private:\n";
for (TiXmlElement* elem : widgets) { for (TiXmlElement* elem : widgets) {
std::string childType = convert_type(elem->Value());
const char* id = elem->Attribute("id"); const char* id = elem->Attribute("id");
const char* pref = elem->Attribute("pref");
std::string childType = convert_type(elem->Value(), (pref != nullptr));
std::string cppid = convert_xmlid_to_cppid(id, false); std::string cppid = convert_xmlid_to_cppid(id, false);
std::cout std::cout
<< " " << childType << "* m_" << cppid << ";\n"; << " " << childType << "* m_" << cppid << ";\n";