Remember contents of filter control when switching tabs

This commit is contained in:
Twan van Laarhoven
2020-04-21 00:10:17 +02:00
parent 4889f0b7e8
commit e72909f430
4 changed files with 17 additions and 4 deletions
+8 -2
View File
@@ -219,7 +219,9 @@ void CardsPanel::initUI(wxToolBar* tb, wxMenuBar* mb) {
#endif
// Filter/search textbox
tb->AddSeparator();
if (!filter) filter = new FilterCtrl(tb, ID_CARD_FILTER, _LABEL_("search cards"));
assert(!filter);
filter = new FilterCtrl(tb, ID_CARD_FILTER, _LABEL_("search cards"));
filter->setFilter(filter_value);
tb->AddControl(filter);
tb->Realize();
// Menus
@@ -236,7 +238,11 @@ void CardsPanel::destroyUI(wxToolBar* tb, wxMenuBar* mb) {
tb->DeleteTool(ID_CARD_ADD);
tb->DeleteTool(ID_CARD_REMOVE);
tb->DeleteTool(ID_CARD_ROTATE);
tb->DeleteTool(filter->GetId()); filter = nullptr;
// remember the value in the filter control, because the card list remains filtered
// the control is destroyed by DeleteTool
filter_value = filter->getFilterString();
tb->DeleteTool(filter->GetId());
filter = nullptr;
// HACK: hardcoded size of rest of toolbar
tb->DeleteToolByPos(12); // delete separator
tb->DeleteToolByPos(12); // delete separator
+1
View File
@@ -82,6 +82,7 @@ class CardsPanel : public SetWindowPanel {
TextCtrl* notes;
HoverButton* collapse_notes;
FilterCtrl* filter;
String filter_value; // value of filter, need separate variable because the control is destroyed
bool notes_below_editor;
/// Move the notes panel below the editor or below the card list
+7 -2
View File
@@ -135,7 +135,9 @@ void KeywordsPanel::initUI(wxToolBar* tb, wxMenuBar* mb) {
tb->AddTool(ID_KEYWORD_REMOVE, _(""), load_resource_tool_image(_("keyword_del")), wxNullBitmap, wxITEM_NORMAL,_TOOLTIP_("remove keyword"),_HELP_("remove keyword"));
// Filter/search textbox
tb->AddSeparator();
if (!filter) filter = new FilterCtrl(tb, ID_KEYWORD_FILTER, _LABEL_("search keywords"));
assert(!filter);
filter = new FilterCtrl(tb, ID_KEYWORD_FILTER, _LABEL_("search keywords"));
filter->setFilter(filter_value);
tb->AddControl(filter);
tb->Realize();
// Menus
@@ -146,7 +148,10 @@ void KeywordsPanel::destroyUI(wxToolBar* tb, wxMenuBar* mb) {
// Toolbar
tb->DeleteTool(ID_KEYWORD_ADD);
tb->DeleteTool(ID_KEYWORD_REMOVE);
tb->DeleteTool(filter->GetId()); filter = nullptr;
// remember value of filter control
filter_value = filter->getFilterString();
tb->DeleteTool(filter->GetId());
filter = nullptr;
// HACK: hardcoded size of rest of toolbar
tb->DeleteToolByPos(12); // delete separator
// Menus
+1
View File
@@ -72,6 +72,7 @@ class KeywordsPanel : public SetWindowPanel {
wxButton* add_param;
wxButton* ref_param;
FilterCtrl* filter;
String filter_value;
// --------------------------------------------------- : Events
void onKeywordSelect(KeywordSelectEvent& ev);