bool CFilterEditDialog::Create(wxWindow* parent, const std::vector<CFilter>& filters, const std::vector<CFilterSet>& filterSets) { bool has_foreign_type = false; for (std::vector<CFilter>::const_iterator iter = filters.begin(); iter != filters.end(); iter++) { const CFilter& filter = *iter; if (!filter.HasConditionOfType(filter_foreign)) continue; has_foreign_type = true; break; } if (!Load(parent, _T("ID_EDITFILTER"))) return false; int conditions = filter_name | filter_size | filter_path | filter_meta; if (has_foreign_type) conditions |= filter_foreign; if (!CreateListControl(conditions)) return false; m_pFilterListCtrl = XRCCTRL(*this, "ID_FILTERS", wxListBox); if (!m_pFilterListCtrl) return false; m_currentSelection = -1; m_filters = filters; m_filterSets = filterSets; for (std::vector<CFilter>::const_iterator iter = filters.begin(); iter != filters.end(); iter++) m_pFilterListCtrl->Append(iter->name); m_pWindowStateManager = new CWindowStateManager(this); m_pWindowStateManager->Restore(OPTION_FILTEREDIT_SIZE, wxSize(750, 500)); Layout(); SetCtrlState(false); return true; }
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; }