diff options
author | Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> | 2021-05-06 09:12:05 +0200 |
---|---|---|
committer | Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> | 2021-05-11 09:17:13 +0200 |
commit | 3c8b248b5a7395b174fc265e3237bd79aeb2455f (patch) | |
tree | 9cad940a0791d4f2977597f860a0cba8de8faafa /sc/source/ui/unoobj/datauno.cxx | |
parent | 3595670c9082639b3efcd8d9426e4909b8fa212a (diff) |
tdf#76258 Add OOXML import for color filter
Change-Id: I74cf4f56e0adf1cb8af8e6e932c14b30cce67c71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115168
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Diffstat (limited to 'sc/source/ui/unoobj/datauno.cxx')
-rw-r--r-- | sc/source/ui/unoobj/datauno.cxx | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx index 3d149d3567d2..4691b7082326 100644 --- a/sc/source/ui/unoobj/datauno.cxx +++ b/sc/source/ui/unoobj/datauno.cxx @@ -34,6 +34,7 @@ #include <com/sun/star/table/TableOrientation.hpp> #include <com/sun/star/table/CellRangeAddress.hpp> #include <com/sun/star/sheet/DataImportMode.hpp> +#include <com/sun/star/sheet/FilterFieldType.hpp> #include <com/sun/star/sheet/FilterOperator2.hpp> #include <com/sun/star/sheet/TableFilterField2.hpp> @@ -64,6 +65,7 @@ #include <memory> using namespace com::sun::star; +using namespace css::sheet; // everything without Which-ID, map only for PropertySetInfo @@ -1124,7 +1126,24 @@ void fillQueryParam( for (const auto& rVal : rVals) { ScQueryEntry::Item aItem; - aItem.meType = rVal.IsNumeric ? ScQueryEntry::ByValue : (rVal.IsDateValue ? ScQueryEntry::ByDate : ScQueryEntry::ByString); + switch (rVal.FilterType) + { + case FilterFieldType::NUMERIC: + aItem.meType = ScQueryEntry::ByValue; + break; + case FilterFieldType::STRING: + aItem.meType = ScQueryEntry::ByString; + break; + case FilterFieldType::DATE: + aItem.meType = ScQueryEntry::ByDate; + break; + case FilterFieldType::TEXT_COLOR: + aItem.meType = ScQueryEntry::ByTextColor; + break; + case FilterFieldType::BACKGROUND_COLOR: + aItem.meType = ScQueryEntry::ByBackgroundColor; + break; + } aItem.mfVal = rVal.NumericValue; aItem.maString = rPool.intern(rVal.StringValue); @@ -1151,6 +1170,11 @@ void fillQueryParam( pDoc->GetFormatTable()->GetInputLineString(aItem.mfVal, 0, aStr); aItem.maString = rPool.intern(aStr); } + else if (aItem.meType == ScQueryEntry::ByTextColor + || aItem.meType == ScQueryEntry::ByBackgroundColor) + { + aItem.maColor = Color(ColorTransparency, rVal.ColorValue); + } // filter all dates starting with the given date filter YYYY or YYYY-MM and filter all datetimes // starting with the given datetime filter YYYY-MM-DD, YYYY-MM-DD HH, or YYYY-MM-DD HH:MM |