X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwx%2Feditable_list.h;h=a282bba695734ba88815ac86847afe6430184270;hb=e69d12427d19a6d1255c2275478a9574a9f7972a;hp=5eb46e80d11caabe372df5b399d776f8d1d1fdf8;hpb=2499c41097f8410cb3016e095a85d68979485a7b;p=dcpomatic.git diff --git a/src/wx/editable_list.h b/src/wx/editable_list.h index 5eb46e80d..a282bba69 100644 --- a/src/wx/editable_list.h +++ b/src/wx/editable_list.h @@ -18,6 +18,7 @@ */ #include +#include template class EditableList : public wxPanel @@ -28,7 +29,8 @@ public: std::vector columns, boost::function ()> get, boost::function)> set, - boost::function column + boost::function column, + int height = 100 ) : wxPanel (parent) , _get (get) @@ -41,9 +43,9 @@ public: wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (0, 1); - s->Add (table, 1, wxALL | wxEXPAND, 8); + s->Add (table, 1, wxEXPAND); - _list = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxSize (columns.size() * 200, 100), wxLC_REPORT | wxLC_SINGLE_SEL); + _list = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxSize (columns.size() * 200, height), wxLC_REPORT | wxLC_SINGLE_SEL); for (size_t i = 0; i < columns.size(); ++i) { wxListItem ip; @@ -138,18 +140,23 @@ private: for (int i = 0; i < _columns; ++i) { _list->SetItem (item, i, std_to_wx (_column (all[item], i))); } + + _set (all); } void remove_clicked () { int i = _list->GetNextItem (-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); - if (i >= 0) { - _list->DeleteItem (i); + if (i == -1) { + return; } + _list->DeleteItem (i); std::vector all = _get (); all.erase (all.begin() + i); _set (all); + + selection_changed (); } void resized (wxSizeEvent& ev)