Revert "Merge branch 'dk_master_desktop_integration' into master_27x"

This reverts commit 4b50c41799c867047a510a2a06f3c8e75a6b9dac, reversing
changes made to b9d8b8ce72cc6f32c35a87bfe5a6e5dd21c37c18.
This commit is contained in:
Lukas Matena 2024-03-31 07:38:08 +02:00
parent a50dae532a
commit d421f5b1f8
4 changed files with 44 additions and 65 deletions

View File

@ -1473,6 +1473,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
boldfont.SetWeight(wxFONTWEIGHT_BOLD); boldfont.SetWeight(wxFONTWEIGHT_BOLD);
append_spacer(VERTICAL_SPACING); append_spacer(VERTICAL_SPACING);
auto* box_allow_downloads = new wxCheckBox(this, wxID_ANY, _L("Allow built-in downloader")); 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. // 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); bool box_allow_value = (app_config->has("downloader_url_registered") ? app_config->get_bool("downloader_url_registered") : true);
@ -1517,11 +1518,11 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
)); ));
} }
#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #ifdef __linux__
append_text(wxString::Format(_L( append_text(wxString::Format(_L(
"On Linux systems the process of registration also creates desktop integration files for this version of application." "On Linux systems the process of registration also creates desktop integration files for this version of application."
))); )));
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #endif
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()); });
@ -1581,7 +1582,7 @@ bool DownloaderUtils::Worker::perform_register(const std::string& path_override/
#elif __APPLE__ #elif __APPLE__
// Apple registers for custom url in info.plist thus it has to be already registered since build. // Apple registers for custom url in info.plist thus it has to be already registered since build.
// The url will always trigger opening of prusaslicer and we have to check that user has allowed it. (GUI_App::MacOpenURL is the triggered method) // The url will always trigger opening of prusaslicer and we have to check that user has allowed it. (GUI_App::MacOpenURL is the triggered method)
#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #else
// the performation should be called later during desktop integration // the performation should be called later during desktop integration
perform_registration_linux = true; perform_registration_linux = true;
#endif #endif
@ -1599,7 +1600,7 @@ void DownloaderUtils::Worker::deregister()
key_full = key_string; key_full = key_string;
#elif __APPLE__ #elif __APPLE__
// TODO // TODO
#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #else
BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration"; BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration";
DesktopIntegrationDialog::undo_downloader_registration(); DesktopIntegrationDialog::undo_downloader_registration();
perform_registration_linux = false; perform_registration_linux = false;
@ -2407,9 +2408,7 @@ void ConfigWizard::priv::load_pages()
btn_finish->Enable(any_fff_selected || any_sla_selected || custom_printer_selected || custom_printer_in_bundle); btn_finish->Enable(any_fff_selected || any_sla_selected || custom_printer_selected || custom_printer_in_bundle);
index->add_page(page_update); index->add_page(page_update);
#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION))
index->add_page(page_downloader); index->add_page(page_downloader);
#endif
index->add_page(page_reload_from_disk); index->add_page(page_reload_from_disk);
#ifdef _WIN32 #ifdef _WIN32
index->add_page(page_files_association); index->add_page(page_files_association);
@ -2776,12 +2775,12 @@ void ConfigWizard::priv::on_3rdparty_install(const VendorProfile *vendor, bool i
bool ConfigWizard::priv::on_bnt_finish() bool ConfigWizard::priv::on_bnt_finish()
{ {
wxBusyCursor wait; wxBusyCursor wait;
#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION))
if (!page_downloader->on_finish_downloader()) { if (!page_downloader->on_finish_downloader()) {
index->go_to(page_downloader); index->go_to(page_downloader);
return false; return false;
} }
#endif
/* If some printers were added/deleted, but related MaterialPage wasn't activated, /* If some printers were added/deleted, but related MaterialPage wasn't activated,
* than last changes wouldn't be updated for filaments/materials. * than last changes wouldn't be updated for filaments/materials.
* SO, do that before check_and_install_missing_materials() * SO, do that before check_and_install_missing_materials()
@ -3064,14 +3063,14 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese
if ((check_unsaved_preset_changes = install_bundles.size() > 0)) if ((check_unsaved_preset_changes = install_bundles.size() > 0))
header = _L_PLURAL("A new vendor was installed and one of its printers will be activated", "New vendors were installed and one of theirs printers will be activated", install_bundles.size()); header = _L_PLURAL("A new vendor was installed and one of its printers will be activated", "New vendors were installed and one of theirs printers will be activated", install_bundles.size());
#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #ifdef __linux__
// Desktop integration on Linux // Desktop integration on Linux
BOOST_LOG_TRIVIAL(debug) << "ConfigWizard::priv::apply_config integrate_desktop" << page_welcome->integrate_desktop() << " perform_registration_linux " << page_downloader->m_downloader->get_perform_registration_linux(); BOOST_LOG_TRIVIAL(debug) << "ConfigWizard::priv::apply_config integrate_desktop" << page_welcome->integrate_desktop() << " perform_registration_linux " << page_downloader->m_downloader->get_perform_registration_linux();
if (page_welcome->integrate_desktop()) if (page_welcome->integrate_desktop())
DesktopIntegrationDialog::perform_desktop_integration(); DesktopIntegrationDialog::perform_desktop_integration();
if (page_downloader->m_downloader->get_perform_registration_linux()) if (page_downloader->m_downloader->get_perform_registration_linux())
DesktopIntegrationDialog::perform_downloader_desktop_integration(); DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #endif
// Decide whether to create snapshot based on run_reason and the reset profile checkbox // Decide whether to create snapshot based on run_reason and the reset profile checkbox
bool snapshot = true; bool snapshot = true;
@ -3405,9 +3404,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent)
p->add_page(p->page_update = new PageUpdate(this)); 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)); p->add_page(p->page_downloader = new PageDownloader(this));
#endif
p->add_page(p->page_reload_from_disk = new PageReloadFromDisk(this)); p->add_page(p->page_reload_from_disk = new PageReloadFromDisk(this));
#ifdef _WIN32 #ifdef _WIN32
p->add_page(p->page_files_association = new PageFilesAssociation(this)); p->add_page(p->page_files_association = new PageFilesAssociation(this));

View File

@ -2987,7 +2987,13 @@ void GUI_App::MacOpenFiles(const wxArrayString &fileNames)
void GUI_App::MacOpenURL(const wxString& url) void GUI_App::MacOpenURL(const wxString& url)
{ {
start_download(into_u8(url)); 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;
}
start_download(boost::nowide::narrow(url));
} }
#endif /* __APPLE */ #endif /* __APPLE */
@ -3158,9 +3164,6 @@ void GUI_App::show_desktop_integration_dialog()
void GUI_App::show_downloader_registration_dialog() void GUI_App::show_downloader_registration_dialog()
{ {
#if defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)
return;
#endif
InfoDialog msg(nullptr InfoDialog msg(nullptr
, format_wxstr(_L("Welcome to %1% version %2%."), SLIC3R_APP_NAME, SLIC3R_VERSION) , format_wxstr(_L("Welcome to %1% version %2%."), SLIC3R_APP_NAME, SLIC3R_VERSION)
, format_wxstr(_L( , format_wxstr(_L(
@ -3172,10 +3175,10 @@ void GUI_App::show_downloader_registration_dialog()
if (msg.ShowModal() == wxID_YES) { if (msg.ShowModal() == wxID_YES) {
auto downloader_worker = new DownloaderUtils::Worker(nullptr); auto downloader_worker = new DownloaderUtils::Worker(nullptr);
downloader_worker->perform_register(app_config->get("url_downloader_dest")); downloader_worker->perform_register(app_config->get("url_downloader_dest"));
#if defined(__linux__) #ifdef __linux__
if (downloader_worker->get_perform_registration_linux()) if (downloader_worker->get_perform_registration_linux())
DesktopIntegrationDialog::perform_downloader_desktop_integration(); DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif //(__linux__) #endif // __linux__
} else { } else {
app_config->set("downloader_url_registered", "0"); app_config->set("downloader_url_registered", "0");
} }
@ -3555,19 +3558,6 @@ void GUI_App::start_download(std::string url)
BOOST_LOG_TRIVIAL(error) << "Could not start URL download: plater is nullptr."; BOOST_LOG_TRIVIAL(error) << "Could not start URL download: plater is nullptr.";
return; return;
} }
// 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))
//lets always init so if the download dest folder was changed, new dest is used //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")); boost::filesystem::path dest_folder(app_config->get("url_downloader_dest"));
if (dest_folder.empty() || !boost::filesystem::is_directory(dest_folder)) { if (dest_folder.empty() || !boost::filesystem::is_directory(dest_folder)) {

View File

@ -126,7 +126,7 @@ enum class NotificationType
ExportOngoing, ExportOngoing,
// Progressbar of download from prusaslicer:// url // Progressbar of download from prusaslicer:// url
URLDownload, URLDownload,
// MacOS and Linux flatpack (SLIC3R_DESKTOP_INTEGRATION = 0) specific - PS comes forward even when downloader is not allowed // MacOS specific - PS comes forward even when downloader is not allowed
URLNotRegistered, URLNotRegistered,
// Config file was detected during startup, open wifi config dialog via hypertext // Config file was detected during startup, open wifi config dialog via hypertext
WifiConfigFileDetected WifiConfigFileDetected

View File

@ -28,13 +28,9 @@
#ifdef WIN32 #ifdef WIN32
#include <wx/msw/registry.h> #include <wx/msw/registry.h>
#endif // WIN32 #endif // WIN32
#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #ifdef __linux__
#include "DesktopIntegrationDialog.hpp" #include "DesktopIntegrationDialog.hpp"
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) #endif //__linux__
#if defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)
#include "NotificationManager.hpp"
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
namespace Slic3r { namespace Slic3r {
@ -134,10 +130,10 @@ void PreferencesDialog::show(const std::string& highlight_opt_key /*= std::strin
if (wxGetApp().is_editor()) { if (wxGetApp().is_editor()) {
auto app_config = get_app_config(); 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->set_path_name(app_config->get("url_downloader_dest"));
downloader->allow(!app_config->has("downloader_url_registered") || app_config->get_bool("downloader_url_registered")); 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"}) for (const std::string& opt_key : {"suppress_hyperlinks", "downloader_url_registered"})
m_optgroup_other->set_value(opt_key, app_config->get_bool(opt_key)); m_optgroup_other->set_value(opt_key, app_config->get_bool(opt_key));
@ -644,17 +640,15 @@ void PreferencesDialog::build()
//L("If enabled, the descriptions of configuration parameters in settings tabs wouldn't work as hyperlinks. " //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."), // "If disabled, the descriptions of configuration parameters in settings tabs will work as hyperlinks."),
app_config->get_bool("suppress_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", append_bool_option(m_optgroup_other, "downloader_url_registered",
L("Allow downloads from Printables.com"), L("Allow downloads from Printables.com"),
L("If enabled, PrusaSlicer will be allowed to download from Printables.com"), L("If enabled, PrusaSlicer will be allowed to download from Printables.com"),
app_config->get_bool("downloader_url_registered")); app_config->get_bool("downloader_url_registered"));
#endif
activate_options_tab(m_optgroup_other); activate_options_tab(m_optgroup_other);
#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION))
create_downloader_path_sizer(); create_downloader_path_sizer();
#endif
create_settings_font_widget(); create_settings_font_widget();
#if ENABLE_ENVIRONMENT_MAP #if ENABLE_ENVIRONMENT_MAP
@ -759,18 +753,16 @@ void PreferencesDialog::update_ctrls_alignment()
void PreferencesDialog::accept(wxEvent&) void PreferencesDialog::accept(wxEvent&)
{ {
#if !defined(__linux__) || (defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION))
if(wxGetApp().is_editor()) { if(wxGetApp().is_editor()) {
if (const auto it = m_values.find("downloader_url_registered"); it != m_values.end()) if (const auto it = m_values.find("downloader_url_registered"); it != m_values.end())
downloader->allow(it->second == "1"); downloader->allow(it->second == "1");
if (!downloader->on_finish()) if (!downloader->on_finish())
return; return;
#if defined(__linux__) #ifdef __linux__
if( downloader->get_perform_registration_linux()) if( downloader->get_perform_registration_linux())
DesktopIntegrationDialog::perform_downloader_desktop_integration(); DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif #endif // __linux__
} }
#endif
std::vector<std::string> options_to_recreate_GUI = { "no_defaults", "tabs_as_menu", "sys_menu_enabled", "font_pt_size", "suppress_round_corners" }; std::vector<std::string> options_to_recreate_GUI = { "no_defaults", "tabs_as_menu", "sys_menu_enabled", "font_pt_size", "suppress_round_corners" };