include/unotools/textsearch.hxx | 15 ++++++++++++--- sc/inc/docoptio.hxx | 36 +++++++++++++++++++++++++++++------- sc/source/core/tool/docoptio.cxx | 2 ++ 3 files changed, 43 insertions(+), 10 deletions(-)
New commits: commit 49d289475167ab21682bc8dbf26a7f67d5902ded Author: Eike Rathke <[email protected]> Date: Sat Feb 20 18:41:11 2016 +0100 let ConvertToSearchType() also adapt the regex bool, tdf#72196 Change-Id: I6d9c438873f3f26418e6b27884207106ccaea148 diff --git a/include/unotools/textsearch.hxx b/include/unotools/textsearch.hxx index 67c440a..07d2527 100644 --- a/include/unotools/textsearch.hxx +++ b/include/unotools/textsearch.hxx @@ -50,11 +50,20 @@ public: enum SearchType{ SRCH_NORMAL, SRCH_REGEXP, SRCH_LEVDIST, SRCH_WILDCARD }; /** Convert configuration and document boolean settings to SearchType. - If bWildcard is true it takes precedence over bRegExp. + If bWildcard is true it takes precedence over rbRegExp. + @param rbRegExp + If true and bWildcard is also true, rbRegExp is set to false to + adapt the caller's settings. */ - static SearchType ConvertToSearchType( bool bWildcard, bool bRegExp ) + static SearchType ConvertToSearchType( bool bWildcard, bool & rbRegExp ) { - return bWildcard ? SRCH_WILDCARD : (bRegExp ? SRCH_REGEXP : SRCH_NORMAL); + if (bWildcard) + { + if (rbRegExp) + rbRegExp = false; + return SRCH_WILDCARD; + } + return rbRegExp ? SRCH_REGEXP : SRCH_NORMAL; } /** Convert SearchType to configuration and document boolean settings. diff --git a/sc/inc/docoptio.hxx b/sc/inc/docoptio.hxx index 9335394..a5f3bbf 100644 --- a/sc/inc/docoptio.hxx +++ b/sc/inc/docoptio.hxx @@ -98,12 +98,7 @@ public: utl::SearchParam::SearchType GetFormulaSearchType() const { if (eFormulaSearchType == eSearchTypeUnknown) - { eFormulaSearchType = utl::SearchParam::ConvertToSearchType( bFormulaWildcardsEnabled, bFormulaRegexEnabled); - if (bFormulaWildcardsEnabled && bFormulaRegexEnabled) - // Mutually exclusive, straighten out. - bFormulaRegexEnabled = false; - } return eFormulaSearchType; } commit 1b6b4ffbd9608eff245deb87da5f193f5d955e51 Author: Eike Rathke <[email protected]> Date: Sat Feb 20 18:34:44 2016 +0100 implement wildcards precedence at ScDocOptions, tdf#72196 Change-Id: I3a8f880479ee2d0621e10b3c9d405948cadabeaf diff --git a/sc/inc/docoptio.hxx b/sc/inc/docoptio.hxx index cd7effa..9335394 100644 --- a/sc/inc/docoptio.hxx +++ b/sc/inc/docoptio.hxx @@ -21,6 +21,7 @@ #define INCLUDED_SC_INC_DOCOPTIO_HXX #include <unotools/configitem.hxx> +#include <unotools/textsearch.hxx> #include <svl/poolitem.hxx> #include <svl/itemprop.hxx> #include "scdllapi.h" @@ -39,15 +40,19 @@ class SC_DLLPUBLIC ScDocOptions sal_uInt16 nYear; sal_uInt16 nYear2000; ///< earlier 19YY is assumed, 20YY otherwise (if only YY of year is given) sal_uInt16 nTabDistance; ///< distance of standard tabs + mutable utl::SearchParam::SearchType eFormulaSearchType; ///< wildcards or regular expressions or normal search bool bIsIgnoreCase; ///< ignore case for comparisons? bool bIsIter; ///< iterations for circular refs bool bCalcAsShown; ///< calculate as shown (wrt precision) bool bMatchWholeCell; ///< search criteria must match the whole cell bool bDoAutoSpell; ///< auto-spelling bool bLookUpColRowNames; ///< determine column-/row titles automagically - bool bFormulaRegexEnabled; ///< regular expressions in formulas enabled - bool bFormulaWildcardsEnabled;///< wildcards in formulas enabled + mutable bool bFormulaRegexEnabled; ///< regular expressions in formulas enabled, only when reading settings + mutable bool bFormulaWildcardsEnabled;///< wildcards in formulas enabled, only when reading settings bool bWriteCalcConfig; ///< (subset of) Calc config will be written to user's profile + + const utl::SearchParam::SearchType eSearchTypeUnknown = static_cast<utl::SearchParam::SearchType>(-1); + public: ScDocOptions(); ScDocOptions( const ScDocOptions& rCpy ); @@ -90,11 +95,31 @@ public: void SetYear2000( sal_uInt16 nVal ) { nYear2000 = nVal; } sal_uInt16 GetYear2000() const { return nYear2000; } - void SetFormulaRegexEnabled( bool bVal ) { bFormulaRegexEnabled = bVal; } - bool IsFormulaRegexEnabled() const { return bFormulaRegexEnabled; } - - void SetFormulaWildcardsEnabled( bool bVal ) { bFormulaWildcardsEnabled = bVal; } - bool IsFormulaWildcardsEnabled() const { return bFormulaWildcardsEnabled; } + utl::SearchParam::SearchType GetFormulaSearchType() const + { + if (eFormulaSearchType == eSearchTypeUnknown) + { + eFormulaSearchType = utl::SearchParam::ConvertToSearchType( bFormulaWildcardsEnabled, bFormulaRegexEnabled); + if (bFormulaWildcardsEnabled && bFormulaRegexEnabled) + // Mutually exclusive, straighten out. + bFormulaRegexEnabled = false; + } + return eFormulaSearchType; + } + + void SetFormulaRegexEnabled( bool bVal ) + { + bFormulaRegexEnabled = bVal; + eFormulaSearchType = eSearchTypeUnknown; + } + bool IsFormulaRegexEnabled() const { return GetFormulaSearchType() == utl::SearchParam::SRCH_REGEXP; } + + void SetFormulaWildcardsEnabled( bool bVal ) + { + bFormulaWildcardsEnabled = bVal; + eFormulaSearchType = eSearchTypeUnknown; + } + bool IsFormulaWildcardsEnabled() const { return GetFormulaSearchType() == utl::SearchParam::SRCH_WILDCARD; } void SetWriteCalcConfig( bool bVal ) { bWriteCalcConfig = bVal; } bool IsWriteCalcConfig() const { return bWriteCalcConfig; } @@ -118,6 +143,7 @@ inline const ScDocOptions& ScDocOptions::operator=( const ScDocOptions& rCpy ) bLookUpColRowNames = rCpy.bLookUpColRowNames; bFormulaRegexEnabled= rCpy.bFormulaRegexEnabled; bFormulaWildcardsEnabled = rCpy.bFormulaWildcardsEnabled; + eFormulaSearchType = rCpy.eFormulaSearchType; bWriteCalcConfig = rCpy.bWriteCalcConfig; return *this; @@ -142,6 +168,7 @@ inline bool ScDocOptions::operator==( const ScDocOptions& rOpt ) const && rOpt.bLookUpColRowNames == bLookUpColRowNames && rOpt.bFormulaRegexEnabled == bFormulaRegexEnabled && rOpt.bFormulaWildcardsEnabled == bFormulaWildcardsEnabled + && rOpt.eFormulaSearchType == eFormulaSearchType && rOpt.bWriteCalcConfig == bWriteCalcConfig ); } diff --git a/sc/source/core/tool/docoptio.cxx b/sc/source/core/tool/docoptio.cxx index 8b9bcaa..77c6389 100644 --- a/sc/source/core/tool/docoptio.cxx +++ b/sc/source/core/tool/docoptio.cxx @@ -64,6 +64,7 @@ ScDocOptions::ScDocOptions( const ScDocOptions& rCpy ) nYear( rCpy.nYear ), nYear2000( rCpy.nYear2000 ), nTabDistance( rCpy.nTabDistance ), + eFormulaSearchType( rCpy.eFormulaSearchType ), bIsIgnoreCase( rCpy.bIsIgnoreCase ), bIsIter( rCpy.bIsIter ), bCalcAsShown( rCpy.bCalcAsShown ), @@ -98,6 +99,7 @@ void ScDocOptions::ResetDocOptions() bLookUpColRowNames = true; bFormulaRegexEnabled= true; bFormulaWildcardsEnabled= false; + eFormulaSearchType = eSearchTypeUnknown; bWriteCalcConfig = true; } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
