diff options
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/column.hxx | 3 | ||||
-rw-r--r-- | sc/inc/document.hxx | 6 | ||||
-rw-r--r-- | sc/inc/filterentries.hxx | 39 | ||||
-rw-r--r-- | sc/inc/table.hxx | 4 |
4 files changed, 46 insertions, 6 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index b9b5b01f3fe2..6d2ac9e44cf1 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -105,6 +105,7 @@ struct ScCellValue; class ScDocumentImport; class ScHint; enum class ScMF; +struct ScFilterEntries; struct ScNeededSizeOptions { @@ -522,7 +523,7 @@ public: void GetFilterEntries( sc::ColumnBlockConstPosition& rBlockPos, SCROW nStartRow, SCROW nEndRow, - std::vector<ScTypedStrData>& rStrings, bool& rHasDates ); + ScFilterEntries& rFilterEntries ); bool GetDataEntries( SCROW nRow, std::set<ScTypedStrData>& rStrings, bool bLimit ) const; diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index e08378e2242c..a7b9fcdc4d17 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -199,6 +199,7 @@ enum class ScDBDataPortion; enum class ScSheetEventId; class BitmapEx; class ScColumnsRange; +struct ScFilterEntries; namespace sc { @@ -1900,12 +1901,11 @@ public: * database range that contains the specified cell position. */ void GetFilterEntries( SCCOL nCol, SCROW nRow, - SCTAB nTab, std::vector<ScTypedStrData>& rStrings, - bool& rHasDates); + SCTAB nTab, ScFilterEntries& rFilterEntries ); SC_DLLPUBLIC void GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bCaseSens, - std::vector<ScTypedStrData>& rStrings, bool& rHasDates); + ScFilterEntries& rFilterEntries ); void GetDataEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, std::vector<ScTypedStrData>& rStrings, bool bLimit = false ); diff --git a/sc/inc/filterentries.hxx b/sc/inc/filterentries.hxx new file mode 100644 index 000000000000..2a8dccd99cb3 --- /dev/null +++ b/sc/inc/filterentries.hxx @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef SC_INC_FILTERENTRIES_HXX +#define SC_INC_FILTERENTRIES_HXX + +#include <sal/config.h> +#include "typedstrdata.hxx" +#include <vector> + +struct ScFilterEntries +{ + std::vector<ScTypedStrData> maStrData; + bool mbHasDates; + bool mbHasEmpties; + + ScFilterEntries() : mbHasDates(false), mbHasEmpties(false) {} + + std::vector<ScTypedStrData>::iterator begin() { return maStrData.begin(); } + std::vector<ScTypedStrData>::iterator end() { return maStrData.end(); } + std::vector<ScTypedStrData>::const_iterator begin() const { return maStrData.begin(); } + std::vector<ScTypedStrData>::const_iterator end() const { return maStrData.end(); } + std::vector<ScTypedStrData>::size_type size() const { return maStrData.size(); } + ScTypedStrData& front() { return maStrData.front(); } + const ScTypedStrData& front() const { return maStrData.front(); } + bool empty() const { return maStrData.empty(); } + void push_back( const ScTypedStrData& r ) { maStrData.push_back(r); } + void push_back( ScTypedStrData&& r ) { maStrData.push_back(r); } +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 4c734c7d7823..10974065d571 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -928,8 +928,8 @@ public: SCSIZE Query(const ScQueryParam& rQueryParam, bool bKeepSub); bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam); - void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, std::vector<ScTypedStrData>& rStrings, bool& rHasDates); - void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, std::vector<ScTypedStrData>& rStrings, bool& rHasDates ); + void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries& rFilterEntries ); + void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, ScFilterEntries& rFilterEntries ); bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set<ScTypedStrData>& rStrings, bool bLimit); bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const; |