Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/3213
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/13/3213/1
fdo#61541 : Count Number of selected Cells
Change-Id: Ic9c911552f2b03bb496f47251917a3736494dce1
---
M sc/inc/global.hxx
M sc/inc/globstr.hrc
M sc/source/core/data/documen4.cxx
M sc/source/filter/xml/XMLConverter.cxx
M sc/source/ui/src/globstr.src
M sc/source/ui/view/tabvwsha.cxx
M svx/inc/helpid.hrc
M svx/source/stbctrls/stbctrls.h
M svx/source/stbctrls/stbctrls.src
M xmloff/inc/xmloff/xmltoken.hxx
M xmloff/source/core/xmltoken.cxx
11 files changed, 41 insertions(+), 13 deletions(-)
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 5b3a5ad..00e35d2 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -741,7 +741,8 @@
SUBTOTAL_FUNC_STDP = 8,
SUBTOTAL_FUNC_SUM = 9,
SUBTOTAL_FUNC_VAR = 10,
- SUBTOTAL_FUNC_VARP = 11
+ SUBTOTAL_FUNC_VARP = 11,
+ SUBTOTAL_FUNC_SELECTION_COUNT = 12
};
class ScArea;
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index 9eec9ce..07bb519 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -668,7 +668,9 @@
#define STR_COND_ABOVE_EQUAL_AVERAGE 535
#define STR_COND_BELOW_EQUAL_AVERAGE 536
-#define STR_COUNT 537
+#define STR_FUN_TEXT_SELECTION_COUNT 537
+
+#define STR_COUNT 538
#endif
diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx
index 3df2fbc..87bd174 100644
--- a/sc/source/core/data/documen4.cxx
+++ b/sc/source/core/data/documen4.cxx
@@ -484,10 +484,15 @@
SCTAB nMax = static_cast<SCTAB>(maTabs.size());
ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
- for (; itr != itrEnd && *itr < nMax && !aData.bError; ++itr)
- if (maTabs[*itr])
+
+ if ( aData.eFunc != SUBTOTAL_FUNC_SELECTION_COUNT )
+ for (; itr != itrEnd && *itr < nMax && !aData.bError; ++itr)
+ if (maTabs[*itr])
maTabs[*itr]->UpdateSelectionFunction( aData,
nStartCol, nStartRow, nEndCol, nEndRow, rMark );
+
+ double nCount;
+ nCount = ( nEndRow - nStartRow + 1 )*( nEndCol - nStartCol + 1 );
//! rMark an UpdateSelectionFunction uebergeben !!!!!
@@ -497,6 +502,9 @@
case SUBTOTAL_FUNC_SUM:
rResult = aData.nVal;
break;
+ case SUBTOTAL_FUNC_SELECTION_COUNT:
+ rResult = nCount;
+ break;
case SUBTOTAL_FUNC_CNT:
case SUBTOTAL_FUNC_CNT2:
rResult = aData.nCount;
diff --git a/sc/source/filter/xml/XMLConverter.cxx b/sc/source/filter/xml/XMLConverter.cxx
index 751ab1b..32680a5 100644
--- a/sc/source/filter/xml/XMLConverter.cxx
+++ b/sc/source/filter/xml/XMLConverter.cxx
@@ -153,6 +153,7 @@
case SUBTOTAL_FUNC_MIN: sFuncStr = GetXMLToken( XML_MIN ); break;
case SUBTOTAL_FUNC_NONE: sFuncStr = GetXMLToken( XML_NONE ); break;
case SUBTOTAL_FUNC_PROD: sFuncStr = GetXMLToken( XML_PRODUCT ); break;
+ case SUBTOTAL_FUNC_SELECTION_COUNT: sFuncStr = GetXMLToken( XML_SELECTION_COUNT );
break;
case SUBTOTAL_FUNC_STD: sFuncStr = GetXMLToken( XML_STDEV ); break;
case SUBTOTAL_FUNC_STDP: sFuncStr = GetXMLToken( XML_STDEVP ); break;
case SUBTOTAL_FUNC_SUM: sFuncStr = GetXMLToken( XML_SUM ); break;
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index 06d1170..2c6b810 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -694,6 +694,10 @@
{
Text [ en-US ] = "Sum" ;
};
+ String STR_FUN_TEXT_SELECTION_COUNT
+ {
+ Text [ en-US ] = "Selection Count" ;
+ };
String STR_FUN_TEXT_COUNT
{
Text [ en-US ] = "Count" ;
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index 5d8e622..0775485 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -79,6 +79,8 @@
case SUBTOTAL_FUNC_MAX: nGlobStrId = STR_FUN_TEXT_MAX; break;
case SUBTOTAL_FUNC_MIN: nGlobStrId = STR_FUN_TEXT_MIN; break;
case SUBTOTAL_FUNC_SUM: nGlobStrId = STR_FUN_TEXT_SUM; break;
+ case SUBTOTAL_FUNC_SELECTION_COUNT: nGlobStrId = STR_FUN_TEXT_SELECTION_COUNT; break;
+
default:
{
// added to avoid warnings
@@ -105,7 +107,7 @@
// Number in the standard format, the other on the cursor position
SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
sal_uInt32 nNumFmt = 0;
- if ( eFunc != SUBTOTAL_FUNC_CNT && eFunc != SUBTOTAL_FUNC_CNT2 )
+ if ( eFunc != SUBTOTAL_FUNC_CNT && eFunc != SUBTOTAL_FUNC_CNT2 && eFunc !=
SUBTOTAL_FUNC_SELECTION_COUNT)
{
// Zahlformat aus Attributen oder Formel
pDoc->GetNumberFormat( nPosX, nPosY, nTab, nNumFmt );
diff --git a/svx/inc/helpid.hrc b/svx/inc/helpid.hrc
index 5455b33..b2088f6 100644
--- a/svx/inc/helpid.hrc
+++ b/svx/inc/helpid.hrc
@@ -134,6 +134,7 @@
#define HID_MNU_FUNC_MIN "SVX_HID_MNU_FUNC_MIN"
#define HID_MNU_FUNC_NONE "SVX_HID_MNU_FUNC_NONE"
#define HID_MNU_FUNC_SUM "SVX_HID_MNU_FUNC_SUM"
+#define HID_MNU_FUNC_SELECTION_COUNT "SVX_HID_MNU_FUNC_SELECTION_COUNT"
#define HID_MNU_ZOOM_100 "SVX_HID_MNU_ZOOM_100"
#define HID_MNU_ZOOM_150 "SVX_HID_MNU_ZOOM_150"
#define HID_MNU_ZOOM_200 "SVX_HID_MNU_ZOOM_200"
diff --git a/svx/source/stbctrls/stbctrls.h b/svx/source/stbctrls/stbctrls.h
index 7482c0b..601e327 100644
--- a/svx/source/stbctrls/stbctrls.h
+++ b/svx/source/stbctrls/stbctrls.h
@@ -31,15 +31,16 @@
#define ZOOM_PAGE_WIDTH 7
#define ZOOM_WHOLE_PAGE 8
-// IDs wie SUBTOTAL_FUNC im Calc
+// IDs wise SUBTOTAL_FUNC in Calc
-#define PSZ_FUNC_AVG 1
-#define PSZ_FUNC_COUNT2 3
-#define PSZ_FUNC_COUNT 2
-#define PSZ_FUNC_MAX 4
-#define PSZ_FUNC_MIN 5
-#define PSZ_FUNC_SUM 9
-#define PSZ_FUNC_NONE 16
+#define PSZ_FUNC_AVG 1
+#define PSZ_FUNC_COUNT2 3
+#define PSZ_FUNC_COUNT 2
+#define PSZ_FUNC_MAX 4
+#define PSZ_FUNC_MIN 5
+#define PSZ_FUNC_SUM 9
+#define PSZ_FUNC_SELECTION_COUNT 12
+#define PSZ_FUNC_NONE 16
#define XMLSEC_CALL 1
diff --git a/svx/source/stbctrls/stbctrls.src b/svx/source/stbctrls/stbctrls.src
index a5b6799..5fb8e57 100644
--- a/svx/source/stbctrls/stbctrls.src
+++ b/svx/source/stbctrls/stbctrls.src
@@ -218,6 +218,12 @@
};
MenuItem
{
+ Identifier = PSZ_FUNC_SELECTION_COUNT ;
+ HelpId = HID_MNU_FUNC_SELECTION_COUNT ;
+ Text [ en-US ] = "Selection Count" ;
+ };
+ MenuItem
+ {
Identifier = PSZ_FUNC_NONE ;
HelpId = HID_MNU_FUNC_NONE ;
Text [ en-US ] = "None" ;
diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx
index 8ca24b48..d0345a9 100644
--- a/xmloff/inc/xmloff/xmltoken.hxx
+++ b/xmloff/inc/xmloff/xmltoken.hxx
@@ -1743,6 +1743,7 @@
XML_SUB_VIEW_SIZE,
XML_SUFFIX,
XML_SUM,
+ XML_SELECTION_COUNT,
XML_SVGLINEARGRADIENT,
XML_SWISS,
XML_SYMBOL,
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index b195b94..d8e9e74 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -1748,6 +1748,7 @@
TOKEN( "sub-view-size", XML_SUB_VIEW_SIZE ),
TOKEN( "suffix", XML_SUFFIX ),
TOKEN( "sum", XML_SUM ),
+ TOKEN( "selection-count", XML_SELECTION_COUNT ),
TOKEN( "linearGradient", XML_SVGLINEARGRADIENT ),
TOKEN( "swiss", XML_SWISS ),
TOKEN( "symbol", XML_SYMBOL ),
--
To view, visit https://gerrit.libreoffice.org/3213
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic9c911552f2b03bb496f47251917a3736494dce1
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Prashant Pandey <prashant3.yishu@gmail.com>
Context
- [PATCH] fdo#61541 : Count Number of selected Cells · Prashant Pandey (via Code Review)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.