mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-18 11:02:08 +00:00
FIX: modify style; optimize ext image loading time
jira: [none] Change-Id: Ia4bd69cc4ae6ae115c22a5c0b6c6a517773ec3f4 (cherry picked from commit 1dfd5cfdfb44b7ad4418633a3e00f5c451856fe7)
This commit is contained in:
@@ -7485,7 +7485,12 @@ std::string DeviceManager::get_printer_diagram_img(std::string type_str)
|
||||
}
|
||||
std::string DeviceManager::get_printer_ams_img(std::string type_str)
|
||||
{
|
||||
return get_value_from_config<std::string>(type_str, "printer_use_ams_image");
|
||||
return get_value_from_config<std::string>(type_str, "printer_use_ams_image"); }
|
||||
|
||||
std::string DeviceManager::get_printer_ext_img(std::string type_str, int pos) {
|
||||
const auto& vec = get_value_from_config<std::vector<std::string>>(type_str, "printer_ext_image");
|
||||
if (vec.size() > pos) { return vec[pos];}
|
||||
return std::string();
|
||||
}
|
||||
|
||||
bool DeviceManager::get_printer_is_enclosed(std::string type_str) {
|
||||
|
||||
@@ -1460,7 +1460,7 @@ public:
|
||||
}
|
||||
}
|
||||
catch (...) {}
|
||||
return "";
|
||||
return T();
|
||||
}
|
||||
|
||||
static std::string parse_printer_type(std::string type_str);
|
||||
@@ -1470,6 +1470,7 @@ public:
|
||||
static std::string get_printer_series(std::string type_str);
|
||||
static std::string get_printer_diagram_img(std::string type_str);
|
||||
static std::string get_printer_ams_img(std::string type_str);
|
||||
static std::string get_printer_ext_img(std::string type_str, int pos);
|
||||
static PrinterArch get_printer_arch(std::string type_str);
|
||||
static std::string get_ftp_folder(std::string type_str);
|
||||
static bool get_printer_is_enclosed(std::string type_str);
|
||||
|
||||
@@ -581,7 +581,6 @@ AMSExtImage::AMSExtImage(wxWindow* parent, AMSPanelPos ext_pos, ExtderData *data
|
||||
}
|
||||
|
||||
m_ext_pos = ext_pos;
|
||||
createImages();
|
||||
SetBackgroundColour(StateColor::darkModeColorFor(AMS_CONTROL_DEF_LIB_BK_COLOUR));
|
||||
|
||||
Bind(wxEVT_PAINT, &AMSExtImage::paintEvent, this);
|
||||
@@ -589,63 +588,24 @@ AMSExtImage::AMSExtImage(wxWindow* parent, AMSPanelPos ext_pos, ExtderData *data
|
||||
|
||||
AMSExtImage::~AMSExtImage() {}
|
||||
|
||||
void AMSExtImage::createImages()
|
||||
const wxBitmap &AMSExtImage::get_bmp(const std::string &printer_type, bool is_ams_ext, AMSPanelPos pos)
|
||||
{
|
||||
m_ams_ext_o_left = ScalableBitmap(this, "ams_ext_image_o_left", 25);
|
||||
m_ams_ext_o_right = ScalableBitmap(this, "ams_ext_image_o_right", 25);
|
||||
m_ams_ext_xp = ScalableBitmap(this, "ams_ext_image_xp", 25);
|
||||
m_ams_ext_n1 = ScalableBitmap(this, "ams_ext_image_n1", 25);
|
||||
m_ams_ext_n2s = ScalableBitmap(this, "ams_ext_image_n2s", 25);
|
||||
m_ams_ext_default = ScalableBitmap(this, "ams_ext_image_default", 25);
|
||||
int pos_id = 0;
|
||||
if (pos == AMSPanelPos::LEFT_PANEL) { pos_id = 1;}
|
||||
const std::string &image_name = DeviceManager::get_printer_ext_img(printer_type, pos_id);
|
||||
if (image_name.empty()) { return wxNullBitmap; }
|
||||
|
||||
m_ext_o_left = ScalableBitmap(this, "ext_image_o_left", 98);
|
||||
m_ext_o_right = ScalableBitmap(this, "ext_image_o_right", 98);
|
||||
m_ext_xp = ScalableBitmap(this, "ext_image_xp", 98);
|
||||
m_ext_n1 = ScalableBitmap(this, "ext_image_n1", 98);
|
||||
m_ext_n2s = ScalableBitmap(this, "ext_image_n2s", 98);
|
||||
m_ext_default = ScalableBitmap(this, "ext_image_default", 98);
|
||||
}
|
||||
|
||||
const wxBitmap &AMSExtImage::get_bmp(const std::string &series_name, const std::string &printer_type, bool is_ams_ext, AMSPanelPos pos) const
|
||||
{
|
||||
if (MachineObject::is_series_o(series_name)) {
|
||||
if (pos == AMSPanelPos::LEFT_PANEL) {
|
||||
return is_ams_ext ? m_ams_ext_o_left.bmp() : m_ext_o_left.bmp();
|
||||
} else if (pos == AMSPanelPos::RIGHT_PANEL) {
|
||||
return is_ams_ext ? m_ams_ext_o_right.bmp() : m_ext_o_right.bmp();
|
||||
}
|
||||
} else if (MachineObject::is_series_x(series_name) || MachineObject::is_series_p(series_name)) {
|
||||
return is_ams_ext ? m_ams_ext_xp.bmp() : m_ext_xp.bmp();
|
||||
} else if (MachineObject::is_series_n(series_name)) {
|
||||
if (printer_type == "N1") {
|
||||
return is_ams_ext ? m_ams_ext_n1.bmp() : m_ext_n1.bmp();
|
||||
} else if (printer_type == "N2S") {
|
||||
return is_ams_ext ? m_ams_ext_n2s.bmp() : m_ext_n2s.bmp();
|
||||
}
|
||||
int image_size = is_ams_ext ? 25 : 98;
|
||||
if ((m_ext_image.name() != image_name) || (m_ext_image.GetBmpWidth() != image_size)) {
|
||||
m_ext_image = ScalableBitmap(this, image_name, image_size);
|
||||
}
|
||||
|
||||
return is_ams_ext ? m_ams_ext_default.bmp() : m_ext_default.bmp();
|
||||
return m_ext_image.bmp();
|
||||
}
|
||||
|
||||
void AMSExtImage::msw_rescale()
|
||||
{
|
||||
//m_ams_extruder.SetSize(AMS_EXTRUDER_BITMAP_SIZE);
|
||||
//auto image = m_ams_extruder.ConvertToImage();
|
||||
m_ams_ext_o_left.msw_rescale();
|
||||
m_ams_ext_o_right.msw_rescale();
|
||||
m_ams_ext_xp.msw_rescale();
|
||||
m_ams_ext_n1.msw_rescale();
|
||||
m_ams_ext_n2s.msw_rescale();
|
||||
m_ams_ext_default.msw_rescale();
|
||||
|
||||
m_ext_o_left.msw_rescale();
|
||||
m_ext_o_right.msw_rescale();
|
||||
m_ext_xp.msw_rescale();
|
||||
m_ext_n1.msw_rescale();
|
||||
m_ext_n2s.msw_rescale();
|
||||
m_ext_default.msw_rescale();
|
||||
|
||||
m_ext_default.bmp();
|
||||
m_ext_image.msw_rescale();
|
||||
|
||||
Layout();
|
||||
Fit();
|
||||
@@ -706,7 +666,7 @@ void AMSExtImage::doRender(wxDC& dc)
|
||||
|
||||
if (m_show_ams_ext)
|
||||
{
|
||||
const wxBitmap &bmp = get_bmp(m_series_name, m_printer_type_name, true, m_ext_pos);
|
||||
const wxBitmap &bmp = get_bmp(m_printer_type_name, true, m_ext_pos);
|
||||
dc.DrawBitmap(bmp, wxPoint((size.x - ScalableBitmap::GetBmpSize(bmp).x) / 2, 0));
|
||||
|
||||
Layout();
|
||||
@@ -715,7 +675,7 @@ void AMSExtImage::doRender(wxDC& dc)
|
||||
|
||||
if (m_show_ext)
|
||||
{
|
||||
const wxBitmap &bmp = get_bmp(m_series_name, m_printer_type_name, false, m_ext_pos);
|
||||
const wxBitmap &bmp = get_bmp(m_printer_type_name, false, m_ext_pos);
|
||||
const wxSize& bmp_size = ScalableBitmap::GetBmpSize(bmp);
|
||||
dc.DrawBitmap(bmp, wxPoint((size.x - bmp_size.x) / 2, (size.y - bmp_size.GetHeight())));
|
||||
|
||||
|
||||
@@ -377,19 +377,7 @@ private:
|
||||
AMSPanelPos m_ext_pos;
|
||||
int total_ext_num = 1;
|
||||
|
||||
ScalableBitmap m_ams_ext_o_left;
|
||||
ScalableBitmap m_ams_ext_o_right;
|
||||
ScalableBitmap m_ams_ext_xp;
|
||||
ScalableBitmap m_ams_ext_n1;
|
||||
ScalableBitmap m_ams_ext_n2s;
|
||||
ScalableBitmap m_ams_ext_default;
|
||||
|
||||
ScalableBitmap m_ext_o_left;
|
||||
ScalableBitmap m_ext_o_right;
|
||||
ScalableBitmap m_ext_xp;
|
||||
ScalableBitmap m_ext_n1;
|
||||
ScalableBitmap m_ext_n2s;
|
||||
ScalableBitmap m_ext_default;
|
||||
ScalableBitmap m_ext_image;
|
||||
|
||||
public:
|
||||
AMSExtImage(wxWindow *parent, AMSPanelPos ext_pos = AMSPanelPos::RIGHT_PANEL, ExtderData *data = nullptr, wxWindowID id = wxID_ANY, const wxPoint &pos = wxDefaultPosition);
|
||||
@@ -404,8 +392,7 @@ private:
|
||||
void render(wxDC &dc);
|
||||
void doRender(wxDC &dc);
|
||||
|
||||
void createImages();
|
||||
const wxBitmap &get_bmp(const std::string &series_name, const std::string &printer_type, bool is_ams_ext, AMSPanelPos pos) const;
|
||||
const wxBitmap &get_bmp(const std::string &printer_type, bool is_ams_ext, AMSPanelPos pos);
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user