Notice dialog when opening any link outside PrusaSlicer
This commit is contained in:
parent
ca098d5763
commit
e6bae06557
@ -195,7 +195,7 @@ void CopyrightsDialog::on_dpi_changed(const wxRect &suggested_rect)
|
|||||||
|
|
||||||
void CopyrightsDialog::onLinkClicked(wxHtmlLinkEvent &event)
|
void CopyrightsDialog::onLinkClicked(wxHtmlLinkEvent &event)
|
||||||
{
|
{
|
||||||
wxLaunchDefaultBrowser(event.GetLinkInfo().GetHref());
|
wxGetApp().open_browser_with_warning_dialog(event.GetLinkInfo().GetHref());
|
||||||
event.Skip(false);
|
event.Skip(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -344,7 +344,7 @@ void AboutDialog::on_dpi_changed(const wxRect &suggested_rect)
|
|||||||
|
|
||||||
void AboutDialog::onLinkClicked(wxHtmlLinkEvent &event)
|
void AboutDialog::onLinkClicked(wxHtmlLinkEvent &event)
|
||||||
{
|
{
|
||||||
wxLaunchDefaultBrowser(event.GetLinkInfo().GetHref());
|
wxGetApp().open_browser_with_warning_dialog(event.GetLinkInfo().GetHref());
|
||||||
event.Skip(false);
|
event.Skip(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2327,7 +2327,7 @@ wxString GUI_App::current_language_code_safe() const
|
|||||||
|
|
||||||
void GUI_App::open_web_page_localized(const std::string &http_address)
|
void GUI_App::open_web_page_localized(const std::string &http_address)
|
||||||
{
|
{
|
||||||
wxLaunchDefaultBrowser(http_address + "&lng=" + this->current_language_code_safe());
|
open_browser_with_warning_dialog(http_address + "&lng=" + this->current_language_code_safe());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GUI_App::run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage start_page)
|
bool GUI_App::run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage start_page)
|
||||||
@ -2525,6 +2525,23 @@ void GUI_App::check_updates(const bool verbose)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GUI_App::open_browser_with_warning_dialog(const wxString& url, int flags/* = 0*/)
|
||||||
|
{
|
||||||
|
bool launch = true;
|
||||||
|
|
||||||
|
if (get_app_config()->get("suppress_hyperlinks").empty()) {
|
||||||
|
wxRichMessageDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L("PrusaSlicer: Open hyperlink"), wxICON_QUESTION | wxYES_NO);
|
||||||
|
dialog.ShowCheckBox(_L("Remember my choice"));
|
||||||
|
int answer = dialog.ShowModal();
|
||||||
|
launch = answer == wxID_YES;
|
||||||
|
get_app_config()->set("suppress_hyperlinks", dialog.IsCheckBoxChecked() ? (answer == wxID_NO ? "1" : "0") : "");
|
||||||
|
}
|
||||||
|
if (launch)
|
||||||
|
launch = get_app_config()->get("suppress_hyperlinks") != "1";
|
||||||
|
|
||||||
|
return launch && wxLaunchDefaultBrowser(url, flags);
|
||||||
|
}
|
||||||
|
|
||||||
// static method accepting a wxWindow object as first parameter
|
// static method accepting a wxWindow object as first parameter
|
||||||
// void warning_catcher{
|
// void warning_catcher{
|
||||||
// my($self, $message_dialog) = @_;
|
// my($self, $message_dialog) = @_;
|
||||||
|
@ -261,7 +261,8 @@ public:
|
|||||||
void open_preferences(size_t open_on_tab = 0);
|
void open_preferences(size_t open_on_tab = 0);
|
||||||
|
|
||||||
virtual bool OnExceptionInMainLoop() override;
|
virtual bool OnExceptionInMainLoop() override;
|
||||||
|
// Calls wxLaunchDefaultBrowser if user confirms in dialog.
|
||||||
|
bool open_browser_with_warning_dialog(const wxString& url, int flags = 0);
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
void OSXStoreOpenFiles(const wxArrayString &files) override;
|
void OSXStoreOpenFiles(const wxArrayString &files) override;
|
||||||
// wxWidgets override to get an event on open files.
|
// wxWidgets override to get an event on open files.
|
||||||
|
@ -236,8 +236,7 @@ bool tags_check(const std::string& disabled_tags, const std::string& enabled_tag
|
|||||||
}
|
}
|
||||||
void launch_browser_if_allowed(const std::string& url)
|
void launch_browser_if_allowed(const std::string& url)
|
||||||
{
|
{
|
||||||
if (wxGetApp().app_config->get("suppress_hyperlinks") != "1")
|
wxGetApp().open_browser_with_warning_dialog(url);
|
||||||
wxLaunchDefaultBrowser(url);
|
|
||||||
}
|
}
|
||||||
} //namespace
|
} //namespace
|
||||||
HintDatabase::~HintDatabase()
|
HintDatabase::~HintDatabase()
|
||||||
|
@ -1057,7 +1057,7 @@ static wxMenu* generate_help_menu()
|
|||||||
append_menu_item(helpMenu, wxID_ANY, _L("Prusa 3D &Drivers"), _L("Open the Prusa3D drivers download page in your browser"),
|
append_menu_item(helpMenu, wxID_ANY, _L("Prusa 3D &Drivers"), _L("Open the Prusa3D drivers download page in your browser"),
|
||||||
[](wxCommandEvent&) { wxGetApp().open_web_page_localized("https://www.prusa3d.com/downloads"); });
|
[](wxCommandEvent&) { wxGetApp().open_web_page_localized("https://www.prusa3d.com/downloads"); });
|
||||||
append_menu_item(helpMenu, wxID_ANY, _L("Software &Releases"), _L("Open the software releases page in your browser"),
|
append_menu_item(helpMenu, wxID_ANY, _L("Software &Releases"), _L("Open the software releases page in your browser"),
|
||||||
[](wxCommandEvent&) { wxLaunchDefaultBrowser("https://github.com/prusa3d/PrusaSlicer/releases"); });
|
[](wxCommandEvent&) { wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); });
|
||||||
//# my $versioncheck = $self->_append_menu_item($helpMenu, "Check for &Updates...", "Check for new Slic3r versions", sub{
|
//# my $versioncheck = $self->_append_menu_item($helpMenu, "Check for &Updates...", "Check for new Slic3r versions", sub{
|
||||||
//# wxTheApp->check_version(1);
|
//# wxTheApp->check_version(1);
|
||||||
//# });
|
//# });
|
||||||
@ -1067,14 +1067,14 @@ static wxMenu* generate_help_menu()
|
|||||||
[](wxCommandEvent&) { wxGetApp().open_web_page_localized("https://www.prusa3d.com/slicerweb"); });
|
[](wxCommandEvent&) { wxGetApp().open_web_page_localized("https://www.prusa3d.com/slicerweb"); });
|
||||||
// append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("%s &Manual"), SLIC3R_APP_NAME),
|
// append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("%s &Manual"), SLIC3R_APP_NAME),
|
||||||
// wxString::Format(_L("Open the %s manual in your browser"), SLIC3R_APP_NAME),
|
// wxString::Format(_L("Open the %s manual in your browser"), SLIC3R_APP_NAME),
|
||||||
// [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://manual.slic3r.org/"); });
|
// [this](wxCommandEvent&) { wxGetApp().open_browser_with_warning_dialog("http://manual.slic3r.org/"); });
|
||||||
helpMenu->AppendSeparator();
|
helpMenu->AppendSeparator();
|
||||||
append_menu_item(helpMenu, wxID_ANY, _L("System &Info"), _L("Show system information"),
|
append_menu_item(helpMenu, wxID_ANY, _L("System &Info"), _L("Show system information"),
|
||||||
[](wxCommandEvent&) { wxGetApp().system_info(); });
|
[](wxCommandEvent&) { wxGetApp().system_info(); });
|
||||||
append_menu_item(helpMenu, wxID_ANY, _L("Show &Configuration Folder"), _L("Show user configuration folder (datadir)"),
|
append_menu_item(helpMenu, wxID_ANY, _L("Show &Configuration Folder"), _L("Show user configuration folder (datadir)"),
|
||||||
[](wxCommandEvent&) { Slic3r::GUI::desktop_open_datadir_folder(); });
|
[](wxCommandEvent&) { Slic3r::GUI::desktop_open_datadir_folder(); });
|
||||||
append_menu_item(helpMenu, wxID_ANY, _L("Report an I&ssue"), wxString::Format(_L("Report an issue on %s"), SLIC3R_APP_NAME),
|
append_menu_item(helpMenu, wxID_ANY, _L("Report an I&ssue"), wxString::Format(_L("Report an issue on %s"), SLIC3R_APP_NAME),
|
||||||
[](wxCommandEvent&) { wxLaunchDefaultBrowser("https://github.com/prusa3d/slic3r/issues/new"); });
|
[](wxCommandEvent&) { wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/slic3r/issues/new"); });
|
||||||
if (wxGetApp().is_editor())
|
if (wxGetApp().is_editor())
|
||||||
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("&About %s"), SLIC3R_APP_NAME), _L("Show about dialog"),
|
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("&About %s"), SLIC3R_APP_NAME), _L("Show about dialog"),
|
||||||
[](wxCommandEvent&) { Slic3r::GUI::about(); });
|
[](wxCommandEvent&) { Slic3r::GUI::about(); });
|
||||||
|
@ -42,7 +42,7 @@ const NotificationManager::NotificationData NotificationManager::basic_notificat
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotification, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) {
|
{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotification, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) {
|
||||||
wxLaunchDefaultBrowser("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }},
|
wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }},
|
||||||
{NotificationType::EmptyColorChangeCode, NotificationLevel::RegularNotification, 10,
|
{NotificationType::EmptyColorChangeCode, NotificationLevel::RegularNotification, 10,
|
||||||
_u8L("You have just added a G-code for color change, but its value is empty.\n"
|
_u8L("You have just added a G-code for color change, but its value is empty.\n"
|
||||||
"To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"") },
|
"To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"") },
|
||||||
|
Loading…
Reference in New Issue
Block a user