From 8b5561aec7e6e2411396b3bf6b67cb333319687f Mon Sep 17 00:00:00 2001
From: Lukas Matena <lukasmatena@seznam.cz>
Date: Tue, 29 Oct 2019 10:40:34 +0100
Subject: [PATCH] Fixed several warnings

---
 src/libslic3r/LayerRegion.cpp               | 1 -
 src/libslic3r/PolygonTrimmer.cpp            | 1 -
 src/slic3r/Config/Version.cpp               | 5 ++---
 src/slic3r/GUI/BackgroundSlicingProcess.cpp | 1 +
 src/slic3r/GUI/GLCanvas3D.cpp               | 2 +-
 src/slic3r/GUI/GUI_App.hpp                  | 9 ++++-----
 src/slic3r/GUI/GUI_ObjectList.cpp           | 4 ++--
 src/slic3r/GUI/OptionsGroup.cpp             | 2 +-
 src/slic3r/GUI/Plater.cpp                   | 4 ++--
 src/slic3r/GUI/wxExtensions.cpp             | 2 +-
 10 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp
index 658bcf709..35acaf998 100644
--- a/src/libslic3r/LayerRegion.cpp
+++ b/src/libslic3r/LayerRegion.cpp
@@ -88,7 +88,6 @@ void LayerRegion::make_perimeters(const SurfaceCollection &slices, SurfaceCollec
 
 void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Polygons *lower_layer_covered)
 {
-    const Surfaces &surfaces   = this->fill_surfaces.surfaces;
     const bool      has_infill = this->region()->config().fill_density.value > 0.;
     const float		margin 	   = float(scale_(EXTERNAL_INFILL_MARGIN));
 
diff --git a/src/libslic3r/PolygonTrimmer.cpp b/src/libslic3r/PolygonTrimmer.cpp
index 3e3c9b498..a2779b666 100644
--- a/src/libslic3r/PolygonTrimmer.cpp
+++ b/src/libslic3r/PolygonTrimmer.cpp
@@ -12,7 +12,6 @@ TrimmedLoop trim_loop(const Polygon &loop, const EdgeGrid::Grid &grid)
 	TrimmedLoop out;
 
 	if (loop.size() >= 2) {
-		size_t cnt = loop.points.size();
 
 		struct Visitor {
 			Visitor(const EdgeGrid::Grid &grid, const Slic3r::Point *pt_prev, const Slic3r::Point *pt_this) : grid(grid), pt_prev(pt_prev), pt_this(pt_this) {}
diff --git a/src/slic3r/Config/Version.cpp b/src/slic3r/Config/Version.cpp
index 3f8f960f1..da522dd5e 100644
--- a/src/slic3r/Config/Version.cpp
+++ b/src/slic3r/Config/Version.cpp
@@ -235,9 +235,9 @@ size_t Index::load(const boost::filesystem::path &path)
 			value = left_trim(value + 1);
 		*key_end = 0;
     	boost::optional<Semver> semver;
-    	if (maybe_semver)
+        if (maybe_semver)
     		semver = Semver::parse(key);
-		if (key_value_pair) {
+        if (key_value_pair) {
     		if (semver)
     			throw file_parser_error("Key cannot be a semantic version", path, idx_line);\
     		// Verify validity of the key / value pair.
@@ -288,7 +288,6 @@ Index::const_iterator Index::find(const Semver &ver) const
 
 Index::const_iterator Index::recommended() const
 {
-	int idx = -1;
 	const_iterator highest = this->end();
 	for (const_iterator it = this->begin(); it != this->end(); ++ it)
 		if (it->is_current_slic3r_supported() &&
diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp
index a1db6884e..6c138d4d0 100644
--- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp
+++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp
@@ -55,6 +55,7 @@ bool BackgroundSlicingProcess::select_technology(PrinterTechnology tech)
 		switch (tech) {
 		case ptFFF: m_print = m_fff_print; break;
 		case ptSLA: m_print = m_sla_print; break;
+        default: assert(false); break;
 		}
 		changed = true;
 	}
diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index c55d64b47..268b4dc30 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -1926,7 +1926,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re
                 if (it->new_geometry()) {
                     // New volume.
                     unsigned int old_id = find_old_volume_id(it->composite_id);
-                    if (old_id != -1)
+                    if (old_id != (unsigned int)-1)
                         map_glvolume_old_to_new[old_id] = m_volumes.volumes.size();
                     m_volumes.load_object_volume(&model_object, obj_idx, volume_idx, instance_idx, m_color_by, m_initialized);
                     m_volumes.volumes.back()->geometry_id = key.geometry_id;
diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp
index c5ddc0152..9bfc34543 100644
--- a/src/slic3r/GUI/GUI_App.hpp
+++ b/src/slic3r/GUI/GUI_App.hpp
@@ -87,7 +87,7 @@ class GUI_App : public wxApp
     wxFont		    m_bold_font;
 	wxFont			m_normal_font;
 
-    size_t          m_em_unit; // width of a "m"-symbol in pixels for current system font 
+    int          m_em_unit; // width of a "m"-symbol in pixels for current system font
                                // Note: for 100% Scale m_em_unit = 10 -> it's a good enough coefficient for a size setting of controls
 
     std::unique_ptr<wxLocale> 	  m_wxLocale;
@@ -105,7 +105,7 @@ public:
     bool            initialized() const { return m_initialized; }
 
     GUI_App();
-    ~GUI_App();
+    ~GUI_App() override;
 
     static unsigned get_colour_approx_luma(const wxColour &colour);
     static bool     dark_mode();
@@ -124,8 +124,7 @@ public:
     const wxFont&   small_font()            { return m_small_font; }
     const wxFont&   bold_font()             { return m_bold_font; }
     const wxFont&   normal_font()           { return m_normal_font; }
-    size_t          em_unit() const         { return m_em_unit; }
-    void            set_em_unit(const size_t em_unit)    { m_em_unit = em_unit; }
+    int             em_unit() const         { return m_em_unit; }
     float           toolbar_icon_scale(const bool is_limited = false) const;
 
     void            recreate_GUI();
@@ -155,7 +154,7 @@ public:
 	// Translate the language code to a code, for which Prusa Research maintains translations. Defaults to "en_US".
     wxString 		current_language_code_safe() const;
 
-    virtual bool OnExceptionInMainLoop();
+    virtual bool OnExceptionInMainLoop() override;
 
 #ifdef __APPLE__
     // wxWidgets override to get an event on open files.
diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp
index dc48a218c..a88980a8d 100644
--- a/src/slic3r/GUI/GUI_ObjectList.cpp
+++ b/src/slic3r/GUI/GUI_ObjectList.cpp
@@ -445,7 +445,7 @@ void ObjectList::update_extruder_values_for_items(const size_t max_extruder)
         auto object = (*m_objects)[i];
         wxString extruder;
         if (!object->config.has("extruder") ||
-            object->config.option<ConfigOptionInt>("extruder")->value > max_extruder)
+            size_t(object->config.option<ConfigOptionInt>("extruder")->value) > max_extruder)
             extruder = _(L("default"));
         else
             extruder = wxString::Format("%d", object->config.option<ConfigOptionInt>("extruder")->value);
@@ -457,7 +457,7 @@ void ObjectList::update_extruder_values_for_items(const size_t max_extruder)
                 item = m_objects_model->GetItemByVolumeId(i, id);
                 if (!item) continue;
                 if (!object->volumes[id]->config.has("extruder") ||
-                    object->volumes[id]->config.option<ConfigOptionInt>("extruder")->value > max_extruder)
+                    size_t(object->volumes[id]->config.option<ConfigOptionInt>("extruder")->value) > max_extruder)
                     extruder = _(L("default"));
                 else
                     extruder = wxString::Format("%d", object->volumes[id]->config.option<ConfigOptionInt>("extruder")->value); 
diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp
index 698c1e034..8b6f5bc30 100644
--- a/src/slic3r/GUI/OptionsGroup.cpp
+++ b/src/slic3r/GUI/OptionsGroup.cpp
@@ -233,7 +233,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText**	full_Label/* = n
 
 		add_undo_buttuns_to_sizer(sizer, field);
 		if (is_window_field(field)) 
-			sizer->Add(field->getWindow(), option.opt.full_width ? 1 : 0, //(option.opt.full_width ? wxEXPAND : 0) |
+            sizer->Add(field->getWindow(), option.opt.full_width ? 1 : 0, //(option.opt.full_width ? wxEXPAND : 0) |
             wxBOTTOM | wxTOP | (option.opt.full_width ? wxEXPAND : wxALIGN_CENTER_VERTICAL), (wxOSX || !staticbox) ? 0 : 2);
 		if (is_sizer_field(field)) 
 			sizer->Add(field->getSizer(), 1, /*(*/option.opt.full_width ? wxEXPAND : /*0) |*/ wxALIGN_CENTER_VERTICAL, 0);
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index cca164ca3..90529f88c 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -4791,7 +4791,7 @@ bool Plater::undo_redo_string_getter(const bool is_undo, int idx, const char** o
     const std::vector<UndoRedo::Snapshot>& ss_stack = p->undo_redo_stack().snapshots();
     const int idx_in_ss_stack = p->get_active_snapshot_index() + (is_undo ? -(++idx) : idx);
 
-    if (0 < idx_in_ss_stack && idx_in_ss_stack < ss_stack.size() - 1) {
+    if (0 < idx_in_ss_stack && (size_t)idx_in_ss_stack < ss_stack.size() - 1) {
         *out_text = ss_stack[idx_in_ss_stack].name.c_str();
         return true;
     }
@@ -4804,7 +4804,7 @@ void Plater::undo_redo_topmost_string_getter(const bool is_undo, std::string& ou
     const std::vector<UndoRedo::Snapshot>& ss_stack = p->undo_redo_stack().snapshots();
     const int idx_in_ss_stack = p->get_active_snapshot_index() + (is_undo ? -1 : 0);
 
-    if (0 < idx_in_ss_stack && idx_in_ss_stack < ss_stack.size() - 1) {
+    if (0 < idx_in_ss_stack && (size_t)idx_in_ss_stack < ss_stack.size() - 1) {
         out_text = ss_stack[idx_in_ss_stack].name;
         return;
     }
diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp
index 06e37fb4f..eb47fd208 100644
--- a/src/slic3r/GUI/wxExtensions.cpp
+++ b/src/slic3r/GUI/wxExtensions.cpp
@@ -1020,7 +1020,7 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item)
 		node_parent->GetChildren().Remove(node);
 
 		if (id > 0) { 
-			if(id == node_parent->GetChildCount()) id--;
+            if (size_t(id) == node_parent->GetChildCount()) id--;
 			ret_item = wxDataViewItem(node_parent->GetChildren().Item(id));
 		}