mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
This commit is contained in:
		
						commit
						35f51ed9a9
					
				
					 4 changed files with 25 additions and 12 deletions
				
			
		|  | @ -1300,11 +1300,12 @@ bool PlaterDropTarget::OnDropFiles(wxCoord x, wxCoord y, const wxArrayString &fi | |||
|     // FIXME: when drag and drop is done on a .3mf or a .amf file we should clear the plater for consistence with the open project command
 | ||||
|     // (the following call to plater->load_files() will load the config data, if present)
 | ||||
| 
 | ||||
|     plater->load_files(paths); | ||||
|     std::vector<size_t> res = plater->load_files(paths); | ||||
| 
 | ||||
|     // because right now the plater is not cleared, we set the project file (from the latest imported .3mf or .amf file)
 | ||||
|     // only if not set yet
 | ||||
|     if (plater->get_project_filename().empty()) | ||||
|     // if res is empty no data has been loaded
 | ||||
|     if (!res.empty() && plater->get_project_filename().empty()) | ||||
|     { | ||||
|         for (std::vector<fs::path>::const_reverse_iterator it = paths.rbegin(); it != paths.rend(); ++it) | ||||
|         { | ||||
|  | @ -4076,11 +4077,15 @@ void Plater::load_project(const wxString& filename) | |||
|     Plater::TakeSnapshot snapshot(this, _(L("Load Project")) + ": " + wxString::FromUTF8(into_path(filename).stem().string().c_str())); | ||||
| 
 | ||||
|     p->reset(); | ||||
|     p->set_project_filename(filename); | ||||
| 
 | ||||
|     std::vector<fs::path> input_paths; | ||||
|     input_paths.push_back(into_path(filename)); | ||||
|     load_files(input_paths); | ||||
| 
 | ||||
|     std::vector<size_t> res = load_files(input_paths); | ||||
| 
 | ||||
|     // if res is empty no data has been loaded
 | ||||
|     if (!res.empty()) | ||||
|         p->set_project_filename(filename); | ||||
| } | ||||
| 
 | ||||
| void Plater::add_model() | ||||
|  | @ -4127,16 +4132,16 @@ void Plater::extract_config_from_project() | |||
|     load_files(input_paths, false, true); | ||||
| } | ||||
| 
 | ||||
| void Plater::load_files(const std::vector<fs::path>& input_files, bool load_model, bool load_config) { p->load_files(input_files, load_model, load_config); } | ||||
| std::vector<size_t> Plater::load_files(const std::vector<fs::path>& input_files, bool load_model, bool load_config) { return p->load_files(input_files, load_model, load_config); } | ||||
| 
 | ||||
| // To be called when providing a list of files to the GUI slic3r on command line.
 | ||||
| void Plater::load_files(const std::vector<std::string>& input_files, bool load_model, bool load_config) | ||||
| std::vector<size_t> Plater::load_files(const std::vector<std::string>& input_files, bool load_model, bool load_config) | ||||
| { | ||||
|     std::vector<fs::path> paths; | ||||
|     paths.reserve(input_files.size()); | ||||
|     for (const std::string &path : input_files) | ||||
|     for (const std::string& path : input_files) | ||||
|         paths.emplace_back(path); | ||||
|     p->load_files(paths, load_model, load_config); | ||||
|     return p->load_files(paths, load_model, load_config); | ||||
| } | ||||
| 
 | ||||
| void Plater::update() { p->update(); } | ||||
|  |  | |||
|  | @ -147,9 +147,9 @@ public: | |||
|     void add_model(); | ||||
|     void extract_config_from_project(); | ||||
| 
 | ||||
|     void load_files(const std::vector<boost::filesystem::path>& input_files, bool load_model = true, bool load_config = true); | ||||
|     std::vector<size_t> load_files(const std::vector<boost::filesystem::path>& input_files, bool load_model = true, bool load_config = true); | ||||
|     // To be called when providing a list of files to the GUI slic3r on command line.
 | ||||
|     void load_files(const std::vector<std::string>& input_files, bool load_model = true, bool load_config = true); | ||||
|     std::vector<size_t> load_files(const std::vector<std::string>& input_files, bool load_model = true, bool load_config = true); | ||||
| 
 | ||||
|     void update(); | ||||
|     void stop_jobs(); | ||||
|  |  | |||
|  | @ -1492,13 +1492,16 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr | |||
|     // To avoid the errors of number rounding for different combination of monitor configuration,
 | ||||
|     // let use scaled 8px, as a smallest icon unit 
 | ||||
|     const int icon_unit         = 8 * scale_f + 0.5f; | ||||
|     const int icon_height       = 2 * icon_unit;    //16 * scale_f + 0.5f;
 | ||||
|     const int normal_icon_width = 2 * icon_unit;    //16 * scale_f + 0.5f;
 | ||||
|     const int thin_icon_width   = icon_unit;        //8 * scale_f + 0.5f;
 | ||||
|     const int wide_icon_width   = 3 * icon_unit;    //24 * scale_f + 0.5f;
 | ||||
| 
 | ||||
|     const int space_icon_width  = 2  * scale_f + 0.5f; | ||||
| 
 | ||||
|     // To avoid asserts, each added bitmap to wxBitmapCombobox should be the same size, so
 | ||||
|     // set a bitmap height to m_bitmapLock->GetHeight()
 | ||||
|     const int icon_height       = m_bitmapLock->GetHeight();//2 * icon_unit;    //16 * scale_f + 0.5f;
 | ||||
| 
 | ||||
| 	for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++i) { | ||||
|         const Preset &preset    = this->filaments.preset(i); | ||||
|         bool          selected  = this->filament_presets[idx_extruder] == preset.name; | ||||
|  |  | |||
|  | @ -2218,7 +2218,8 @@ void DoubleSlider::SetTicksValues(const std::vector<double>& heights) | |||
|     for (auto h : heights) { | ||||
|         while (i < m_values.size() && m_values[i].second - 1e-6 < h) | ||||
|             ++i; | ||||
|         if (i == m_values.size()) | ||||
|         // don't miss last layer if it is
 | ||||
|         if (i == m_values.size() && fabs(m_values[i-1].second - h) > EPSILON) | ||||
|             return; | ||||
|         m_ticks.insert(i-1); | ||||
|     } | ||||
|  | @ -2293,6 +2294,10 @@ void DoubleSlider::draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoin | |||
| { | ||||
|     const int tick = m_selection == ssLower ? m_lower_value : m_higher_value; | ||||
| 
 | ||||
|     // suppress add tick on first layer
 | ||||
|     if (tick == 0) | ||||
|         return; | ||||
| 
 | ||||
|     wxBitmap* icon = m_is_action_icon_focesed ? &m_bmp_add_tick_off.bmp() : &m_bmp_add_tick_on.bmp(); | ||||
|     if (m_ticks.find(tick) != m_ticks.end()) | ||||
|         icon = m_is_action_icon_focesed ? &m_bmp_del_tick_off.bmp() : &m_bmp_del_tick_on.bmp(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 bubnikv
						bubnikv