X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Feditable_list.h;h=681588215f539a28457caed75a4250218b2b7316;hb=34de47c27c747c7f4c45c2586bcd75d3182a3de5;hp=47eb254e97f779c11f6538f2d9906cd6760ebc76;hpb=a9141d94e3313cc3e39f0ade703e564840689c4f;p=dcpomatic.git diff --git a/src/wx/editable_list.h b/src/wx/editable_list.h index 47eb254e9..681588215 100644 --- a/src/wx/editable_list.h +++ b/src/wx/editable_list.h @@ -1,19 +1,20 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2016 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ @@ -49,12 +50,8 @@ public: , _column (column) , _edit (0) { - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - SetSizer (s); - - _table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); - _table->AddGrowableCol (0, 1); - s->Add (_table, 1, wxEXPAND); + _sizer = new wxBoxSizer (wxHORIZONTAL); + SetSizer (_sizer); long style = wxLC_REPORT | wxLC_SINGLE_SEL; if (title) { @@ -70,7 +67,7 @@ public: _list->InsertColumn (i, ip); } - _table->Add (_list, 1, wxEXPAND | wxALL); + _sizer->Add (_list, 1, wxEXPAND); { wxSizer* s = new wxBoxSizer (wxVERTICAL); @@ -82,7 +79,7 @@ public: } _remove = new wxButton (this, wxID_ANY, _("Remove")); s->Add (_remove, 0, wxTOP | wxBOTTOM, 2); - _table->Add (s, 0); + _sizer->Add (s, 0, wxLEFT, DCPOMATIC_SIZER_X_GAP); } _add->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&EditableList::add_clicked, this)); @@ -123,7 +120,7 @@ public: void layout () { - _table->Layout (); + _sizer->Layout (); } boost::signals2::signal SelectionChanged; @@ -158,10 +155,13 @@ private: S* dialog = new S (this); if (dialog->ShowModal() == wxID_OK) { - add_to_control (dialog->get ()); - std::vector all = _get (); - all.push_back (dialog->get ()); - _set (all); + boost::optional const v = dialog->get (); + if (v) { + add_to_control (v.get ()); + std::vector all = _get (); + all.push_back (v.get ()); + _set (all); + } } dialog->Destroy (); @@ -180,7 +180,12 @@ private: S* dialog = new S (this); dialog->set (all[item]); if (dialog->ShowModal() == wxID_OK) { - all[item] = dialog->get (); + boost::optional const v = dialog->get (); + if (!v) { + return; + } + + all[item] = v.get (); } dialog->Destroy (); @@ -224,7 +229,7 @@ private: wxButton* _edit; wxButton* _remove; wxListCtrl* _list; - wxFlexGridSizer* _table; + wxBoxSizer* _sizer; }; #endif