24 #include <unordered_map>
37 class TableColumnBlockPositionSet;
41 class SharedStringPool;
45 class TransliterationWrapper;
93 template <
bool bFast = false>
112 bool* pTestEqualCondition =
nullptr);
std::unordered_map< FormulaError, svl::SharedString > mCachedSharedErrorStrings
const bool mbCaseSensitive
std::pair< bool, bool > compareByString(const ScQueryEntry &rEntry, const ScQueryEntry::Item &rItem, const svl::SharedString *pValueSource1, const OUString *pValueSource2)
bool isMatchWholeCell(const ScQueryEntry &rEntry) const
std::unique_ptr< bool[]> mpBoolDynamic
bool * mpTestEqualCondition
This is very similar to ScCellValue, except that it references the original value instead of copying ...
static constexpr SCSIZE nFixedBools
bool isTestWildOrRegExp(const ScQueryEntry &rEntry) const
std::pair< bool, bool > compareByValue(const ScRefCellValue &rCell, SCCOL nCol, SCROW nRow, const ScQueryEntry &rEntry, const ScQueryEntry::Item &rItem)
const SCSIZE mnEntryCount
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
const bool mbMatchWholeCell
static bool isQueryByValue(const ScQueryEntry &rEntry, const ScQueryEntry::Item &rItem, const ScRefCellValue &rCell)
static bool isQueryByValueForCell(const ScRefCellValue &rCell)
sal_uInt32 getNumFmt(SCCOL nCol, SCROW nRow)
std::pair< bool, bool > compareByTextColor(SCCOL nCol, SCROW nRow, const ScQueryEntry::Item &rItem)
CollatorWrapper * mpCollator
void setupCollatorIfNeeded()
static bool isMatchWholeCellHelper(bool docMatchWholeCell, const ScQueryEntry &rEntry)
static bool isQueryByString(const ScQueryEntry &rEntry, const ScQueryEntry::Item &rItem, const ScRefCellValue &rCell)
Set of column block positions only for one table.
CAUTION! The following defines must be in the same namespace as the respective type.
const ScQueryParam & mrParam
std::unique_ptr< bool[]> mpTestDynamic
std::pair< bool, bool > compareByBackgroundColor(SCCOL nCol, SCROW nRow, const ScQueryEntry::Item &rItem)
static bool isPartialTextMatchOp(const ScQueryEntry &rEntry)
void setupTransliteratorIfNeeded()
svl::SharedStringPool & mrStrPool
bool isFastCompareByString(const ScQueryEntry &rEntry) const
bool ValidQuery(SCROW nRow, const ScRefCellValue *pCell=nullptr, sc::TableColumnBlockPositionSet *pBlockPos=nullptr)
static bool isTextMatchOp(const ScQueryEntry &rEntry)
bool isRealWildOrRegExp(const ScQueryEntry &rEntry) const
std::pair< bool, bool > processEntry(SCROW nRow, SCCOL nCol, ScRefCellValue &aCell, const ScQueryEntry &rEntry, size_t nEntryIndex)
std::vector< std::vector< double > > mCachedSortedItemValues
const ScInterpreterContext * mpContext
static std::pair< bool, bool > compareByRangeLookup(const ScRefCellValue &rCell, const ScQueryEntry &rEntry, const ScQueryEntry::Item &rItem)
OUString getCellString(const ScRefCellValue &rCell, SCROW nRow, const ScQueryEntry &rEntry, const svl::SharedString **sharedString)
std::vector< std::vector< const rtl_uString * > > mCachedSortedItemStrings
These need to be in global namespace just like their respective types are.
ScQueryEvaluator(ScDocument &rDoc, const ScTable &rTab, const ScQueryParam &rParam, const ScInterpreterContext *pContext=nullptr, bool *pTestEqualCondition=nullptr)
Each instance of this struct represents a single filtering criteria.
utl::TransliterationWrapper * mpTransliteration