// Constructs a searching regex from the selected // options and fields and then returns it. QString FindReplace::GetSearchRegex() { if (m_SpellCheck) { return QString(); } QString search( ui.cbFind->currentText() ); // Search type if ( GetSearchMode() == FindReplace::SearchMode_Normal || GetSearchMode() == FindReplace::SearchMode_Case_Sensitive ) { search = QRegExp::escape(search); if ( GetSearchMode() == FindReplace::SearchMode_Normal ) { search = "(?i)" + search; } } else { if ( m_RegexOptionDotAll ) { search = "(?s)" + search; } if ( m_RegexOptionMinimalMatch ) { search = "(?U)" + search; } } return search; }
void FindReplace::SetUpFindText() { Searchable* searchable = GetAvailableSearchable(); if ( searchable ) { QString selected_text = searchable->GetSelectedText(); if ( !selected_text.isEmpty() ) { if ( m_RegexOptionAutoTokenise && GetSearchMode() == FindReplace::SearchMode_Regex ) { selected_text = TokeniseForRegex( selected_text, false ); } // We want to make the text selected in the editor // as the default search text, but only if it's not "too long" if ( selected_text.length() < MAXIMUM_SELECTED_TEXT_LIMIT ) { ui.cbFind->setEditText( selected_text ); } } } // Find text should be selected by default ui.cbFind->lineEdit()->selectAll(); SetFocus(); }
STDMETHODIMP COleObjectPropertyDual::SearchObjects(BSTR bstrToMatch, SEARCHMODE rgFlags, IEnumObjectsByNumber **ppvObj) { if (NULL == ppvObj) return E_POINTER; *ppvObj = NULL; _ASSERTE(m_fSearchAble); // muß suchen können COM_TRY { WDSearchAbleObjectProperty Search(m_ObjProp); WDGeoObjects Objs; THROW_FAILED_HRESULT(Search -> SearchObjects(bstrToMatch, GetSearchMode(rgFlags), Objs.ppi())); WQueryEnumLONG QueryEnum(Objs); WEnumLONG Enum; THROW_FAILED_HRESULT(QueryEnum -> QueryEnumLONG (Enum.ppi())); WEnumObjectsByNumber EnumObjs(Enum); *ppvObj = EnumObjs.detach(); } COM_CATCH; return S_OK; }
void FindReplace::WriteSettings() { SettingsStore settings; settings.beginGroup( SETTINGS_GROUP ); settings.setValue( "find_strings", GetPreviousFindStrings() ); settings.setValue( "replace_strings", GetPreviousReplaceStrings() ); settings.setValue( "search_mode", GetSearchMode() ); settings.setValue( "look_where", GetLookWhere() ); settings.setValue( "search_direction", GetSearchDirection() ); settings.endGroup(); }
STDMETHODIMP COleObjectPropertyDual::ConsiderSearch(BSTR bstrToMatch, SEARCHMODE rgFlags, ULONG ulCnt) { CComBool fCanSearch; _ASSERTE(m_fSearchAble); // muß suchen können COM_TRY { WDSearchAbleObjectProperty Search(m_ObjProp); THROW_FAILED_HRESULT(Search -> ConsiderSearch(bstrToMatch, GetSearchMode(rgFlags), &fCanSearch)); } COM_CATCH; return fCanSearch ? S_OK : E_NOTIMPL; }