ENH:optimize the save presets dialog

Change-Id: I7cd954d27db96a461e4e6b8a10c904dbb892b002
This commit is contained in:
tao wang 2022-12-13 10:59:57 +08:00 committed by Lane.Wei
parent 4d8d4cb69c
commit f54e2d2a00
2 changed files with 15 additions and 19 deletions

View file

@ -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, int>(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, int>(wxColour("#F0F0F1"), StateColor::Disabled), std::pair<wxColour, int>(*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() {

View file

@ -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};