void
JDirInfo::SetWildcardFilter
	(
	JRegex*			filter,
	const JBoolean	dirInfoOwnsRegex,
	const JBoolean	negate
	)
{
	if (filter == NULL)
		{
		ClearWildcardFilter();
		return;
		}

	if (itsOwnsNameRegexFlag)
		{
		delete itsNameRegex;
		}

	itsNameRegex = filter;
	assert( itsNameRegex != NULL );

	itsOwnsNameRegexFlag   = dirInfoOwnsRegex;
	itsInvertNameRegexFlag = negate;

	ApplyFilters(kJTrue);
	Broadcast(SettingsChanged());
}
Beispiel #2
0
void
JDirInfo::SetWildcardFilter
	(
	const JCharacter*	filterStr,
	const JBoolean		negate,
	const JBoolean		caseSensitive
	)
{
	itsInvertNameRegexFlag = negate;

	JString regexStr;
	if (!BuildRegexFromWildcardFilter(filterStr, &regexStr))
		{
		ClearWildcardFilter();
		}
	else if (itsNameRegex == NULL || regexStr != itsNameRegex->GetPattern())
		{
		delete itsNameRegex;
		itsNameRegex = new JRegex(regexStr);
		assert( itsNameRegex != NULL );
		itsNameRegex->SetCaseSensitive(caseSensitive);

		ApplyFilters(kJTrue);
		Broadcast(SettingsChanged());
		}
	else if (itsNameRegex->IsCaseSensitive() != caseSensitive)
		{
		itsNameRegex->SetCaseSensitive(caseSensitive);

		ApplyFilters(kJTrue);
		Broadcast(SettingsChanged());
		}
}
void
JDirInfo::SetWildcardFilter
	(
	const JCharacter*	filterStr,
	const JBoolean		negate,
	const JBoolean		caseSensitive
	)
{
	JString regexStr;
	if (!BuildRegexFromWildcardFilter(filterStr, &regexStr))
		{
		ClearWildcardFilter();
		return;
		}

	JRegex* r = new JRegex(regexStr);
	assert( r != NULL );
	r->SetCaseSensitive(caseSensitive);

	SetWildcardFilter(r, kJTrue, negate);
}