summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/column.hxx4
-rw-r--r--sc/inc/typedstrdata.hxx14
2 files changed, 14 insertions, 4 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 9303575a5d9d..56aa1f9fc65e 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -204,6 +204,7 @@ class ScColumn : protected ScColumnData
SCTAB nTab;
bool mbFiltering : 1; // it is true if there is a filtering in the column
+ bool mbFilteredRow : 1; // it is true if the actual row of the filtered column is hidden
bool mbEmptyBroadcastersPending : 1; // a broadcaster not removed during EnableDelayDeletingBroadcasters()
friend class ScDocument; // for FillInfo
@@ -255,6 +256,7 @@ public:
SCTAB GetTab() const { return nTab; }
SCCOL GetCol() const { return nCol; }
bool HasFiltering() const { return mbFiltering; }
+ bool IsFilteredRow() const { return mbFilteredRow; }
sc::CellStoreType& GetCellStore() { return maCells; }
const sc::CellStoreType& GetCellStore() const { return maCells; }
sc::CellTextAttrStoreType& GetCellAttrStore() { return maCellTextAttrs; }
@@ -598,7 +600,7 @@ public:
void GetFilterEntries(
sc::ColumnBlockConstPosition& rBlockPos, SCROW nStartRow, SCROW nEndRow,
- ScFilterEntries& rFilterEntries, bool bFiltering );
+ ScFilterEntries& rFilterEntries, bool bFiltering, bool bHiddenRow = false );
bool GetDataEntries( SCROW nRow, std::set<ScTypedStrData>& rStrings) const;
diff --git a/sc/inc/typedstrdata.hxx b/sc/inc/typedstrdata.hxx
index 7918b5501fca..25406d0e5f52 100644
--- a/sc/inc/typedstrdata.hxx
+++ b/sc/inc/typedstrdata.hxx
@@ -26,22 +26,29 @@ public:
};
ScTypedStrData(
- OUString&& rStr, double fVal = 0.0, double fRVal = 0.0, StringType nType = Standard, bool bDate = false ) :
+ OUString&& rStr, double fVal = 0.0, double fRVal = 0.0, StringType nType = Standard, bool bDate = false, bool bIsHiddenByFilter = false ) :
maStrValue(std::move(rStr)),
mfValue(fVal),
mfRoundedValue(fRVal),
meStrType(nType),
- mbIsDate( bDate ) {}
+ mbIsDate( bDate ),
+ mbIsHiddenByFilter(bIsHiddenByFilter) {}
ScTypedStrData( const OUString& rStr, double fVal = 0.0, double fRVal = 0.0, StringType eType = Standard,
- bool bDate = false );
+ bool bDate = false, bool bIsHiddenByFilter = false );
bool IsDate() const { return mbIsDate;}
+ bool IsHiddenByFilter() const { return mbIsHiddenByFilter;}
const OUString& GetString() const { return maStrValue;}
StringType GetStringType() const { return meStrType;}
double GetValue() const { return mfValue; }
double GetRoundedValue() const { return mfRoundedValue; }
+ struct LessHiddenRows
+ {
+ bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const;
+ };
+
struct LessCaseSensitive
{
bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const;
@@ -70,6 +77,7 @@ private:
double mfRoundedValue; // rounded value by format code
StringType meStrType;
bool mbIsDate;
+ bool mbIsHiddenByFilter;
};
class FindTypedStrData