mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	Importing newer config when starting the application:
Cache directory is newly deleted before it is imported from the newer config location. Linux specific: When asking for certificate directory, perform import of configs first.
This commit is contained in:
		
							parent
							
								
									5579b31a26
								
							
						
					
					
						commit
						2dc461719f
					
				
					 2 changed files with 32 additions and 23 deletions
				
			
		|  | @ -212,17 +212,27 @@ static void copy_dir(const boost::filesystem::path& from_dir, const boost::files | |||
| // Import newer configuration from alternate PrusaSlicer configuration directory.
 | ||||
| // AppConfig from the alternate location is already loaded.
 | ||||
| // User profiles are being merged (old files are not being deleted),
 | ||||
| // while old system bundles are being deleted before newer are copied.
 | ||||
| // while old vendors and cache folders are being deleted before newer are copied.
 | ||||
| void PresetBundle::import_newer_configs(const std::string& from) | ||||
| { | ||||
|     boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir()); | ||||
|     // Clean-up vendors from the target directory, as the existing vendors will not be referenced
 | ||||
|     // by the copied PrusaSlicer.ini
 | ||||
|     boost::filesystem::remove_all(data_dir / "vendor"); | ||||
|     try { | ||||
|         boost::filesystem::remove_all(data_dir / "cache"); | ||||
|     } catch (const std::exception &ex) { | ||||
|         BOOST_LOG_TRIVIAL(error) << "Error deleting old cache " << (data_dir / "cache").string(); | ||||
|     } | ||||
|     try { | ||||
|         boost::filesystem::remove_all(data_dir / "vendor"); | ||||
|     } catch (const std::exception &ex) { | ||||
|         BOOST_LOG_TRIVIAL(error) << "Error deleting old vendors " << (data_dir / "vendor").string(); | ||||
|     } | ||||
|     // list of searched paths based on current directory system in setup_directories()
 | ||||
|     // do not copy cache and snapshots
 | ||||
|     boost::filesystem::path from_data_dir = boost::filesystem::path(from); | ||||
|     std::initializer_list<boost::filesystem::path> from_dirs= { | ||||
|         from_data_dir / "cache", | ||||
|         from_data_dir / "vendor", | ||||
|         from_data_dir / "shapes", | ||||
| #ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR | ||||
|  |  | |||
|  | @ -1078,27 +1078,6 @@ bool GUI_App::on_init_inner() | |||
| 
 | ||||
| //     Slic3r::debugf "wxWidgets version %s, Wx version %s\n", wxVERSION_STRING, wxVERSION;
 | ||||
| 
 | ||||
| 
 | ||||
|     if (is_editor()) { | ||||
|         std::string msg = Http::tls_global_init(); | ||||
|         std::string ssl_cert_store = app_config->get("tls_accepted_cert_store_location"); | ||||
|         bool ssl_accept = app_config->get("tls_cert_store_accepted") == "yes" && ssl_cert_store == Http::tls_system_cert_store(); | ||||
| 
 | ||||
|         if (!msg.empty() && !ssl_accept) { | ||||
|             RichMessageDialog | ||||
|                 dlg(nullptr, | ||||
|                     wxString::Format(_L("%s\nDo you want to continue?"), msg), | ||||
|                     "PrusaSlicer", wxICON_QUESTION | wxYES_NO); | ||||
|             dlg.ShowCheckBox(_L("Remember my choice")); | ||||
|             if (dlg.ShowModal() != wxID_YES) return false; | ||||
| 
 | ||||
|             app_config->set("tls_cert_store_accepted", | ||||
|                 dlg.IsCheckBoxChecked() ? "yes" : "no"); | ||||
|             app_config->set("tls_accepted_cert_store_location", | ||||
|                 dlg.IsCheckBoxChecked() ? Http::tls_system_cert_store() : ""); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // !!! Initialization of UI settings as a language, application color mode, fonts... have to be done before first UI action.
 | ||||
|     // Like here, before the show InfoDialog in check_older_app_config()
 | ||||
| 
 | ||||
|  | @ -1136,6 +1115,26 @@ bool GUI_App::on_init_inner() | |||
|         NppDarkMode::SetSystemMenuForApp(new_sys_menu_enabled); | ||||
| #endif | ||||
| 
 | ||||
|     if (is_editor()) { | ||||
|         std::string msg = Http::tls_global_init(); | ||||
|         std::string ssl_cert_store = app_config->get("tls_accepted_cert_store_location"); | ||||
|         bool ssl_accept = app_config->get("tls_cert_store_accepted") == "yes" && ssl_cert_store == Http::tls_system_cert_store(); | ||||
| 
 | ||||
|         if (!msg.empty() && !ssl_accept) { | ||||
|             RichMessageDialog | ||||
|                 dlg(nullptr, | ||||
|                     wxString::Format(_L("%s\nDo you want to continue?"), msg), | ||||
|                     "PrusaSlicer", wxICON_QUESTION | wxYES_NO); | ||||
|             dlg.ShowCheckBox(_L("Remember my choice")); | ||||
|             if (dlg.ShowModal() != wxID_YES) return false; | ||||
| 
 | ||||
|             app_config->set("tls_cert_store_accepted", | ||||
|                 dlg.IsCheckBoxChecked() ? "yes" : "no"); | ||||
|             app_config->set("tls_accepted_cert_store_location", | ||||
|                 dlg.IsCheckBoxChecked() ? Http::tls_system_cert_store() : ""); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     SplashScreen* scrn = nullptr; | ||||
|     if (app_config->get("show_splash_screen") == "1") { | ||||
|         // make a bitmap with dark grey banner on the left side
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vojtech Bubnik
						Vojtech Bubnik