diff --git a/resources/localization/uk/Slic3rPE.mo b/resources/localization/uk/Slic3rPE.mo index 56af728d6..08bf555b5 100644 Binary files a/resources/localization/uk/Slic3rPE.mo and b/resources/localization/uk/Slic3rPE.mo differ diff --git a/resources/localization/uk/Slic3rPE_uk.po b/resources/localization/uk/Slic3rPE_uk.po index 9db2b919a..7880453bb 100644 --- a/resources/localization/uk/Slic3rPE_uk.po +++ b/resources/localization/uk/Slic3rPE_uk.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-01-17 13:39+0100\n" -"PO-Revision-Date: 2019-01-21 11:25+0100\n" +"PO-Revision-Date: 2019-02-19 14:42+0100\n" "Last-Translator: Oleksandra Iushchenko \n" "Language-Team: \n" "Language: uk\n" @@ -624,48 +624,48 @@ msgstr "" #: src/slic3r/GUI/GLGizmo.cpp:2207 msgid "Left mouse click - add point" -msgstr "" +msgstr "Ліва кнопка миші - додати точку" #: src/slic3r/GUI/GLGizmo.cpp:2208 msgid "Right mouse click - remove point" -msgstr "" +msgstr "Права кнопка миші - видалити точку" #: src/slic3r/GUI/GLGizmo.cpp:2211 msgid "Generate points automatically" -msgstr "" +msgstr "Генерувати точки автоматично" #: src/slic3r/GUI/GLGizmo.cpp:2212 msgid "Remove all points" -msgstr "" +msgstr "Видалити всі точки" #: src/slic3r/GUI/GLGizmo.cpp:2245 msgid "SLA Support Points" -msgstr "" +msgstr "Точки SLA підтримки" #: src/slic3r/GUI/GLGizmo.cpp:2268 src/slic3r/GUI/GLGizmo.cpp:2468 msgid "Rotate lower part upwards" -msgstr "" +msgstr "Повернути нижню частину вгору" #: src/slic3r/GUI/GLGizmo.cpp:2269 src/slic3r/GUI/GLGizmo.cpp:2470 msgid "Perform cut" -msgstr "" +msgstr "Виконати розріз" #: src/slic3r/GUI/GLGizmo.cpp:2276 msgid "Cut object:" -msgstr "" +msgstr "Розрізати об'єкт:" #: src/slic3r/GUI/GLGizmo.cpp:2356 src/slic3r/GUI/GLGizmo.cpp:2461 #: src/libslic3r/PrintConfig.cpp:3016 msgid "Cut" -msgstr "" +msgstr "Розрізати" #: src/slic3r/GUI/GLGizmo.cpp:2466 msgid "Keep upper part" -msgstr "" +msgstr "Залишити верхню частину" #: src/slic3r/GUI/GLGizmo.cpp:2467 msgid "Keep lower part" -msgstr "" +msgstr "Залишити нижню частину" #: src/slic3r/GUI/GUI.cpp:242 msgid "Notice" @@ -5636,7 +5636,7 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:3017 msgid "Cut model at the given Z." -msgstr "" +msgstr "Розрізати модель за заданим Z." #: src/libslic3r/PrintConfig.cpp:3022 msgid "Dont arrange" diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 1c67e542a..dc82d1a39 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -669,6 +669,7 @@ void Tab::load_config(const DynamicPrintConfig& config) bool modified = 0; for(auto opt_key : m_config->diff(config)) { m_config->set_key_value(opt_key, config.option(opt_key)->clone()); + m_dirty_options.emplace(opt_key); modified = 1; } if (modified) { @@ -751,17 +752,7 @@ void Tab::load_key_value(const std::string& opt_key, const boost::any& value, bo void Tab::on_value_change(const std::string& opt_key, const boost::any& value) { - wxCommandEvent event(EVT_TAB_VALUE_CHANGED); - event.SetEventObject(this); - event.SetString(opt_key); - if (opt_key == "extruders_count") - { - int val = boost::any_cast(value); - event.SetInt(val); - } - - wxPostEvent(this, event); - + m_dirty_options.erase(opt_key); ConfigOptionsGroup* og_freq_chng_params = wxGetApp().sidebar().og_freq_chng_params(supports_printer_technology(ptFFF)); if (opt_key == "fill_density" || opt_key == "supports_enable" || opt_key == "pad_enable") @@ -788,6 +779,21 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) update_wiping_button_visibility(); update(); + + // Post event to the Plater after updating of the all dirty options + // It helps to avoid needless schedule_background_processing + if (update_completed()) { + wxCommandEvent event(EVT_TAB_VALUE_CHANGED); + event.SetEventObject(this); + event.SetString(opt_key); + if (opt_key == "extruders_count") + { + const int val = boost::any_cast(value); + event.SetInt(val); + } + + wxPostEvent(this, event); + } } // Show/hide the 'purging volumes' button @@ -1163,8 +1169,8 @@ void TabPrint::update() // KillFocus() for the wxSpinCtrl use CallAfter function. So, // to except the duplicate call of the update() after dialog->ShowModal(), // let check if this process is already started. - if (is_msg_dlg_already_exist) - return; +// if (is_msg_dlg_already_exist) // ! It looks like a fixed problem after start to using of a m_dirty_options +// return; // ! TODO Let delete this part of code after a common aplication testing Freeze(); @@ -1181,7 +1187,7 @@ void TabPrint::update() "- no ensure_vertical_shell_thickness\n" "\nShall I adjust those settings in order to enable Spiral Vase?")); auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Spiral Vase")), wxICON_WARNING | wxYES | wxNO); - is_msg_dlg_already_exist = true; +// is_msg_dlg_already_exist = true; DynamicPrintConfig new_conf = *m_config; if (dialog->ShowModal() == wxID_YES) { new_conf.set_key_value("perimeters", new ConfigOptionInt(1)); @@ -1197,7 +1203,7 @@ void TabPrint::update() } load_config(new_conf); on_value_change("fill_density", fill_density); - is_msg_dlg_already_exist = false; +// is_msg_dlg_already_exist = false; } if (m_config->opt_bool("wipe_tower") && m_config->opt_bool("support_material") && diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index c9802d9cf..135420edb 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -204,6 +204,7 @@ protected: void set_type(); int m_em_unit; + std::set m_dirty_options = {}; public: PresetBundle* m_preset_bundle; @@ -283,6 +284,7 @@ protected: void update_frequently_changed_parameters(); void fill_icon_descriptions(); void set_tooltips_text(); + bool update_completed() const { return m_dirty_options.empty(); } }; class TabPrint : public Tab