From 655e26b07882fc0b9ba439cfe285e5ee98e60aeb Mon Sep 17 00:00:00 2001 From: David Kocik Date: Mon, 25 Mar 2024 12:41:32 +0100 Subject: [PATCH] Remove All mentions of downloads from wizard and preferences for DESKTOP_INTEGRATION = 0 cleanup - remove notification --- src/slic3r/GUI/ConfigWizard.cpp | 13 ++++++++----- src/slic3r/GUI/GUI_App.cpp | 18 ++++++++++++------ src/slic3r/GUI/NotificationManager.hpp | 2 +- src/slic3r/GUI/Preferences.cpp | 20 ++++++++++++++------ 4 files changed, 35 insertions(+), 18 deletions(-) diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index cecb8f4acd..1f84b18104 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1473,12 +1473,11 @@ PageDownloader::PageDownloader(ConfigWizard* parent) boldfont.SetWeight(wxFONTWEIGHT_BOLD); append_spacer(VERTICAL_SPACING); - auto* box_allow_downloads = new wxCheckBox(this, wxID_ANY, _L("Allow built-in downloader")); // TODO: Do we want it like this? The downloader is allowed for very first time the wizard is run. bool box_allow_value = (app_config->has("downloader_url_registered") ? app_config->get_bool("downloader_url_registered") : true); box_allow_downloads->SetValue(box_allow_value); - append(box_allow_downloads); + append(box_allow_downloads); // append info line with link on printables.com { @@ -1524,7 +1523,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent) ))); #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) - box_allow_downloads->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent& event) { this->m_downloader->allow(event.IsChecked()); }); + box_allow_downloads->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent& event) { this->m_downloader->allow(event.IsChecked()); }); m_downloader = new DownloaderUtils::Worker(this); append(m_downloader); @@ -2408,7 +2407,9 @@ void ConfigWizard::priv::load_pages() btn_finish->Enable(any_fff_selected || any_sla_selected || custom_printer_selected || custom_printer_in_bundle); index->add_page(page_update); +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) index->add_page(page_downloader); +#endif index->add_page(page_reload_from_disk); #ifdef _WIN32 index->add_page(page_files_association); @@ -2775,12 +2776,12 @@ void ConfigWizard::priv::on_3rdparty_install(const VendorProfile *vendor, bool i bool ConfigWizard::priv::on_bnt_finish() { wxBusyCursor wait; - +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) if (!page_downloader->on_finish_downloader()) { index->go_to(page_downloader); return false; } - +#endif /* If some printers were added/deleted, but related MaterialPage wasn't activated, * than last changes wouldn't be updated for filaments/materials. * SO, do that before check_and_install_missing_materials() @@ -3404,7 +3405,9 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->add_page(p->page_update = new PageUpdate(this)); +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) p->add_page(p->page_downloader = new PageDownloader(this)); +#endif p->add_page(p->page_reload_from_disk = new PageReloadFromDisk(this)); #ifdef _WIN32 p->add_page(p->page_files_association = new PageFilesAssociation(this)); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 3d99ca2640..8fe4fb7d21 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3158,6 +3158,9 @@ void GUI_App::show_desktop_integration_dialog() void GUI_App::show_downloader_registration_dialog() { +#if defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION) + return; +#endif InfoDialog msg(nullptr , format_wxstr(_L("Welcome to %1% version %2%."), SLIC3R_APP_NAME, SLIC3R_VERSION) , format_wxstr(_L( @@ -3169,10 +3172,10 @@ void GUI_App::show_downloader_registration_dialog() if (msg.ShowModal() == wxID_YES) { auto downloader_worker = new DownloaderUtils::Worker(nullptr); downloader_worker->perform_register(app_config->get("url_downloader_dest")); -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if defined(__linux__) if (downloader_worker->get_perform_registration_linux()) DesktopIntegrationDialog::perform_downloader_desktop_integration(); -#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#endif //(__linux__) } else { app_config->set("downloader_url_registered", "0"); } @@ -3553,14 +3556,17 @@ void GUI_App::start_download(std::string url) return; } - #if defined(__APPLE__) || (defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)) - if (app_config && !app_config->get_bool("downloader_url_registered")) - { + // Windows register and deregister executable path to registry - cant get here when not registered + // Apple registers via info.plist attached to exectable - might get here + // Linux registers via desktop integration file - might get here only if such file was created outside Slicer. + // Desktop integration is limited with SLIC3R_DESKTOP_INTEGRATION (cmake option). +#if defined(__APPLE__) || (defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)) + if (app_config && app_config->get_bool("downloader_url_registered")) { notification_manager()->push_notification(NotificationType::URLNotRegistered); BOOST_LOG_TRIVIAL(error) << "Recieved command to open URL, but it is not allowed in app configuration. URL: " << url; return; } - #endif //defined(__APPLE__) || (defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)) +#endif //defined(__APPLE__) || (defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)) //lets always init so if the download dest folder was changed, new dest is used boost::filesystem::path dest_folder(app_config->get("url_downloader_dest")); diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index d74b28af60..2f68c9384f 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -126,7 +126,7 @@ enum class NotificationType ExportOngoing, // Progressbar of download from prusaslicer:// url URLDownload, - // MacOS specific - PS comes forward even when downloader is not allowed + // MacOS and Linux flatpack (SLIC3R_DESKTOP_INTEGRATION = 0) specific - PS comes forward even when downloader is not allowed URLNotRegistered, // Config file was detected during startup, open wifi config dialog via hypertext WifiConfigFileDetected diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 979ac11d30..750869b949 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -32,6 +32,10 @@ #include "DesktopIntegrationDialog.hpp" #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION) +#include "NotificationManager.hpp" +#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) + namespace Slic3r { static t_config_enum_names enum_names_from_keys_map(const t_config_enum_values& enum_keys_map) @@ -130,10 +134,10 @@ void PreferencesDialog::show(const std::string& highlight_opt_key /*= std::strin if (wxGetApp().is_editor()) { auto app_config = get_app_config(); - +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) downloader->set_path_name(app_config->get("url_downloader_dest")); downloader->allow(!app_config->has("downloader_url_registered") || app_config->get_bool("downloader_url_registered")); - +#endif for (const std::string& opt_key : {"suppress_hyperlinks", "downloader_url_registered"}) m_optgroup_other->set_value(opt_key, app_config->get_bool(opt_key)); @@ -640,15 +644,17 @@ void PreferencesDialog::build() //L("If enabled, the descriptions of configuration parameters in settings tabs wouldn't work as hyperlinks. " // "If disabled, the descriptions of configuration parameters in settings tabs will work as hyperlinks."), app_config->get_bool("suppress_hyperlinks")); - +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) append_bool_option(m_optgroup_other, "downloader_url_registered", L("Allow downloads from Printables.com"), L("If enabled, PrusaSlicer will be allowed to download from Printables.com"), app_config->get_bool("downloader_url_registered")); +#endif activate_options_tab(m_optgroup_other); - +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) create_downloader_path_sizer(); +#endif create_settings_font_widget(); #if ENABLE_ENVIRONMENT_MAP @@ -753,16 +759,18 @@ void PreferencesDialog::update_ctrls_alignment() void PreferencesDialog::accept(wxEvent&) { +#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)) if(wxGetApp().is_editor()) { if (const auto it = m_values.find("downloader_url_registered"); it != m_values.end()) downloader->allow(it->second == "1"); if (!downloader->on_finish()) return; -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if defined(__linux__) if( downloader->get_perform_registration_linux()) DesktopIntegrationDialog::perform_downloader_desktop_integration(); -#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#endif } +#endif std::vector options_to_recreate_GUI = { "no_defaults", "tabs_as_menu", "sys_menu_enabled", "font_pt_size", "suppress_round_corners" };