void CFilterEditDialog::OnFilterSelect(wxCommandEvent& event) { int item = m_pFilterListCtrl->GetSelection(); if (item == -1) { m_currentSelection = -1; SetCtrlState(false); return; } else SetCtrlState(true); if (item == m_currentSelection) return; if (m_currentSelection != -1) { wxASSERT((unsigned int)m_currentSelection < m_filters.size()); if (!Validate()) return; SaveFilter(m_filters[m_currentSelection]); } m_currentSelection = item; m_pFilterListCtrl->SetSelection(item); // In case SaveFilter has renamed an item CFilter filter = m_filters[item]; EditFilter(filter); XRCCTRL(*this, "ID_CASE", wxCheckBox)->SetValue(filter.matchCase); XRCCTRL(*this, "ID_FILES", wxCheckBox)->SetValue(filter.filterFiles); XRCCTRL(*this, "ID_DIRS", wxCheckBox)->SetValue(filter.filterDirs); XRCCTRL(*this, "ID_NAME", wxTextCtrl)->SetValue(filter.name); }
bool CSearchDialog::Load() { if (!wxDialogEx::Load(m_parent, _T("ID_SEARCH"))) return false; /* XRCed complains if adding a status bar to a dialog, so do it here instead */ CFilelistStatusBar* pStatusBar = new CFilelistStatusBar(this); pStatusBar->SetEmptyString(_("No search results")); GetSizer()->Add(pStatusBar, 0, wxGROW); if (!CreateListControl(filter_name | filter_size | filter_path | filter_date)) return false; m_results = new CSearchDialogFileList(this, m_pState, 0); ReplaceControl(XRCCTRL(*this, "ID_RESULTS", wxWindow), m_results); m_results->SetFilelistStatusBar(pStatusBar); const CServerPath path = m_pState->GetRemotePath(); if (!path.IsEmpty()) XRCCTRL(*this, "ID_PATH", wxTextCtrl)->ChangeValue(path.GetPath()); SetCtrlState(); m_pWindowStateManager = new CWindowStateManager(this); m_pWindowStateManager->Restore(OPTION_SEARCH_SIZE, wxSize(750, 500)); Layout(); LoadConditions(); EditFilter(m_search_filter); XRCCTRL(*this, "ID_CASE", wxCheckBox)->SetValue(m_search_filter.matchCase); return true; }