OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::UpdateVersionDialog Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/ReleaseNote.hpp>

Inheritance diagram for Slic3r::GUI::UpdateVersionDialog:
Collaboration diagram for Slic3r::GUI::UpdateVersionDialog:

Public Member Functions

 UpdateVersionDialog (wxWindow *parent=nullptr)
 ~UpdateVersionDialog ()
wxWebView * CreateTipView (wxWindow *parent)
void OnLoaded (wxWebViewEvent &event)
void OnTitleChanged (wxWebViewEvent &event)
void OnError (wxWebViewEvent &event)
bool ShowReleaseNote (std::string content)
void RunScript (std::string script)
void on_dpi_changed (const wxRect &suggested_rect) override
void update_version_info (wxString release_note, wxString version)
std::vector< std::string > splitWithStl (std::string str, std::string pattern)
void EndModal (int retCode) override
float scale_factor () const
float prev_scale_factor () const
void set_scale_factor (float v)
void set_prev_scale_factor (float v)
void set_em_unit (int v)
bool force_rescale () const
int em_unit () const
const wxFont & normal_font () const
void enable_force_rescale ()
int ShowModal ()

Public Attributes

wxStaticBitmap * m_brand {nullptr}
Label * m_text_up_info {nullptr}
wxWebView * m_vebview_release_note {nullptr}
wxSimplebook * m_simplebook_release_note {nullptr}
wxScrolledWindow * m_scrollwindows_release_note {nullptr}
wxBoxSizer * sizer_text_release_note {nullptr}
Label * m_staticText_release_note {nullptr}
wxStaticBitmap * m_bitmap_open_in_browser
Button * m_button_skip_version
CheckBox * m_cb_stable_only
Button * m_button_download
Button * m_button_cancel
std::string url_line
std::string html_source

Protected Member Functions

virtual void on_sys_color_changed ()

Private Member Functions

void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

float m_scale_factor
int m_em_unit
wxFont m_normal_font
float m_prev_scale_factor
bool m_can_rescale
bool m_force_rescale
int m_new_font_point_size

Detailed Description

Constructor & Destructor Documentation

◆ UpdateVersionDialog()

Slic3r::GUI::UpdateVersionDialog::UpdateVersionDialog ( wxWindow * parent = nullptr)
299 : DPIDialog(parent, wxID_ANY, _L("New version of Orca Slicer"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX | wxRESIZE_BORDER)
300{
301 SetBackgroundColour(*wxWHITE);
302
303 wxBoxSizer *m_sizer_main = new wxBoxSizer(wxVERTICAL);
304 auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1));
305 m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
306
307 wxBoxSizer *m_sizer_top = new wxBoxSizer(wxHORIZONTAL);
308 wxBoxSizer *m_sizer_desc = new wxBoxSizer(wxVERTICAL);
309
310 auto sm = create_scaled_bitmap("OrcaSlicer", nullptr, 64);
311 m_brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, FromDIP(wxSize(64, 64)));
312
313 m_text_up_info = new Label(this, Label::Head_14, wxEmptyString, LB_AUTO_WRAP);
314 m_text_up_info->SetForegroundColour(wxColour(0x26, 0x2E, 0x30));
315
316 // Store builds get updates from the Microsoft Store: wxID_YES opens the Store
317 // product page there (see the EVT_SLIC3R_VERSION_ONLINE handler) instead of GitHub.
318 auto github_link = new HyperLink(this, is_running_in_msix() ? _L("Check on Microsoft Store") : _L("Check on GitHub"), "", LB_AUTO_WRAP);
319 github_link->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
320 EndModal(wxID_YES);
321 });
322
323 m_simplebook_release_note = new wxSimplebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER);
324 //m_simplebook_release_note->SetSize(wxSize(FromDIP(560), FromDIP(430)));
325 m_simplebook_release_note->SetMinSize(FromDIP(wxSize(640,420)));
326 m_simplebook_release_note->SetBackgroundColour(wxColour(0xF8, 0xF8, 0xF8));
327
328 m_scrollwindows_release_note = new wxScrolledWindow(m_simplebook_release_note, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(560), FromDIP(430)), wxVSCROLL);
329 m_scrollwindows_release_note->SetScrollRate(5, FromDIP(20));
330 m_scrollwindows_release_note->SetBackgroundColour(wxColour(0xF8, 0xF8, 0xF8));
331
332 //webview
334 m_vebview_release_note->SetBackgroundColour(wxColour(0xF8, 0xF8, 0xF8));
335 //m_vebview_release_note->SetSize(wxSize(FromDIP(560), FromDIP(430)));
336 //m_vebview_release_note->SetMinSize(wxSize(FromDIP(560), FromDIP(430)));
337 //m_vebview_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430)));
338 if (wxGetApp().app_config->get_bool("developer_mode"))
339 m_vebview_release_note->EnableAccessToDevTools();
340
341 m_vebview_release_note->Bind(wxEVT_WEBVIEW_NAVIGATING,[=, count = 0](wxWebViewEvent& event) mutable {
342 count++;
343 if (count == 1) {
344 m_vebview_release_note->SetPage(wxString::FromUTF8(html_source), "");
345 } else if (count >= 3) {
346 // Launch the default browser for links clicked by the user
347 wxLaunchDefaultBrowser(event.GetURL());
348 event.Veto();
349 }
350 });
351
352 // fs::path ph(data_dir());
353 // ph /= "resources/tooltip/releasenote.html";
354 // if (!fs::exists(ph)) {
355 // ph = resources_dir();
356 // ph /= "tooltip/releasenote.html";
357 // }
358 // auto url = ph.string();
359 // std::replace(url.begin(), url.end(), '\\', '/');
360 // url = "file:///" + url;
361 // m_vebview_release_note->LoadURL(from_u8(url));
362
363 m_simplebook_release_note->AddPage(m_scrollwindows_release_note, wxEmptyString, false);
364 m_simplebook_release_note->AddPage(m_vebview_release_note, wxEmptyString, false);
365
366 auto sizer_button = new wxBoxSizer(wxHORIZONTAL);
367
368 m_button_download = new Button(this, is_running_in_msix() ? _L("Open Microsoft Store") : _L("Download"));
370
371 m_button_download->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
372 EndModal(wxID_YES);
373 });
374
375 m_button_skip_version = new Button(this, _L("Skip this Version"));
377
378 m_button_skip_version->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
379 wxGetApp().set_skip_version(true);
380 EndModal(wxID_NO);
381 });
382
383 m_cb_stable_only = new CheckBox(this);
384 m_cb_stable_only->SetValue(wxGetApp().app_config->get_bool("check_stable_update_only"));
385 m_cb_stable_only->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
386 wxGetApp().app_config->set_bool("check_stable_update_only", m_cb_stable_only->GetValue());
387 e.Skip();
388 });
389
390 auto stable_only_label = new Label(this, _L("Check for stable updates only"));
391 stable_only_label->SetFont(Label::Body_12);
392
393 m_button_cancel = new Button(this, _L("Cancel"));
395
396 m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
397 EndModal(wxID_NO);
398 });
399
400 //sizer_button->Add(m_remind_choice, 0, wxALL | wxEXPAND, FromDIP(5));
401
402 sizer_button->Add(m_cb_stable_only , 0, wxALIGN_CENTER);
403 sizer_button->Add(stable_only_label , 0, wxALIGN_CENTER | wxLEFT, FromDIP(5));
404 sizer_button->AddStretchSpacer();
405 sizer_button->Add(m_button_download , 0, wxLEFT, FromDIP(10));
406 sizer_button->Add(m_button_skip_version, 0, wxLEFT, FromDIP(10));
407 sizer_button->Add(m_button_cancel , 0, wxLEFT, FromDIP(10));
408
409 m_sizer_desc->AddStretchSpacer();
410 m_sizer_desc->Add(m_text_up_info, 0, wxEXPAND | wxBOTTOM, FromDIP(5));
411 m_sizer_desc->Add(github_link);
412 m_sizer_desc->AddStretchSpacer();
413
414 m_sizer_top->Add(m_brand , 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, FromDIP(15));
415 m_sizer_top->Add(m_sizer_desc, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
416
417 m_sizer_main->Add(m_line_top , 0, wxEXPAND);
418 m_sizer_main->Add(m_sizer_top , 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(15));
419 m_sizer_main->Add(m_simplebook_release_note, 1, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(15));
420 m_sizer_main->Add(sizer_button , 0, wxEXPAND | wxALL , FromDIP(15));
421
422 SetSizer(m_sizer_main);
423 Layout();
424 Fit();
425
426 SetMinSize(GetSize());
427
428 Centre(wxBOTH);
429 wxGetApp().UpdateDlgDarkUI(this);
430}
static unsigned int count
Definition AuxiliaryDataViewModel.cpp:246
@ Confirm
Definition Button.hpp:25
@ Regular
Definition Button.hpp:24
@ Choice
Definition Button.hpp:33
#define LB_AUTO_WRAP
Definition Label.hpp:12
#define _L(s)
Definition OBJ.cpp:34
static wxFont Head_14
Definition Label.hpp:45
static wxFont Body_12
Definition Label.hpp:55
void EndModal(int retCode) override
Definition GUI_Utils.hpp:305
wxSimplebook * m_simplebook_release_note
Definition ReleaseNote.hpp:110
Button * m_button_cancel
Definition ReleaseNote.hpp:118
Button * m_button_download
Definition ReleaseNote.hpp:117
wxScrolledWindow * m_scrollwindows_release_note
Definition ReleaseNote.hpp:111
Label * m_text_up_info
Definition ReleaseNote.hpp:108
Button * m_button_skip_version
Definition ReleaseNote.hpp:115
wxWebView * CreateTipView(wxWindow *parent)
Definition ReleaseNote.cpp:435
wxWebView * m_vebview_release_note
Definition ReleaseNote.hpp:109
wxStaticBitmap * m_brand
Definition ReleaseNote.hpp:107
CheckBox * m_cb_stable_only
Definition ReleaseNote.hpp:116
std::string html_source
Definition ReleaseNote.hpp:120
wxMouseEvent
Definition CameraPopup.cpp:47
bool is_running_in_msix()
Definition GUI_Utils.cpp:197
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448

References _L, Label::Body_12, Choice, Confirm, count, create_scaled_bitmap(), CreateTipView(), Slic3r::GUI::DPIDialog::EndModal(), Label::Head_14, html_source, Slic3r::GUI::is_running_in_msix(), LB_AUTO_WRAP, m_brand, m_button_cancel, m_button_download, m_button_skip_version, m_cb_stable_only, m_scrollwindows_release_note, m_simplebook_release_note, m_text_up_info, m_vebview_release_note, Regular, and Slic3r::GUI::wxMouseEvent.

Here is the call graph for this function:

◆ ~UpdateVersionDialog()

Slic3r::GUI::UpdateVersionDialog::~UpdateVersionDialog ( )
432{}

Member Function Documentation

◆ CreateTipView()

wxWebView * Slic3r::GUI::UpdateVersionDialog::CreateTipView ( wxWindow * parent)
436{
437 wxWebView* tipView = WebView::CreateWebView(parent, "");
438 tipView->Bind(wxEVT_WEBVIEW_LOADED, &UpdateVersionDialog::OnLoaded, this);
439 tipView->Bind(wxEVT_WEBVIEW_NAVIGATED, &UpdateVersionDialog::OnTitleChanged, this);
440 tipView->Bind(wxEVT_WEBVIEW_ERROR, &UpdateVersionDialog::OnError, this);
441 return tipView;
442}
void OnError(wxWebViewEvent &event)
Definition ReleaseNote.cpp:454
void OnTitleChanged(wxWebViewEvent &event)
Definition ReleaseNote.cpp:449
void OnLoaded(wxWebViewEvent &event)
Definition ReleaseNote.cpp:444
static wxWebView * CreateWebView(wxWindow *parent, wxString const &url)
Definition WebView.cpp:313

References WebView::CreateWebView(), OnError(), OnLoaded(), and OnTitleChanged().

Referenced by UpdateVersionDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ em_unit()

int Slic3r::GUI::DPIAware< wxDialog >::em_unit ( ) const
inlineinherited
203{ return m_em_unit; }
Definition GUI_Utils.hpp:107

Referenced by Slic3r::GUI::AuxiliaryDialog::AuxiliaryDialog(), Slic3r::GUI::CopyrightsDialog::CopyrightsDialog(), Slic3r::GUI::DesignTextDialog::DesignTextDialog(), Slic3r::GUI::EditGCodeDialog::EditGCodeDialog(), Slic3r::GUI::FileArchiveDialog::FileArchiveDialog(), Slic3r::GUI::MsgNoUpdates::MsgNoUpdates(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::OAuthDialog::OAuthDialog(), Slic3r::GUI::ParamsDialog::ParamsDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::SettingsDialog::SettingsDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), anonymous_namespace{3DPrinterOS.cpp}::UploadOptionsDialog::UploadOptionsDialog(), Slic3r::GUI::PublishSettingsDialog::add_row_ui(), Slic3r::GUI::DiffPresetDialog::complete_dialog_creation(), Slic3r::GUI::DiffPresetDialog::create_edit_sizer(), Slic3r::GUI::DiffPresetDialog::create_presets_sizer(), Slic3r::GUI::DiffPresetDialog::create_tree(), Slic3r::GUI::ElegooPrintHostSendDialog::init(), Slic3r::GUI::FlashforgePrintHostSendDialog::init(), Slic3r::GUI::PrintHostSendDialog::init(), Slic3r::GUI::AboutDialog::on_dpi_changed(), Slic3r::GUI::AuxiliaryDialog::on_dpi_changed(), Slic3r::GUI::BedShapeDialog::on_dpi_changed(), Slic3r::GUI::ConfigWizard::on_dpi_changed(), Slic3r::GUI::CopyrightsDialog::on_dpi_changed(), Slic3r::GUI::DiffPresetDialog::on_dpi_changed(), Slic3r::GUI::EditGCodeDialog::on_dpi_changed(), Slic3r::GUI::FileArchiveDialog::on_dpi_changed(), Slic3r::GUI::OAuthDialog::on_dpi_changed(), Slic3r::GUI::ObjectTableDialog::on_dpi_changed(), Slic3r::GUI::ParamsDialog::on_dpi_changed(), Slic3r::GUI::PhysicalPrinterDialog::on_dpi_changed(), Slic3r::GUI::PrintHostQueueDialog::on_dpi_changed(), Slic3r::GUI::PurgeModeDialog::on_dpi_changed(), Slic3r::GUI::SavePresetDialog::on_dpi_changed(), Slic3r::GUI::SendSystemInfoDialog::on_dpi_changed(), Slic3r::GUI::SettingsDialog::on_dpi_changed(), and Slic3r::GUI::UnsavedChangesDialog::on_dpi_changed().

Here is the caller graph for this function:

◆ enable_force_rescale()

void Slic3r::GUI::DPIAware< wxDialog >::enable_force_rescale ( )
inlineinherited
206{ m_force_rescale = true; }

◆ EndModal()

void Slic3r::GUI::DPIDialog::EndModal ( int retCode)
inlineoverrideinherited
306 {
307 if (!dialogStack.empty() && dialogStack.front() != this) {
308 // This is a bug in wxWidgets
309 // when the dialog is not top modal dialog, EndModal() just hide dialog without quit
310 // the modal event loop. And the modal event loop blocks us from bottom widgets.
311 // Solution: let user click it manually or close outside. FIXME
312 BOOST_LOG_TRIVIAL(warning) << "DPIAware::EndModal Error: dialogStack is not empty, but top dialog is not this one. retCode=" << retCode;
313 return;
314 }
315
316 return wxDialog::EndModal(retCode);
317 }
std::deque< wxDialog * > dialogStack
Definition GUI_Utils.cpp:549

References Slic3r::GUI::dialogStack.

Referenced by Slic3r::GUI::CloneDialog::CloneDialog(), Slic3r::GUI::ConfigWizard::ConfigWizard(), Slic3r::GUI::CreatePresetSuccessfulDialog::CreatePresetSuccessfulDialog(), Slic3r::GUI::DeleteConfirmDialog::DeleteConfirmDialog(), Slic3r::GUI::DesignVariableDialog::DesignVariableDialog(), Slic3r::GUI::anonymous_namespace{PrintHostDialogs.cpp}::FlashforgeSlotDialog::FlashforgeSlotDialog(), Slic3r::GUI::GuideFrame::GuideFrame(), Slic3r::GUI::InputIpAddressDialog::InputIpAddressDialog(), Slic3r::GUI::ManualNozzleCountDialog::ManualNozzleCountDialog(), Slic3r::GUI::MsgUpdateConfig::MsgUpdateConfig(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::MultiChoiceDialog::MultiChoiceDialog(), Slic3r::GUI::NetworkErrorDialog::NetworkErrorDialog(), Slic3r::GUI::NetworkPluginRestartDialog::NetworkPluginRestartDialog(), Slic3r::GUI::PartSkipConfirmDialog::PartSkipConfirmDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::PlateNameEditDialog::PlateNameEditDialog(), Slic3r::GUI::PlateSettingsDialog::PlateSettingsDialog(), Slic3r::GUI::PublishSettingsDialog::PublishSettingsDialog(), Slic3r::GUI::SelectMachineDialog::SelectMachineDialog(), Slic3r::GUI::SendFailedConfirm::SendFailedConfirm(), Slic3r::GUI::SendSystemInfoDialog::SendSystemInfoDialog(), Slic3r::GUI::ShortcutCaptureDialog::ShortcutCaptureDialog(), Slic3r::GUI::SingleChoiceDialog::SingleChoiceDialog(), StepMeshDialog::StepMeshDialog(), Slic3r::GUI::SyncAmsInfoDialog::SyncAmsInfoDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), Slic3r::GUI::UpdatePluginDialog::UpdatePluginDialog(), Slic3r::GUI::UpdateVersionDialog::UpdateVersionDialog(), Slic3r::GUI::wgtDeviceNozzleRackUpgradeDlg::wgtDeviceNozzleRackUpgradeDlg(), Slic3r::GUI::SavePresetDialog::accept(), Slic3r::GUI::MsgDialog::add_button(), Slic3r::GUI::TipsDialog::add_button(), Slic3r::GUI::FilamentPickerDialog::BindEvents(), Slic3r::GUI::PluginPickerDialog::build_capability_ui(), Slic3r::GUI::BedShapeDialog::build_dialog(), Slic3r::GUI::PluginPickerDialog::build_ui(), Slic3r::GUI::UnsavedChangesDialog::close(), Slic3r::GUI::FileArchiveDialog::create_btn_sizer(), Slic3r::GUI::ColorDecomposeDialog::create_button_panel(), Slic3r::GUI::MixedFilamentDialog::create_button_panel(), Slic3r::GUI::CreateFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::CreatePresetForPrinterDialog::create_dialog_buttons(), Slic3r::GUI::EditFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::create_dialog_buttons(), Slic3r::GUI::PreferencesDialog::create_item_language_combobox(), Slic3r::GUI::PreferencesDialog::create_item_region_combobox(), Slic3r::GUI::PreferencesDialog::create_items(), Slic3r::GUI::CreatePrinterPresetDialog::create_page1_dialog_buttons(), Slic3r::GUI::CreatePrinterPresetDialog::create_page2_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::data_init(), Slic3r::GUI::WebDialog::destroy_silently(), Slic3r::GUI::EditFilamentPresetDialog::edit_preset(), Slic3r::GUI::ConnectPrinterDialog::end_modal(), Slic3r::GUI::PrintHostSendDialog::EndModal(), Slic3r::GUI::ColorPickerDialog::finish(), Slic3r::GUI::WebDialog::finish(), Slic3r::GUI::Newer3mfVersionDialog::get_btn_sizer(), Slic3r::GUI::ScoreDialog::get_button_sizer(), Slic3r::GUI::WebViewHostDialog::handle_common_script_command(), Slic3r::GUI::ExportPresetBundleDialog::InitExportData(), Slic3r::GUI::SelectMachineDialog::navigate_to_timelapse_page(), Slic3r::GUI::BindMachineDialog::on_bind_success(), Slic3r::GUI::ConnectPrinterDialog::on_button_confirm(), Slic3r::GUI::RecenterDialog::on_button_confirm(), Slic3r::GUI::BindMachineDialog::on_cancel(), Slic3r::GUI::EditCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::InputIpAddressDialog::on_cancel(), Slic3r::GUI::NewCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::OAuthDialog::on_cancel(), Slic3r::GUI::PingCodeBindDialog::on_cancel(), Slic3r::GUI::SelectMachineDialog::on_cancel(), Slic3r::GUI::SendToPrinterDialog::on_cancel(), Slic3r::GUI::SyncAmsInfoDialog::on_cancel(), Slic3r::GUI::UnBindMachineDialog::on_cancel(), Slic3r::GUI::WebDialog::on_close_window(), Slic3r::GUI::NetworkPluginDownloadDialog::on_dont_ask(), Slic3r::GUI::NetworkPluginDownloadDialog::on_download(), Slic3r::GUI::EditDevNameDialog::on_edit_name(), Slic3r::GUI::ConfirmBeforeSendDialog::on_hide(), Slic3r::GUI::PrivacyUpdateDialog::on_hide(), Slic3r::GUI::ShortcutCaptureDialog::on_key(), Slic3r::GUI::TextureImportDialog::on_ok_clicked(), Slic3r::GUI::FileArchiveDialog::on_open_button(), Slic3r::GUI::NetworkPluginDownloadDialog::on_remind_later(), Slic3r::GUI::ProjectDropDialog::on_select_cancel(), Slic3r::GUI::SavePresetDialog::on_select_cancel(), Slic3r::GUI::ProjectDropDialog::on_select_ok(), Slic3r::GUI::SendMultiMachinePage::on_send(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip(), Slic3r::GUI::TextureImportDialog::on_skip_clicked(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip_version(), Slic3r::GUI::Cornering_Test_Dlg::on_start(), Slic3r::GUI::FlowRateCalibrationDialog::on_start(), Slic3r::GUI::Input_Shaping_Damp_Test_Dlg::on_start(), Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::on_start(), Slic3r::GUI::MaxVolumetricSpeed_Test_Dlg::on_start(), Slic3r::GUI::PA_Calibration_Dlg::on_start(), Slic3r::GUI::Retraction_Test_Dlg::on_start(), Slic3r::GUI::Temp_Calibration_Dlg::on_start(), Slic3r::GUI::VFA_Test_Dlg::on_start(), Slic3r::GUI::CalibrationDialog::on_start_calibration(), Slic3r::GUI::UnBindMachineDialog::on_unbind_printer(), Slic3r::GUI::PartSkipDialog::OnApplyDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::OnCancel(), Slic3r::GUI::AboutDialog::onCloseDialog(), Slic3r::GUI::CopyrightsDialog::onCloseDialog(), Slic3r::GUI::MultiNozzleSyncDialog::OnRackStatusReadingFinished(), Slic3r::GUI::GuideFrame::OnScriptMessage(), Slic3r::GUI::InputIpAddressDialog::OnTimer(), Slic3r::GUI::KBShortcutsDialog::open_mouse_preferences(), Slic3r::GUI::TroubleshootDialog::PackAll(), Slic3r::GUI::TroubleshootDialog::RebuildSystemProfiles(), Slic3r::GUI::SpeedDialWebDialog::run_action(), Slic3r::GUI::OAuthDialog::Show(), Slic3r::GUI::MultiNozzleSyncDialog::UpdateButton(), and Slic3r::GUI::CreatePrinterPresetDialog::validate_input_valid().

◆ force_rescale()

bool Slic3r::GUI::DPIAware< wxDialog >::force_rescale ( ) const
inlineinherited
201{ return m_force_rescale; }

◆ is_new_scale_factor()

bool Slic3r::GUI::DPIAware< wxDialog >::is_new_scale_factor ( ) const
inlineprivateinherited
262{ return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; }

◆ normal_font()

◆ on_dpi_changed()

void Slic3r::GUI::UpdateVersionDialog::on_dpi_changed ( const wxRect & suggested_rect)
overridevirtual

Implements Slic3r::GUI::DPIAware< wxDialog >.

493 {
494 m_button_download->Rescale();
495 m_button_skip_version->Rescale();
496 m_button_cancel->Rescale();
497}

References m_button_cancel, m_button_download, and m_button_skip_version.

◆ on_sys_color_changed()

◆ OnError()

void Slic3r::GUI::UpdateVersionDialog::OnError ( wxWebViewEvent & event)
455{
456 event.Skip();
457}

Referenced by CreateTipView().

Here is the caller graph for this function:

◆ OnLoaded()

void Slic3r::GUI::UpdateVersionDialog::OnLoaded ( wxWebViewEvent & event)
445{
446 event.Skip();
447}

Referenced by CreateTipView().

Here is the caller graph for this function:

◆ OnTitleChanged()

void Slic3r::GUI::UpdateVersionDialog::OnTitleChanged ( wxWebViewEvent & event)
450{
451 //ShowReleaseNote();
452 event.Skip();
453}

Referenced by CreateTipView().

Here is the caller graph for this function:

◆ prev_scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::prev_scale_factor ( ) const
inlineinherited
196{ return m_prev_scale_factor; }

◆ rescale()

void Slic3r::GUI::DPIAware< wxDialog >::rescale ( const wxRect & suggested_rect)
inlineprivateinherited
265 {
266 this->Freeze();
267
268 m_force_rescale = false;
269
270 // set normal application font as a current window font
271 m_normal_font = this->GetFont();
272
274
275 // rescale missed controls sizes and images
277
278 this->Layout();
279 this->Thaw();
280
281 // reset previous scale factor from current scale factor value
283 }
virtual void on_dpi_changed(const wxRect &suggested_rect)=0
void update_em_unit()
Definition GUI_Utils.hpp:249

◆ RunScript()

void Slic3r::GUI::UpdateVersionDialog::RunScript ( std::string script)
488{
490 script.clear();
491}
static bool RunScript(wxWebView *webView, wxString const &msg)
Definition WebView.cpp:491

References m_vebview_release_note, and WebView::RunScript().

Referenced by ShowReleaseNote().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::scale_factor ( ) const
inlineinherited
195{ return m_scale_factor; }

◆ set_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::set_em_unit ( int v)
inlineinherited
200{ m_em_unit = v; }

◆ set_prev_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_prev_scale_factor ( float v)
inlineinherited

◆ set_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_scale_factor ( float v)
inlineinherited
198{ m_scale_factor = v; }

◆ ShowModal()

◆ ShowReleaseNote()

bool Slic3r::GUI::UpdateVersionDialog::ShowReleaseNote ( std::string content)
481{
482 auto script = "window.showMarkdown('" + url_encode(content) + "', true);";
483 RunScript(script);
484 return true;
485}
void RunScript(std::string script)
Definition ReleaseNote.cpp:487
static std::string url_encode(const std::string &value)
Definition MarkdownTip.cpp:33

References RunScript(), and Slic3r::GUI::url_encode().

Here is the call graph for this function:

◆ splitWithStl()

std::vector< std::string > Slic3r::GUI::UpdateVersionDialog::splitWithStl ( std::string str,
std::string pattern )
500{
501 std::string::size_type pos;
502 std::vector<std::string> result;
503 str += pattern;
504 int size = str.size();
505 for (int i = 0; i < size; i++)
506 {
507 pos = str.find(pattern, i);
508 if (pos < size)
509 {
510 std::string s = str.substr(i, pos - i);
511 result.push_back(s);
512 i = pos + pattern.size() - 1;
513 }
514 }
515 return result;
516}
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16

◆ update_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::update_em_unit ( )
inlineprivateinherited
250 {
251 // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3).
252 // So, calculate the m_em_unit value from the font size, as before
253#if !defined(__WXGTK__)
255#else
256 // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window.
257 m_em_unit = std::max<size_t>(10, this->GetTextExtent("m").x - 1);
258#endif // __WXGTK__
259 }

◆ update_version_info()

void Slic3r::GUI::UpdateVersionDialog::update_version_info ( wxString release_note,
wxString version )
519{
520 //bbs check whether the web display is used
521 bool use_web_link = false;
522 url_line = "";
523 // Orca: not used in Orca Slicer
524 // auto split_array = splitWithStl(release_note.ToStdString(), "###");
525 // if (split_array.size() >= 3) {
526 // for (auto i = 0; i < split_array.size(); i++) {
527 // std::string url = split_array[i];
528 // if (std::strstr(url.c_str(), "http://") != NULL || std::strstr(url.c_str(), "https://") != NULL) {
529 // use_web_link = true;
530 // url_line = url;
531 // break;
532 // }
533 // }
534 // }
535
536 // if (use_web_link) {
537 // m_brand->Hide();
538 // m_text_up_info->Hide();
539 // m_simplebook_release_note->SetSelection(1);
540 // m_vebview_release_note->LoadURL(from_u8(url_line));
541 // }
542 // else {
543 //m_simplebook_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430)));
544 m_simplebook_release_note->SetSelection(1);
545 if (is_running_in_msix())
546 m_text_up_info->SetLabel(wxString::Format(_L("New version available: %s. Please update OrcaSlicer from the Microsoft Store."), version));
547 else
548 m_text_up_info->SetLabel(wxString::Format(_L("Click to download new version in default browser: %s"), version));
549 auto data_buf_in = release_note.utf8_str();
550 auto bg_color = StateColor::darkModeColorFor(wxColour("#FFFFFF")).GetAsString();
551 auto fg_color = StateColor::darkModeColorFor(wxColour("#262E30")).GetAsString();
552 auto style = "body {color:" + fg_color + "; background-color:" + bg_color + "; font-family:sans-serif}"
553 + "a {color: #009688}" // matches hyperlink colors
554 + "img {max-width:100%; height:auto}" // fixes overflowing images
555 + "ul {padding-inline-start: 20px}"; // reduce left padding on list items
556 html_source = (boost::format("<html><head><style>%1%</style></head><body>") % style).str();
557 md_html(data_buf_in.data(), data_buf_in.length(), [](const MD_CHAR* text, MD_SIZE size, void* userdata) {
558 std::string* out_buf = (std::string*)userdata;
559 out_buf->append(text, size);
560 }, (void*) &html_source, MD_DIALECT_GITHUB | MD_FLAG_STRIKETHROUGH | MD_FLAG_WIKILINKS, 0);
561 html_source.append("</body></html>");
562 m_vebview_release_note->LoadURL(file_url_from_path(boost::filesystem::path(resources_dir()) / "web/guide/0/index.html"));
563
564 SetMinSize(GetSize());
565 SetMaxSize(GetSize());
566 // }
567
568 wxGetApp().UpdateDlgDarkUI(this);
569 Layout();
570 Fit();
571}
#define style
Definition WipeTowerDialog.cpp:101
std::string url_line
Definition ReleaseNote.hpp:119
static wxColour darkModeColorFor(wxColour const &color)
Definition StateColor.cpp:219
wxColour bg_color()
Definition SpeedDialDialog.cpp:69
wxString file_url_from_path(const boost::filesystem::path &path)
Definition GUI.cpp:569
const std::string & resources_dir()
Definition utils.cpp:296

References _L, StateColor::darkModeColorFor(), Slic3r::GUI::file_url_from_path(), html_source, Slic3r::GUI::is_running_in_msix(), m_simplebook_release_note, m_text_up_info, m_vebview_release_note, Slic3r::resources_dir(), style, and url_line.

Referenced by Slic3r::GUI::GUI_App::on_init_inner().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ html_source

std::string Slic3r::GUI::UpdateVersionDialog::html_source

◆ m_bitmap_open_in_browser

wxStaticBitmap* Slic3r::GUI::UpdateVersionDialog::m_bitmap_open_in_browser

◆ m_brand

wxStaticBitmap* Slic3r::GUI::UpdateVersionDialog::m_brand {nullptr}
107{nullptr};

Referenced by UpdateVersionDialog().

◆ m_button_cancel

Button* Slic3r::GUI::UpdateVersionDialog::m_button_cancel

◆ m_button_download

Button* Slic3r::GUI::UpdateVersionDialog::m_button_download

◆ m_button_skip_version

Button* Slic3r::GUI::UpdateVersionDialog::m_button_skip_version

◆ m_can_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_can_rescale
privateinherited
235{ true };

◆ m_cb_stable_only

CheckBox* Slic3r::GUI::UpdateVersionDialog::m_cb_stable_only

Referenced by UpdateVersionDialog().

◆ m_em_unit

int Slic3r::GUI::DPIAware< wxDialog >::m_em_unit
privateinherited

◆ m_force_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_force_rescale
privateinherited
236{ false };

◆ m_new_font_point_size

int Slic3r::GUI::DPIAware< wxDialog >::m_new_font_point_size
privateinherited

◆ m_normal_font

wxFont Slic3r::GUI::DPIAware< wxDialog >::m_normal_font
privateinherited

◆ m_prev_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_prev_scale_factor
privateinherited

◆ m_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_scale_factor
privateinherited

◆ m_scrollwindows_release_note

wxScrolledWindow* Slic3r::GUI::UpdateVersionDialog::m_scrollwindows_release_note {nullptr}
111{nullptr};

Referenced by UpdateVersionDialog().

◆ m_simplebook_release_note

wxSimplebook* Slic3r::GUI::UpdateVersionDialog::m_simplebook_release_note {nullptr}
110{nullptr};

Referenced by UpdateVersionDialog(), and update_version_info().

◆ m_staticText_release_note

Label* Slic3r::GUI::UpdateVersionDialog::m_staticText_release_note {nullptr}
113{nullptr};

◆ m_text_up_info

Label* Slic3r::GUI::UpdateVersionDialog::m_text_up_info {nullptr}
108{nullptr};

Referenced by UpdateVersionDialog(), and update_version_info().

◆ m_vebview_release_note

wxWebView* Slic3r::GUI::UpdateVersionDialog::m_vebview_release_note {nullptr}
109{nullptr};

Referenced by UpdateVersionDialog(), RunScript(), and update_version_info().

◆ sizer_text_release_note

wxBoxSizer* Slic3r::GUI::UpdateVersionDialog::sizer_text_release_note {nullptr}
112{nullptr};

◆ url_line

std::string Slic3r::GUI::UpdateVersionDialog::url_line

Referenced by update_version_info().


The documentation for this class was generated from the following files: