From f54e2d2a00a51b975ee7afefb933cd4f9830840c Mon Sep 17 00:00:00 2001 From: tao wang Date: Tue, 13 Dec 2022 10:59:57 +0800 Subject: [PATCH] ENH:optimize the save presets dialog Change-Id: I7cd954d27db96a461e4e6b8a10c904dbb892b002 --- src/slic3r/GUI/SavePresetDialog.cpp | 31 +++++++++++++---------------- src/slic3r/GUI/SavePresetDialog.hpp | 3 +-- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index 2c97c21e2..6ddb83e61 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -74,32 +74,30 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox // combo_sizer->Add(m_combo, 1, wxEXPAND, BORDER_W); - StateColor box_border_colour(std::pair(wxColour(238, 238, 238), StateColor::Normal)); - m_input_area = new StaticBox(m_parent, wxID_ANY, wxDefaultPosition, SAVE_PRESET_DIALOG_INPUT_SIZE, wxBORDER_NONE); - m_input_area->SetMinSize(SAVE_PRESET_DIALOG_INPUT_SIZE); - m_input_area->SetBorderColor(box_border_colour); - m_input_area->SetBackgroundColor(box_border_colour); - m_input_area->SetCornerRadius(FromDIP(3)); wxBoxSizer *input_sizer_h = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *input_sizer_v = new wxBoxSizer(wxVERTICAL); - m_input_ctrl = new wxTextCtrl(m_input_area, -1, from_u8(preset_name), wxDefaultPosition, wxSize(SAVE_PRESET_DIALOG_INPUT_SIZE.x - 2, SAVE_PRESET_DIALOG_INPUT_SIZE.y - 2), 0 | wxBORDER_NONE); - //m_input_ctrl->SetBackgroundColour(GetParent()->GetBackgroundColour()); + /*m_input_ctrl = new wxTextCtrl(this, wxID_ANY, from_u8(preset_name), wxDefaultPosition, wxDefaultSize,wxBORDER_NONE);*/ + + + m_input_ctrl = new ::TextInput(parent, from_u8(preset_name), wxEmptyString, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); + StateColor input_bg(std::pair(wxColour("#F0F0F1"), StateColor::Disabled), std::pair(*wxWHITE, StateColor::Enabled)); + m_input_ctrl->SetBackgroundColor(input_bg); m_input_ctrl->Bind(wxEVT_TEXT, [this](wxCommandEvent &) { update(); }); + m_input_ctrl->SetMinSize(wxSize(SAVE_PRESET_DIALOG_INPUT_SIZE)); + m_input_ctrl->SetMaxSize(wxSize(SAVE_PRESET_DIALOG_INPUT_SIZE)); - input_sizer_v->Add(m_input_ctrl, 0, wxALL, 1); - input_sizer_h->Add(input_sizer_v, 0, wxALL, 1); - - m_input_area->SetSizer(input_sizer_h); - m_input_area->Layout(); + input_sizer_v->Add(m_input_ctrl, 1, wxEXPAND, 0); + input_sizer_h->Add(input_sizer_v, 1, wxALIGN_CENTER, 0); + input_sizer_h->Layout(); m_valid_label = new wxStaticText(m_parent, wxID_ANY, ""); m_valid_label->SetForegroundColour(wxColor(255, 111, 0)); sizer->Add(label_top, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, BORDER_W); - sizer->Add(m_input_area, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, BORDER_W); + sizer->Add(input_sizer_h, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, BORDER_W); sizer->Add(m_valid_label, 0, wxEXPAND | wxLEFT | wxRIGHT, BORDER_W); if (m_type == Preset::TYPE_PRINTER) m_parent->add_info_for_edit_ph_printer(sizer); @@ -176,7 +174,7 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox void SavePresetDialog::Item::update() { - m_preset_name = into_u8(m_input_ctrl->GetValue()); + m_preset_name = into_u8(m_input_ctrl->GetTextCtrl()->GetValue()); m_valid_type = Valid; wxString info_line; @@ -255,7 +253,6 @@ void SavePresetDialog::Item::update() } m_valid_label->SetLabel(info_line); - m_input_area->Refresh(); m_valid_label->Show(!info_line.IsEmpty()); // update_valid_bmp(); @@ -395,7 +392,7 @@ std::string SavePresetDialog::get_name(Preset::Type type) void SavePresetDialog::input_name_from_other(std::string new_preset_name) { //only work for one-item Item* curr_item = m_items[0]; - curr_item->m_input_ctrl->SetValue(new_preset_name); + curr_item->m_input_ctrl->GetTextCtrl()->SetValue(new_preset_name); } void SavePresetDialog::confirm_from_other() { diff --git a/src/slic3r/GUI/SavePresetDialog.hpp b/src/slic3r/GUI/SavePresetDialog.hpp index 77268bffe..3dc42d519 100644 --- a/src/slic3r/GUI/SavePresetDialog.hpp +++ b/src/slic3r/GUI/SavePresetDialog.hpp @@ -56,7 +56,6 @@ class SavePresetDialog : public DPIDialog //BBS: add project embedded preset relate logic bool save_to_project() const { return m_save_to_project; } - StaticBox* m_input_area {nullptr}; Preset::Type m_type; ValidationType m_valid_type; std::string m_preset_name; @@ -64,7 +63,7 @@ class SavePresetDialog : public DPIDialog SavePresetDialog* m_parent {nullptr}; wxStaticBitmap* m_valid_bmp {nullptr}; wxComboBox* m_combo {nullptr}; - wxTextCtrl* m_input_ctrl {nullptr}; + TextInput* m_input_ctrl {nullptr}; wxStaticText* m_valid_label {nullptr}; PresetCollection* m_presets {nullptr};