コード例 #1
0
// 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;
}
コード例 #2
0
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();
}
コード例 #3
0
ファイル: ObjectPropertyDual.cpp プロジェクト: hkaiser/TRiAS
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;
}
コード例 #4
0
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();
}
コード例 #5
0
ファイル: ObjectPropertyDual.cpp プロジェクト: hkaiser/TRiAS
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;
}