mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-20 20:03:47 +00:00
ENH: page faults when device page idle
jira: [none] Change-Id: I4dc95ae6332b81e571fb5ef09c75dcf01e77170e (cherry picked from commit cefe973772c7f7045713470d61cc85221574d9c5)
This commit is contained in:
@@ -1004,7 +1004,7 @@ void PrintingTaskPanel::show_error_msg(wxString msg)
|
|||||||
|
|
||||||
void PrintingTaskPanel::reset_printing_value()
|
void PrintingTaskPanel::reset_printing_value()
|
||||||
{
|
{
|
||||||
this->set_thumbnail_img(m_thumbnail_placeholder.bmp());
|
this->set_thumbnail_img(m_thumbnail_placeholder.bmp(), m_thumbnail_placeholder.name());
|
||||||
this->set_plate_index(-1);
|
this->set_plate_index(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1182,8 +1182,15 @@ void PrintingTaskPanel::show_profile_info(bool show, wxString profile /*= wxEmpt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintingTaskPanel::set_thumbnail_img(const wxBitmap& bmp)
|
// the API will buff the bmp and bmp_name
|
||||||
|
// when bmp_name is empty, the API will replace the image on force
|
||||||
|
void PrintingTaskPanel::set_thumbnail_img(const wxBitmap& bmp, const std::string& bmp_name)
|
||||||
{
|
{
|
||||||
|
if (!bmp_name.empty() && m_thumbnail_bmp_display_name == bmp_name) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_thumbnail_bmp_display_name = bmp_name;
|
||||||
m_thumbnail_bmp_display = bmp;
|
m_thumbnail_bmp_display = bmp;
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
@@ -2156,7 +2163,6 @@ void StatusBasePanel::show_ams_group(bool show)
|
|||||||
m_ams_control->Fit();
|
m_ams_control->Fit();
|
||||||
Layout();
|
Layout();
|
||||||
Fit();
|
Fit();
|
||||||
wxGetApp().mainframe->m_monitor->get_status_panel()->Layout();
|
|
||||||
wxGetApp().mainframe->m_monitor->Layout();
|
wxGetApp().mainframe->m_monitor->Layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2166,7 +2172,6 @@ void StatusBasePanel::show_ams_group(bool show)
|
|||||||
m_ams_control->Fit();
|
m_ams_control->Fit();
|
||||||
Layout();
|
Layout();
|
||||||
Fit();
|
Fit();
|
||||||
wxGetApp().mainframe->m_monitor->get_status_panel()->Layout();
|
|
||||||
wxGetApp().mainframe->m_monitor->Layout();
|
wxGetApp().mainframe->m_monitor->Layout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2217,6 +2222,7 @@ void StatusPanel::update_camera_state(MachineObject* obj)
|
|||||||
m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
|
m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
|
||||||
}
|
}
|
||||||
m_last_sdcard = sdcard_state;
|
m_last_sdcard = sdcard_state;
|
||||||
|
m_panel_monitoring_title->Layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
//recording
|
//recording
|
||||||
@@ -2229,8 +2235,11 @@ void StatusPanel::update_camera_state(MachineObject* obj)
|
|||||||
}
|
}
|
||||||
m_last_recording = obj->is_recording() ? 1 : 0;
|
m_last_recording = obj->is_recording() ? 1 : 0;
|
||||||
}
|
}
|
||||||
if (!m_bitmap_recording_img->IsShown())
|
|
||||||
|
if (!m_bitmap_recording_img->IsShown()) {
|
||||||
m_bitmap_recording_img->Show();
|
m_bitmap_recording_img->Show();
|
||||||
|
m_panel_monitoring_title->Layout();
|
||||||
|
}
|
||||||
|
|
||||||
/*if (m_bitmap_recording_img->IsShown())
|
/*if (m_bitmap_recording_img->IsShown())
|
||||||
m_bitmap_recording_img->Hide();*/
|
m_bitmap_recording_img->Hide();*/
|
||||||
@@ -2245,11 +2254,16 @@ void StatusPanel::update_camera_state(MachineObject* obj)
|
|||||||
}
|
}
|
||||||
m_last_timelapse = obj->is_timelapse() ? 1 : 0;
|
m_last_timelapse = obj->is_timelapse() ? 1 : 0;
|
||||||
}
|
}
|
||||||
if (!m_bitmap_timelapse_img->IsShown())
|
|
||||||
|
if (!m_bitmap_timelapse_img->IsShown()) {
|
||||||
m_bitmap_timelapse_img->Show();
|
m_bitmap_timelapse_img->Show();
|
||||||
|
m_panel_monitoring_title->Layout();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (m_bitmap_timelapse_img->IsShown())
|
if (m_bitmap_timelapse_img->IsShown()) {
|
||||||
m_bitmap_timelapse_img->Hide();
|
m_bitmap_timelapse_img->Hide();
|
||||||
|
m_panel_monitoring_title->Layout();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//vcamera
|
//vcamera
|
||||||
@@ -2262,11 +2276,16 @@ void StatusPanel::update_camera_state(MachineObject* obj)
|
|||||||
}
|
}
|
||||||
m_last_vcamera = m_media_play_ctrl->IsStreaming() ? 1 : 0;
|
m_last_vcamera = m_media_play_ctrl->IsStreaming() ? 1 : 0;
|
||||||
}
|
}
|
||||||
if (!m_bitmap_vcamera_img->IsShown())
|
|
||||||
|
if (!m_bitmap_vcamera_img->IsShown()) {
|
||||||
m_bitmap_vcamera_img->Show();
|
m_bitmap_vcamera_img->Show();
|
||||||
|
m_panel_monitoring_title->Layout();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (m_bitmap_vcamera_img->IsShown())
|
if (m_bitmap_vcamera_img->IsShown()) {
|
||||||
m_bitmap_vcamera_img->Hide();
|
m_bitmap_vcamera_img->Hide();
|
||||||
|
m_panel_monitoring_title->Layout();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//camera setting
|
//camera setting
|
||||||
@@ -2274,8 +2293,6 @@ void StatusPanel::update_camera_state(MachineObject* obj)
|
|||||||
bool show_vcamera = m_media_play_ctrl->IsStreaming();
|
bool show_vcamera = m_media_play_ctrl->IsStreaming();
|
||||||
m_camera_popup->update(show_vcamera);
|
m_camera_popup->update(show_vcamera);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_panel_monitoring_title->Layout();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxString &name)
|
StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxString &name)
|
||||||
@@ -2614,7 +2631,7 @@ void StatusPanel::on_webrequest_state(wxWebRequestEvent &evt)
|
|||||||
wxImage img(*evt.GetResponse().GetStream());
|
wxImage img(*evt.GetResponse().GetStream());
|
||||||
img_list.insert(std::make_pair(m_request_url, img));
|
img_list.insert(std::make_pair(m_request_url, img));
|
||||||
wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y, wxIMAGE_QUALITY_HIGH);
|
wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y, wxIMAGE_QUALITY_HIGH);
|
||||||
m_project_task_panel->set_thumbnail_img(resize_img);
|
m_project_task_panel->set_thumbnail_img(resize_img, "");
|
||||||
m_project_task_panel->set_brightness_value(get_brightness_value(resize_img));
|
m_project_task_panel->set_brightness_value(get_brightness_value(resize_img));
|
||||||
}
|
}
|
||||||
if (obj) {
|
if (obj) {
|
||||||
@@ -2628,7 +2645,7 @@ void StatusPanel::on_webrequest_state(wxWebRequestEvent &evt)
|
|||||||
case wxWebRequest::State_Failed:
|
case wxWebRequest::State_Failed:
|
||||||
case wxWebRequest::State_Cancelled:
|
case wxWebRequest::State_Cancelled:
|
||||||
case wxWebRequest::State_Unauthorized: {
|
case wxWebRequest::State_Unauthorized: {
|
||||||
m_project_task_panel->set_thumbnail_img(m_thumbnail_brokenimg.bmp());
|
m_project_task_panel->set_thumbnail_img(m_thumbnail_brokenimg.bmp(), m_thumbnail_brokenimg.name());
|
||||||
m_project_task_panel->set_plate_index(-1);
|
m_project_task_panel->set_plate_index(-1);
|
||||||
task_thumbnail_state = ThumbnailState::BROKEN_IMG;
|
task_thumbnail_state = ThumbnailState::BROKEN_IMG;
|
||||||
break;
|
break;
|
||||||
@@ -2787,7 +2804,6 @@ void StatusPanel::update(MachineObject *obj)
|
|||||||
|
|
||||||
if (m_panel_control_title) {
|
if (m_panel_control_title) {
|
||||||
m_panel_control_title->Layout();
|
m_panel_control_title->Layout();
|
||||||
m_panel_control_title->Refresh();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!obj->dev_connection_type.empty()) {
|
if (!obj->dev_connection_type.empty()) {
|
||||||
@@ -3620,7 +3636,7 @@ void StatusPanel::update_subtask(MachineObject *obj)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (calib_bitmap != nullptr)
|
if (calib_bitmap != nullptr)
|
||||||
m_project_task_panel->set_thumbnail_img(*calib_bitmap);
|
m_project_task_panel->set_thumbnail_img(*calib_bitmap, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
m_project_task_panel->show_layers_num(obj->is_support_layer_num);
|
m_project_task_panel->show_layers_num(obj->is_support_layer_num);
|
||||||
@@ -3760,8 +3776,6 @@ void StatusPanel::update_subtask(MachineObject *obj)
|
|||||||
} else {
|
} else {
|
||||||
reset_printing_values();
|
reset_printing_values();
|
||||||
}
|
}
|
||||||
|
|
||||||
Layout();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatusPanel::update_partskip_subtask(MachineObject *obj){
|
void StatusPanel::update_partskip_subtask(MachineObject *obj){
|
||||||
@@ -3818,7 +3832,7 @@ void StatusPanel::update_cloud_subtask(MachineObject *obj)
|
|||||||
if (m_current_print_mode != PrintingTaskType::CALIBRATION ||(m_calib_mode == CalibMode::Calib_Flow_Rate && m_calib_method == CalibrationMethod::CALI_METHOD_MANUAL)) {
|
if (m_current_print_mode != PrintingTaskType::CALIBRATION ||(m_calib_mode == CalibMode::Calib_Flow_Rate && m_calib_method == CalibrationMethod::CALI_METHOD_MANUAL)) {
|
||||||
img = it->second;
|
img = it->second;
|
||||||
wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y);
|
wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y);
|
||||||
m_project_task_panel->set_thumbnail_img(resize_img);
|
m_project_task_panel->set_thumbnail_img(resize_img, "");
|
||||||
m_project_task_panel->set_brightness_value(get_brightness_value(resize_img));
|
m_project_task_panel->set_brightness_value(get_brightness_value(resize_img));
|
||||||
}
|
}
|
||||||
if (this->obj) {
|
if (this->obj) {
|
||||||
@@ -3847,7 +3861,7 @@ void StatusPanel::update_sdcard_subtask(MachineObject *obj)
|
|||||||
update_calib_bitmap();
|
update_calib_bitmap();
|
||||||
if (m_current_print_mode != PrintingTaskType::CALIBRATION) {
|
if (m_current_print_mode != PrintingTaskType::CALIBRATION) {
|
||||||
m_project_task_panel->get_bitmap_thumbnail()->SetBitmap(m_thumbnail_sdcard.bmp());
|
m_project_task_panel->get_bitmap_thumbnail()->SetBitmap(m_thumbnail_sdcard.bmp());
|
||||||
m_project_task_panel->set_thumbnail_img(m_thumbnail_sdcard.bmp());
|
m_project_task_panel->set_thumbnail_img(m_thumbnail_sdcard.bmp(), m_thumbnail_sdcard.name());
|
||||||
}
|
}
|
||||||
task_thumbnail_state = ThumbnailState::SDCARD_THUMBNAIL;
|
task_thumbnail_state = ThumbnailState::SDCARD_THUMBNAIL;
|
||||||
m_load_sdcard_thumbnail = true;
|
m_load_sdcard_thumbnail = true;
|
||||||
|
|||||||
@@ -264,6 +264,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
MachineObject* m_obj{nullptr};
|
MachineObject* m_obj{nullptr};
|
||||||
ScalableBitmap m_thumbnail_placeholder;
|
ScalableBitmap m_thumbnail_placeholder;
|
||||||
|
std::string m_thumbnail_bmp_display_name;
|
||||||
wxBitmap m_thumbnail_bmp_display;
|
wxBitmap m_thumbnail_bmp_display;
|
||||||
ScalableBitmap m_bitmap_use_time;
|
ScalableBitmap m_bitmap_use_time;
|
||||||
ScalableBitmap m_bitmap_use_weight;
|
ScalableBitmap m_bitmap_use_weight;
|
||||||
@@ -336,7 +337,7 @@ public:
|
|||||||
void update_layers_num(bool show, wxString num = wxEmptyString);
|
void update_layers_num(bool show, wxString num = wxEmptyString);
|
||||||
void show_priting_use_info(bool show, wxString time = wxEmptyString, wxString weight = wxEmptyString);
|
void show_priting_use_info(bool show, wxString time = wxEmptyString, wxString weight = wxEmptyString);
|
||||||
void show_profile_info(bool show, wxString profile = wxEmptyString);
|
void show_profile_info(bool show, wxString profile = wxEmptyString);
|
||||||
void set_thumbnail_img(const wxBitmap& bmp);
|
void set_thumbnail_img(const wxBitmap& bmp, const std::string& bmp_name);
|
||||||
void set_brightness_value(int value) { m_brightness_value = value; }
|
void set_brightness_value(int value) { m_brightness_value = value; }
|
||||||
void set_plate_index(int plate_idx = -1);
|
void set_plate_index(int plate_idx = -1);
|
||||||
void market_scoring_show();
|
void market_scoring_show();
|
||||||
|
|||||||
@@ -63,9 +63,11 @@ bool Button::Create(wxWindow* parent, wxString text, wxString icon, long style,
|
|||||||
|
|
||||||
void Button::SetLabel(const wxString& label)
|
void Button::SetLabel(const wxString& label)
|
||||||
{
|
{
|
||||||
wxWindow::SetLabel(label);
|
if (label != wxWindow::GetLabel()) {
|
||||||
messureSize();
|
wxWindow::SetLabel(label);
|
||||||
Refresh();
|
messureSize();
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Button::SetFont(const wxFont& font)
|
bool Button::SetFont(const wxFont& font)
|
||||||
|
|||||||
@@ -31,8 +31,10 @@ CheckBox::CheckBox(wxWindow *parent, int id)
|
|||||||
|
|
||||||
void CheckBox::SetValue(bool value)
|
void CheckBox::SetValue(bool value)
|
||||||
{
|
{
|
||||||
wxBitmapToggleButton::SetValue(value);
|
if (wxBitmapToggleButton::GetValue() != value) {
|
||||||
update();
|
wxBitmapToggleButton::SetValue(value);
|
||||||
|
update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckBox::SetHalfChecked(bool value)
|
void CheckBox::SetHalfChecked(bool value)
|
||||||
|
|||||||
@@ -51,6 +51,16 @@ public:
|
|||||||
// single color
|
// single color
|
||||||
StateColor(unsigned long color);
|
StateColor(unsigned long color);
|
||||||
|
|
||||||
|
// operator==
|
||||||
|
bool operator==(StateColor const& other) const{
|
||||||
|
return statesList_ == other.statesList_ && colors_ == other.colors_ && takeFocusedAsHovered_ == other.takeFocusedAsHovered_;
|
||||||
|
};
|
||||||
|
|
||||||
|
// operator!=
|
||||||
|
bool operator!=(StateColor const& other) const{
|
||||||
|
return !(*this == other);
|
||||||
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void append(wxColour const & color, int states);
|
void append(wxColour const & color, int states);
|
||||||
|
|
||||||
|
|||||||
@@ -66,9 +66,11 @@ void StaticBox::SetBorderWidth(int width)
|
|||||||
|
|
||||||
void StaticBox::SetBorderColor(StateColor const &color)
|
void StaticBox::SetBorderColor(StateColor const &color)
|
||||||
{
|
{
|
||||||
border_color = color;
|
if (border_color != color) {
|
||||||
state_handler.update_binds();
|
border_color = color;
|
||||||
Refresh();
|
state_handler.update_binds();
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticBox::SetBorderColorNormal(wxColor const &color)
|
void StaticBox::SetBorderColorNormal(wxColor const &color)
|
||||||
@@ -118,11 +120,13 @@ wxColor StaticBox::GetParentBackgroundColor(wxWindow* parent)
|
|||||||
|
|
||||||
void StaticBox::ShowBadge(bool show)
|
void StaticBox::ShowBadge(bool show)
|
||||||
{
|
{
|
||||||
if (show)
|
if (show && badge.name() != "badge") {
|
||||||
badge = ScalableBitmap(this, "badge", 18);
|
badge = ScalableBitmap(this, "badge", 18);
|
||||||
else
|
Refresh();
|
||||||
|
} else if (!show && !badge.name().empty()) {
|
||||||
badge = ScalableBitmap {};
|
badge = ScalableBitmap {};
|
||||||
Refresh();
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticBox::eraseEvent(wxEraseEvent& evt)
|
void StaticBox::eraseEvent(wxEraseEvent& evt)
|
||||||
|
|||||||
@@ -9,11 +9,13 @@ StaticGroup::StaticGroup(wxWindow *parent, wxWindowID id, const wxString &label)
|
|||||||
|
|
||||||
void StaticGroup::ShowBadge(bool show)
|
void StaticGroup::ShowBadge(bool show)
|
||||||
{
|
{
|
||||||
if (show)
|
if (show && badge.name() != "badge") {
|
||||||
badge = ScalableBitmap(this, "badge", 18);
|
badge = ScalableBitmap(this, "badge", 18);
|
||||||
else
|
Refresh();
|
||||||
|
} else if (!show && !badge.name().empty()) {
|
||||||
badge = ScalableBitmap{};
|
badge = ScalableBitmap{};
|
||||||
Refresh();
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticGroup::DrawBorderAndLabel(wxDC& dc)
|
void StaticGroup::DrawBorderAndLabel(wxDC& dc)
|
||||||
|
|||||||
@@ -51,9 +51,11 @@ void StepCtrlBase::SelectItem(int item)
|
|||||||
|
|
||||||
void StepCtrlBase::Idle()
|
void StepCtrlBase::Idle()
|
||||||
{
|
{
|
||||||
step = -1;
|
if (step != -1) {
|
||||||
sendStepCtrlEvent();
|
step = -1;
|
||||||
Refresh();
|
sendStepCtrlEvent();
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool StepCtrlBase::SetTipFont(wxFont const& font)
|
bool StepCtrlBase::SetTipFont(wxFont const& font)
|
||||||
|
|||||||
@@ -62,9 +62,10 @@ void SwitchButton::SetThumbColor(StateColor const& color)
|
|||||||
|
|
||||||
void SwitchButton::SetValue(bool value)
|
void SwitchButton::SetValue(bool value)
|
||||||
{
|
{
|
||||||
if (value != GetValue())
|
if (value != GetValue()) {
|
||||||
wxBitmapToggleButton::SetValue(value);
|
wxBitmapToggleButton::SetValue(value);
|
||||||
update();
|
update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SwitchButton::SetBackgroundColour(const wxColour& colour)
|
bool SwitchButton::SetBackgroundColour(const wxColour& colour)
|
||||||
@@ -212,17 +213,30 @@ SwitchBoard::SwitchBoard(wxWindow *parent, wxString leftL, wxString right, wxSiz
|
|||||||
void SwitchBoard::updateState(wxString target)
|
void SwitchBoard::updateState(wxString target)
|
||||||
{
|
{
|
||||||
if (target.empty()) {
|
if (target.empty()) {
|
||||||
|
if (!switch_left && !switch_right) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch_left = false;
|
switch_left = false;
|
||||||
switch_right = false;
|
switch_right = false;
|
||||||
} else {
|
} else {
|
||||||
if (target == "left") {
|
if (target == "left") {
|
||||||
|
if (switch_left && !switch_right) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch_left = true;
|
switch_left = true;
|
||||||
switch_right = false;
|
switch_right = false;
|
||||||
} else if (target == "right") {
|
} else if (target == "right") {
|
||||||
|
if (!switch_left && switch_right) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch_left = false;
|
switch_left = false;
|
||||||
switch_right = true;
|
switch_right = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user