mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-21 20:18:17 +08:00
Added _fiction_ resizing for correct MainFrame rendering after DPI changed_object
+ Added a calculation of a empty bitmaps inside presets in respect to em_unit (to avoid assert) + Added scaling for PrintHostDialogs and MsgDialog + some code refactoring
This commit is contained in:
parent
5e45cff855
commit
aa147482b7
@ -258,12 +258,6 @@ bool MainFrame::can_delete_all() const
|
|||||||
|
|
||||||
void MainFrame::on_dpi_changed(const wxRect &suggested_rect)
|
void MainFrame::on_dpi_changed(const wxRect &suggested_rect)
|
||||||
{
|
{
|
||||||
// const float old_sc_factor = prev_scale_factor();
|
|
||||||
// const float new_sc_factor = scale_factor();
|
|
||||||
//
|
|
||||||
// printf("old_sc_factor: %.2f \n", old_sc_factor);
|
|
||||||
// printf("new_sc_factor: %.2f\n\n", new_sc_factor);
|
|
||||||
|
|
||||||
wxGetApp().update_fonts();
|
wxGetApp().update_fonts();
|
||||||
|
|
||||||
// _strange_ workaround for correct em_unit calculation
|
// _strange_ workaround for correct em_unit calculation
|
||||||
@ -281,6 +275,13 @@ void MainFrame::on_dpi_changed(const wxRect &suggested_rect)
|
|||||||
// update Tabs
|
// update Tabs
|
||||||
for (auto tab : wxGetApp().tabs_list)
|
for (auto tab : wxGetApp().tabs_list)
|
||||||
tab->rescale();
|
tab->rescale();
|
||||||
|
|
||||||
|
/* To correct window rendering (especially redraw of a status bar)
|
||||||
|
* we should imitate window resizing.
|
||||||
|
*/
|
||||||
|
const wxSize& sz = this->GetSize();
|
||||||
|
this->SetSize(sz.x + 1, sz.y + 1);
|
||||||
|
this->SetSize(sz);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainFrame::init_menubar()
|
void MainFrame::init_menubar()
|
||||||
|
@ -25,12 +25,14 @@ namespace GUI {
|
|||||||
|
|
||||||
MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id, wxBitmap bitmap)
|
MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id, wxBitmap bitmap)
|
||||||
: wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
|
: wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
|
||||||
, boldfont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT))
|
, boldfont(wxGetApp().normal_font()/*wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)*/)
|
||||||
, content_sizer(new wxBoxSizer(wxVERTICAL))
|
, content_sizer(new wxBoxSizer(wxVERTICAL))
|
||||||
, btn_sizer(new wxBoxSizer(wxHORIZONTAL))
|
, btn_sizer(new wxBoxSizer(wxHORIZONTAL))
|
||||||
{
|
{
|
||||||
boldfont.SetWeight(wxFONTWEIGHT_BOLD);
|
boldfont.SetWeight(wxFONTWEIGHT_BOLD);
|
||||||
|
|
||||||
|
this->SetFont(wxGetApp().normal_font());
|
||||||
|
|
||||||
auto *topsizer = new wxBoxSizer(wxHORIZONTAL);
|
auto *topsizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
auto *rightsizer = new wxBoxSizer(wxVERTICAL);
|
auto *rightsizer = new wxBoxSizer(wxVERTICAL);
|
||||||
|
|
||||||
|
@ -235,7 +235,8 @@ void SlicedInfo::SetTextAndShow(SlisedInfoIdx idx, const wxString& text, const w
|
|||||||
PresetComboBox::PresetComboBox(wxWindow *parent, Preset::Type preset_type) :
|
PresetComboBox::PresetComboBox(wxWindow *parent, Preset::Type preset_type) :
|
||||||
wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(15 * wxGetApp().em_unit(), -1), 0, nullptr, wxCB_READONLY),
|
wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(15 * wxGetApp().em_unit(), -1), 0, nullptr, wxCB_READONLY),
|
||||||
preset_type(preset_type),
|
preset_type(preset_type),
|
||||||
last_selected(wxNOT_FOUND)
|
last_selected(wxNOT_FOUND),
|
||||||
|
m_em_unit(wxGetApp().em_unit())
|
||||||
{
|
{
|
||||||
Bind(wxEVT_COMBOBOX, [this](wxCommandEvent &evt) {
|
Bind(wxEVT_COMBOBOX, [this](wxCommandEvent &evt) {
|
||||||
auto selected_item = this->GetSelection();
|
auto selected_item = this->GetSelection();
|
||||||
@ -280,7 +281,7 @@ wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(15 *
|
|||||||
cfg.set_key_value("extruder_colour", colors);
|
cfg.set_key_value("extruder_colour", colors);
|
||||||
|
|
||||||
wxGetApp().get_tab(Preset::TYPE_PRINTER)->load_config(cfg);
|
wxGetApp().get_tab(Preset::TYPE_PRINTER)->load_config(cfg);
|
||||||
wxGetApp().preset_bundle->update_platter_filament_ui(extruder_idx, this, wxGetApp().em_unit());
|
wxGetApp().preset_bundle->update_platter_filament_ui(extruder_idx, this);
|
||||||
wxGetApp().plater()->on_config_change(cfg);
|
wxGetApp().plater()->on_config_change(cfg);
|
||||||
}
|
}
|
||||||
dialog->Destroy();
|
dialog->Destroy();
|
||||||
@ -340,8 +341,7 @@ void PresetComboBox::check_selection()
|
|||||||
|
|
||||||
void PresetComboBox::rescale()
|
void PresetComboBox::rescale()
|
||||||
{
|
{
|
||||||
// update min control's height from new scaled size
|
m_em_unit = wxGetApp().em_unit();
|
||||||
this->SetMinSize(wxSize(20*wxGetApp().em_unit(), this->GetSize().GetHeight()));
|
|
||||||
edit_btn->rescale();
|
edit_btn->rescale();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -798,8 +798,6 @@ void Sidebar::update_all_preset_comboboxes()
|
|||||||
PresetBundle &preset_bundle = *wxGetApp().preset_bundle;
|
PresetBundle &preset_bundle = *wxGetApp().preset_bundle;
|
||||||
const auto print_tech = preset_bundle.printers.get_edited_preset().printer_technology();
|
const auto print_tech = preset_bundle.printers.get_edited_preset().printer_technology();
|
||||||
|
|
||||||
// wxWindowUpdateLocker noUpdates_scrolled(p->scrolled);
|
|
||||||
|
|
||||||
// Update the print choosers to only contain the compatible presets, update the dirty flags.
|
// Update the print choosers to only contain the compatible presets, update the dirty flags.
|
||||||
if (print_tech == ptFFF)
|
if (print_tech == ptFFF)
|
||||||
preset_bundle.prints.update_platter_ui(p->combo_print);
|
preset_bundle.prints.update_platter_ui(p->combo_print);
|
||||||
@ -813,9 +811,8 @@ void Sidebar::update_all_preset_comboboxes()
|
|||||||
// update the dirty flags.
|
// update the dirty flags.
|
||||||
if (print_tech == ptFFF) {
|
if (print_tech == ptFFF) {
|
||||||
for (size_t i = 0; i < p->combos_filament.size(); ++i)
|
for (size_t i = 0; i < p->combos_filament.size(); ++i)
|
||||||
preset_bundle.update_platter_filament_ui(i, p->combos_filament[i], wxGetApp().em_unit());
|
preset_bundle.update_platter_filament_ui(i, p->combos_filament[i]);
|
||||||
}
|
}
|
||||||
p->show_preset_comboboxes();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sidebar::update_presets(Preset::Type preset_type)
|
void Sidebar::update_presets(Preset::Type preset_type)
|
||||||
@ -837,7 +834,7 @@ void Sidebar::update_presets(Preset::Type preset_type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < filament_cnt; i++) {
|
for (size_t i = 0; i < filament_cnt; i++) {
|
||||||
preset_bundle.update_platter_filament_ui(i, p->combos_filament[i], wxGetApp().em_unit());
|
preset_bundle.update_platter_filament_ui(i, p->combos_filament[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -874,8 +871,8 @@ void Sidebar::update_presets(Preset::Type preset_type)
|
|||||||
// for (size_t i = 0; i < p->combos_filament.size(); ++ i)
|
// for (size_t i = 0; i < p->combos_filament.size(); ++ i)
|
||||||
// preset_bundle.update_platter_filament_ui(i, p->combos_filament[i], wxGetApp().em_unit());
|
// preset_bundle.update_platter_filament_ui(i, p->combos_filament[i], wxGetApp().em_unit());
|
||||||
// }
|
// }
|
||||||
// p->show_preset_comboboxes();
|
|
||||||
update_all_preset_comboboxes();
|
update_all_preset_comboboxes();
|
||||||
|
p->show_preset_comboboxes();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -905,19 +902,18 @@ void Sidebar::rescale()
|
|||||||
|
|
||||||
p->mode_sizer->rescale();
|
p->mode_sizer->rescale();
|
||||||
|
|
||||||
// first of all : recreate preset comboboxes, because of
|
// Rescale preset comboboxes in respect to the current em_unit ...
|
||||||
// in AddBitmap() function autonaticaly set the size of controll
|
|
||||||
update_all_preset_comboboxes();
|
|
||||||
// then rescale them to current min size to correct layout of the sidebar
|
|
||||||
for (PresetComboBox* combo : std::vector<PresetComboBox*> { p->combo_print,
|
for (PresetComboBox* combo : std::vector<PresetComboBox*> { p->combo_print,
|
||||||
p->combo_sla_print,
|
p->combo_sla_print,
|
||||||
p->combo_sla_material,
|
p->combo_sla_material,
|
||||||
p->combo_printer } )
|
p->combo_printer } )
|
||||||
combo->rescale();
|
combo->rescale();
|
||||||
|
|
||||||
for (PresetComboBox* combo : p->combos_filament)
|
for (PresetComboBox* combo : p->combos_filament)
|
||||||
combo->rescale();
|
combo->rescale();
|
||||||
|
|
||||||
|
// ... then refill them and set min size to correct layout of the sidebar
|
||||||
|
update_all_preset_comboboxes();
|
||||||
|
|
||||||
p->frequently_changed_parameters->get_og(true)->rescale();
|
p->frequently_changed_parameters->get_og(true)->rescale();
|
||||||
p->frequently_changed_parameters->get_og(false)->rescale();
|
p->frequently_changed_parameters->get_og(false)->rescale();
|
||||||
|
|
||||||
@ -2669,7 +2665,7 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
|||||||
// TODO: ?
|
// TODO: ?
|
||||||
if (preset_type == Preset::TYPE_FILAMENT && sidebar->is_multifilament()) {
|
if (preset_type == Preset::TYPE_FILAMENT && sidebar->is_multifilament()) {
|
||||||
// Only update the platter UI for the 2nd and other filaments.
|
// Only update the platter UI for the 2nd and other filaments.
|
||||||
wxGetApp().preset_bundle->update_platter_filament_ui(idx, combo, wxGetApp().em_unit());
|
wxGetApp().preset_bundle->update_platter_filament_ui(idx, combo);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
wxWindowUpdateLocker noUpdates(sidebar->presets_panel());
|
wxWindowUpdateLocker noUpdates(sidebar->presets_panel());
|
||||||
@ -3650,7 +3646,7 @@ void Plater::on_extruders_change(int num_extruders)
|
|||||||
choices.push_back(choice);
|
choices.push_back(choice);
|
||||||
|
|
||||||
// initialize selection
|
// initialize selection
|
||||||
wxGetApp().preset_bundle->update_platter_filament_ui(i, choice, wxGetApp().em_unit());
|
wxGetApp().preset_bundle->update_platter_filament_ui(i, choice);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ public:
|
|||||||
void set_label_marker(int item, LabelItemType label_item_type = LABEL_ITEM_MARKER);
|
void set_label_marker(int item, LabelItemType label_item_type = LABEL_ITEM_MARKER);
|
||||||
void set_extruder_idx(const int extr_idx) { extruder_idx = extr_idx; }
|
void set_extruder_idx(const int extr_idx) { extruder_idx = extr_idx; }
|
||||||
int get_extruder_idx() const { return extruder_idx; }
|
int get_extruder_idx() const { return extruder_idx; }
|
||||||
|
int em_unit() const { return m_em_unit; }
|
||||||
void check_selection();
|
void check_selection();
|
||||||
|
|
||||||
void rescale();
|
void rescale();
|
||||||
@ -67,6 +68,7 @@ private:
|
|||||||
Preset::Type preset_type;
|
Preset::Type preset_type;
|
||||||
int last_selected;
|
int last_selected;
|
||||||
int extruder_idx = -1;
|
int extruder_idx = -1;
|
||||||
|
int m_em_unit;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Sidebar : public wxPanel
|
class Sidebar : public wxPanel
|
||||||
|
@ -914,6 +914,16 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
|||||||
// and draw a red flag in front of the selected preset.
|
// and draw a red flag in front of the selected preset.
|
||||||
bool wide_icons = ! selected_preset.is_compatible && m_bitmap_incompatible != nullptr;
|
bool wide_icons = ! selected_preset.is_compatible && m_bitmap_incompatible != nullptr;
|
||||||
|
|
||||||
|
/* It's supposed that standard size of an icon is 16px*16px for 100% scaled display.
|
||||||
|
* So set sizes for solid_colored icons used for filament preset
|
||||||
|
* and scale them in respect to em_unit value
|
||||||
|
*/
|
||||||
|
const float scale_f = ui->em_unit() * 0.1f;
|
||||||
|
const int icon_height = 16 * scale_f + 0.5f;
|
||||||
|
const int icon_width = 16 * scale_f + 0.5f;
|
||||||
|
const int thin_space_icon_width = 4 * scale_f + 0.5f;
|
||||||
|
const int wide_space_icon_width = 6 * scale_f + 0.5f;
|
||||||
|
|
||||||
std::map<wxString, wxBitmap*> nonsys_presets;
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
wxString selected = "";
|
wxString selected = "";
|
||||||
if (!this->m_presets.front().is_visible)
|
if (!this->m_presets.front().is_visible)
|
||||||
@ -934,13 +944,13 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
|||||||
std::vector<wxBitmap> bmps;
|
std::vector<wxBitmap> bmps;
|
||||||
if (wide_icons)
|
if (wide_icons)
|
||||||
// Paint a red flag for incompatible presets.
|
// Paint a red flag for incompatible presets.
|
||||||
bmps.emplace_back(preset.is_compatible ? m_bitmap_cache->mkclear(16, 16) : *m_bitmap_incompatible);
|
bmps.emplace_back(preset.is_compatible ? m_bitmap_cache->mkclear(icon_width, icon_height) : *m_bitmap_incompatible);
|
||||||
// Paint the color bars.
|
// Paint the color bars.
|
||||||
bmps.emplace_back(m_bitmap_cache->mkclear(4, 16));
|
bmps.emplace_back(m_bitmap_cache->mkclear(thin_space_icon_width, icon_height));
|
||||||
bmps.emplace_back(*m_bitmap_main_frame);
|
bmps.emplace_back(*m_bitmap_main_frame);
|
||||||
// Paint a lock at the system presets.
|
// Paint a lock at the system presets.
|
||||||
bmps.emplace_back(m_bitmap_cache->mkclear(6, 16));
|
bmps.emplace_back(m_bitmap_cache->mkclear(wide_space_icon_width, icon_height));
|
||||||
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmap_lock : m_bitmap_cache->mkclear(16, 16));
|
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmap_lock : m_bitmap_cache->mkclear(icon_width, icon_height));
|
||||||
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -981,12 +991,12 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
|||||||
std::vector<wxBitmap> bmps;
|
std::vector<wxBitmap> bmps;
|
||||||
if (wide_icons)
|
if (wide_icons)
|
||||||
// Paint a red flag for incompatible presets.
|
// Paint a red flag for incompatible presets.
|
||||||
bmps.emplace_back(m_bitmap_cache->mkclear(16, 16));
|
bmps.emplace_back(m_bitmap_cache->mkclear(icon_width, icon_height));
|
||||||
// Paint the color bars.
|
// Paint the color bars.
|
||||||
bmps.emplace_back(m_bitmap_cache->mkclear(4, 16));
|
bmps.emplace_back(m_bitmap_cache->mkclear(thin_space_icon_width, icon_height));
|
||||||
bmps.emplace_back(*m_bitmap_main_frame);
|
bmps.emplace_back(*m_bitmap_main_frame);
|
||||||
// Paint a lock at the system presets.
|
// Paint a lock at the system presets.
|
||||||
bmps.emplace_back(m_bitmap_cache->mkclear(6, 16));
|
bmps.emplace_back(m_bitmap_cache->mkclear(wide_space_icon_width, icon_height));
|
||||||
bmps.emplace_back(m_bitmap_add ? *m_bitmap_add : wxNullBitmap);
|
bmps.emplace_back(m_bitmap_add ? *m_bitmap_add : wxNullBitmap);
|
||||||
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
||||||
}
|
}
|
||||||
@ -996,10 +1006,14 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
|||||||
ui->SetSelection(selected_preset_item);
|
ui->SetSelection(selected_preset_item);
|
||||||
ui->SetToolTip(ui->GetString(selected_preset_item));
|
ui->SetToolTip(ui->GetString(selected_preset_item));
|
||||||
ui->check_selection();
|
ui->check_selection();
|
||||||
ui->Thaw();
|
ui->Thaw();
|
||||||
|
|
||||||
|
// Update control min size after rescale (changed Display DPI under MSW)
|
||||||
|
if (ui->GetMinWidth() != 20 * ui->em_unit())
|
||||||
|
ui->SetMinSize(wxSize(20 * ui->em_unit(), ui->GetSize().GetHeight()));
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t PresetCollection::update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible)
|
size_t PresetCollection::update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible, const int em/* = 10*/)
|
||||||
{
|
{
|
||||||
if (ui == nullptr)
|
if (ui == nullptr)
|
||||||
return 0;
|
return 0;
|
||||||
@ -1007,6 +1021,14 @@ size_t PresetCollection::update_tab_ui(wxBitmapComboBox *ui, bool show_incompati
|
|||||||
ui->Clear();
|
ui->Clear();
|
||||||
size_t selected_preset_item = 0;
|
size_t selected_preset_item = 0;
|
||||||
|
|
||||||
|
/* It's supposed that standard size of an icon is 16px*16px for 100% scaled display.
|
||||||
|
* So set sizes for solid_colored(empty) icons used for preset
|
||||||
|
* and scale them in respect to em_unit value
|
||||||
|
*/
|
||||||
|
const float scale_f = em * 0.1f;
|
||||||
|
const int icon_height = 16 * scale_f + 0.5f;
|
||||||
|
const int icon_width = 16 * scale_f + 0.5f;
|
||||||
|
|
||||||
std::map<wxString, wxBitmap*> nonsys_presets;
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
wxString selected = "";
|
wxString selected = "";
|
||||||
if (!this->m_presets.front().is_visible)
|
if (!this->m_presets.front().is_visible)
|
||||||
@ -1025,7 +1047,7 @@ size_t PresetCollection::update_tab_ui(wxBitmapComboBox *ui, bool show_incompati
|
|||||||
const wxBitmap* tmp_bmp = preset.is_compatible ? m_bitmap_compatible : m_bitmap_incompatible;
|
const wxBitmap* tmp_bmp = preset.is_compatible ? m_bitmap_compatible : m_bitmap_incompatible;
|
||||||
bmps.emplace_back((tmp_bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *tmp_bmp);
|
bmps.emplace_back((tmp_bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *tmp_bmp);
|
||||||
// Paint a lock at the system presets.
|
// Paint a lock at the system presets.
|
||||||
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmap_lock : m_bitmap_cache->mkclear(16, 16));
|
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmap_lock : m_bitmap_cache->mkclear(icon_width, icon_height));
|
||||||
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ public:
|
|||||||
// Update the choice UI from the list of presets.
|
// Update the choice UI from the list of presets.
|
||||||
// If show_incompatible, all presets are shown, otherwise only the compatible presets are shown.
|
// If show_incompatible, all presets are shown, otherwise only the compatible presets are shown.
|
||||||
// If an incompatible preset is selected, it is shown as well.
|
// If an incompatible preset is selected, it is shown as well.
|
||||||
size_t update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible);
|
size_t update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible, const int em = 10);
|
||||||
// Update the choice UI from the list of presets.
|
// Update the choice UI from the list of presets.
|
||||||
// Only the compatible presets are shown.
|
// Only the compatible presets are shown.
|
||||||
// If an incompatible preset is selected, it is shown as well.
|
// If an incompatible preset is selected, it is shown as well.
|
||||||
|
@ -1451,7 +1451,7 @@ void PresetBundle::load_default_preset_bitmaps(wxWindow *window)
|
|||||||
this->load_compatible_bitmaps(window);
|
this->load_compatible_bitmaps(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::PresetComboBox *ui, const int em/* = 10*/)
|
void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::PresetComboBox *ui)
|
||||||
{
|
{
|
||||||
if (ui == nullptr || this->printers.get_edited_preset().printer_technology() == ptSLA ||
|
if (ui == nullptr || this->printers.get_edited_preset().printer_technology() == ptSLA ||
|
||||||
this->filament_presets.size() <= idx_extruder )
|
this->filament_presets.size() <= idx_extruder )
|
||||||
@ -1479,9 +1479,9 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr
|
|||||||
|
|
||||||
/* It's supposed that standard size of an icon is 16px*16px for 100% scaled display.
|
/* It's supposed that standard size of an icon is 16px*16px for 100% scaled display.
|
||||||
* So set sizes for solid_colored icons used for filament preset
|
* So set sizes for solid_colored icons used for filament preset
|
||||||
* and scale then in respect to em_unit value
|
* and scale them in respect to em_unit value
|
||||||
*/
|
*/
|
||||||
const float scale_f = em * 0.1f;
|
const float scale_f = ui->em_unit() * 0.1f;
|
||||||
const int icon_height = 16 * scale_f + 0.5f;
|
const int icon_height = 16 * scale_f + 0.5f;
|
||||||
const int normal_icon_width = 16 * scale_f + 0.5f;
|
const int normal_icon_width = 16 * scale_f + 0.5f;
|
||||||
const int space_icon_width = 2 * scale_f + 0.5f;
|
const int space_icon_width = 2 * scale_f + 0.5f;
|
||||||
@ -1556,6 +1556,10 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr
|
|||||||
ui->SetToolTip(ui->GetString(selected_preset_item));
|
ui->SetToolTip(ui->GetString(selected_preset_item));
|
||||||
ui->check_selection();
|
ui->check_selection();
|
||||||
ui->Thaw();
|
ui->Thaw();
|
||||||
|
|
||||||
|
// Update control min size after rescale (changed Display DPI under MSW)
|
||||||
|
if (ui->GetMinWidth() != 20 * ui->em_unit())
|
||||||
|
ui->SetMinSize(wxSize(20 * ui->em_unit(), ui->GetSize().GetHeight()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PresetBundle::set_default_suppressed(bool default_suppressed)
|
void PresetBundle::set_default_suppressed(bool default_suppressed)
|
||||||
|
@ -107,7 +107,7 @@ public:
|
|||||||
void export_configbundle(const std::string &path, bool export_system_settings = false);
|
void export_configbundle(const std::string &path, bool export_system_settings = false);
|
||||||
|
|
||||||
// Update a filament selection combo box on the platter for an idx_extruder.
|
// Update a filament selection combo box on the platter for an idx_extruder.
|
||||||
void update_platter_filament_ui(unsigned int idx_extruder, GUI::PresetComboBox *ui, const int em = 10);
|
void update_platter_filament_ui(unsigned int idx_extruder, GUI::PresetComboBox *ui);
|
||||||
|
|
||||||
// Enable / disable the "- default -" preset.
|
// Enable / disable the "- default -" preset.
|
||||||
void set_default_suppressed(bool default_suppressed);
|
void set_default_suppressed(bool default_suppressed);
|
||||||
|
@ -131,7 +131,7 @@ wxEvent *PrintHostQueueDialog::Event::Clone() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
PrintHostQueueDialog::PrintHostQueueDialog(wxWindow *parent)
|
PrintHostQueueDialog::PrintHostQueueDialog(wxWindow *parent)
|
||||||
: wxDialog(parent, wxID_ANY, _(L("Print host upload queue")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
|
: DPIDialog(parent, wxID_ANY, _(L("Print host upload queue")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
|
||||||
, on_progress_evt(this, EVT_PRINTHOST_PROGRESS, &PrintHostQueueDialog::on_progress, this)
|
, on_progress_evt(this, EVT_PRINTHOST_PROGRESS, &PrintHostQueueDialog::on_progress, this)
|
||||||
, on_error_evt(this, EVT_PRINTHOST_ERROR, &PrintHostQueueDialog::on_error, this)
|
, on_error_evt(this, EVT_PRINTHOST_ERROR, &PrintHostQueueDialog::on_error, this)
|
||||||
, on_cancel_evt(this, EVT_PRINTHOST_CANCEL, &PrintHostQueueDialog::on_cancel, this)
|
, on_cancel_evt(this, EVT_PRINTHOST_CANCEL, &PrintHostQueueDialog::on_cancel, this)
|
||||||
|
@ -41,7 +41,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class PrintHostQueueDialog : public wxDialog
|
class PrintHostQueueDialog : public DPIDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
class Event : public wxEvent
|
class Event : public wxEvent
|
||||||
@ -62,6 +62,10 @@ public:
|
|||||||
PrintHostQueueDialog(wxWindow *parent);
|
PrintHostQueueDialog(wxWindow *parent);
|
||||||
|
|
||||||
void append_job(const PrintHostJob &job);
|
void append_job(const PrintHostJob &job);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void on_dpi_changed(const wxRect &suggested_rect) override { Refresh(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum Column {
|
enum Column {
|
||||||
COL_ID,
|
COL_ID,
|
||||||
|
@ -713,7 +713,7 @@ void Tab::update_dirty()
|
|||||||
|
|
||||||
void Tab::update_tab_ui()
|
void Tab::update_tab_ui()
|
||||||
{
|
{
|
||||||
m_selected_preset_item = m_presets->update_tab_ui(m_presets_choice, m_show_incompatible_presets);
|
m_selected_preset_item = m_presets->update_tab_ui(m_presets_choice, m_show_incompatible_presets, m_em_unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load a provied DynamicConfig into the tab, modifying the active preset.
|
// Load a provied DynamicConfig into the tab, modifying the active preset.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user