diff --git a/data/en.mse-locale/locale b/data/en.mse-locale/locale index d3d8b077..a6f895f3 100644 --- a/data/en.mse-locale/locale +++ b/data/en.mse-locale/locale @@ -619,7 +619,8 @@ button: check now: Check &Now always: Always if internet connection exists: If internet connection exists - never: Never + never: Never + internal image extension: Store images internally with extension # Column select move up: Move &Up diff --git a/src/data/settings.cpp b/src/data/settings.cpp index 6e77441b..12aeebae 100644 --- a/src/data/settings.cpp +++ b/src/data/settings.cpp @@ -172,7 +172,8 @@ Settings::Settings() , symbol_grid (true) , symbol_grid_snap (false) , print_layout (LAYOUT_NO_SPACE) - , internal_scale (1.0) + , internal_scale (1.0) + , internal_image_extension(true) #if USE_OLD_STYLE_UPDATE_CHECKER , updates_url (_("http://magicseteditor.sourceforge.net/updates")) #endif @@ -259,7 +260,8 @@ IMPLEMENT_REFLECTION_NO_SCRIPT(Settings) { REFLECT(default_game); REFLECT(print_layout); REFLECT(apprentice_location); - REFLECT(internal_scale); + REFLECT(internal_scale); + REFLECT(internal_image_extension); #if USE_OLD_STYLE_UPDATE_CHECKER REFLECT(updates_url); #else diff --git a/src/data/settings.hpp b/src/data/settings.hpp index 2ced6e4b..7d022df0 100644 --- a/src/data/settings.hpp +++ b/src/data/settings.hpp @@ -195,6 +195,7 @@ public: // --------------------------------------------------- : Internal settings double internal_scale; + bool internal_image_extension; // --------------------------------------------------- : Update checking #if USE_OLD_STYLE_UPDATE_CHECKER diff --git a/src/gui/preferences_window.cpp b/src/gui/preferences_window.cpp index 3ede27bb..e50d6681 100644 --- a/src/gui/preferences_window.cpp +++ b/src/gui/preferences_window.cpp @@ -75,6 +75,8 @@ public: private: DECLARE_EVENT_TABLE(); + wxCheckBox* internal_image_extension; + wxComboBox* internal_scale; int internal_scale_int; @@ -313,8 +315,11 @@ END_EVENT_TABLE () // ----------------------------------------------------------------------------- : Preferences page : internal InternalPreferencesPage::InternalPreferencesPage(Window* parent) : PreferencesPage(parent) { + internal_image_extension = new wxCheckBox(this, wxID_ANY, _BUTTON_("internal image extension")); internal_scale = new wxComboBox(this, ID_INTERNAL_SCALE); + internal_image_extension->SetValue(settings.internal_image_extension); + internal_scale_int = static_cast(settings.internal_scale * 100); internal_scale->SetValue(String::Format(_("%d%%"), internal_scale_int)); @@ -325,19 +330,22 @@ InternalPreferencesPage::InternalPreferencesPage(Window* parent) : PreferencesPa wxSizer* s = new wxBoxSizer(wxVERTICAL); wxSizer* s2 = new wxStaticBoxSizer(wxVERTICAL, this, _LABEL_("storage")); - wxSizer* s3 = new wxBoxSizer(wxHORIZONTAL); - s3->Add(new wxStaticText(this, wxID_ANY, _LABEL_("scale")), 0, wxALL & ~wxLEFT, 4); - s3->AddSpacer(2); - s3->Add(internal_scale); - s3->Add(new wxStaticText(this, wxID_ANY, _LABEL_("percent of normal")), 1, wxALL & ~wxRIGHT, 4); - s2->Add(s3); - s2->Add(new wxStaticText(this, wxID_ANY, _LABEL_("internal scale desc")), 0, wxALL & ~wxLEFT, 4); + wxSizer* s3 = new wxBoxSizer(wxHORIZONTAL); + s3->Add(new wxStaticText(this, wxID_ANY, _LABEL_("scale")), 0, wxALL & ~wxLEFT, 4); + s3->AddSpacer(2); + s3->Add(internal_scale); + s3->Add(new wxStaticText(this, wxID_ANY, _LABEL_("percent of normal")), 1, wxALL & ~wxRIGHT, 4); + s2->Add(s3); + s2->Add(new wxStaticText(this, wxID_ANY, _LABEL_("internal scale desc")), 0, wxALL & ~wxLEFT, 4); + s2->Add(internal_image_extension, 0, wxEXPAND | wxALL, 4); s->Add(s2, 0, wxEXPAND | wxALL, 8); s->SetSizeHints(this); SetSizer(s); } void InternalPreferencesPage::store() { + settings.internal_image_extension = internal_image_extension->GetValue(); + updateInternalScale(); settings.internal_scale = internal_scale_int / 100.0; } @@ -356,7 +364,7 @@ void InternalPreferencesPage::updateInternalScale() { } BEGIN_EVENT_TABLE(InternalPreferencesPage, wxPanel) -EVT_COMBOBOX(ID_INTERNAL_SCALE, InternalPreferencesPage::onInternalScaleChange) + EVT_COMBOBOX(ID_INTERNAL_SCALE, InternalPreferencesPage::onInternalScaleChange) END_EVENT_TABLE() // ----------------------------------------------------------------------------- : Preferences page : directories diff --git a/src/gui/value/image.cpp b/src/gui/value/image.cpp index 21399a05..2ba17163 100644 --- a/src/gui/value/image.cpp +++ b/src/gui/value/image.cpp @@ -49,7 +49,7 @@ void ImageValueEditor::sliceImage(const Image& image) { // clicked ok? if (s.ShowModal() == wxID_OK) { // store the image into the set - LocalFileName new_image_file = getLocalPackage().newFileName(field().name,_(".png")); // a new unique name in the package + LocalFileName new_image_file = getLocalPackage().newFileName(field().name, settings.internal_image_extension ? _(".png") : _("")); // a new unique name in the package Image img = s.getImage(); img.SaveFile(getLocalPackage().nameOut(new_image_file), wxBITMAP_TYPE_PNG); // always use PNG images, see #69. Disk space is cheap anyway. addAction(value_action(valueP(), new_image_file));