[Libreoffice] Dynamic arrays in chartitempool
René Kjellerup
rk.katana.steel at gmail.com
Sat Oct 16 10:10:42 PDT 2010
added the SAL_N_ELEMENTS to construction and destruction, removed unused
code and includes
I removed some commented OSL_TRACE statements... but were they really needed
still?
best wishes
René
On Sat, Oct 16, 2010 at 6:47 PM, René Kjellerup
<rk.katana.steel at gmail.com>wrote:
> Wow... a simple symbol mistake of the brain, all the includes seemed to
> have hxx extension so....
>
> It complies now pulling a diff together.
> On Oct 16, 2010 3:30 PM, "René Kjellerup" <rk.katana.steel at gmail.com>
> wrote:
> > Okay I've now a beginning of a build of chart2 and I've added:
> > #include <sal/macros.h>
> > To the file, but the compilation says that the file is not found,
> > So where do one add the sal depends to the module? (or simply the
> includes)
> > On Oct 14, 2010 10:11 PM, "Michael Meeks" <michael.meeks at novell.com>
> wrote:
> >> Hi Rene,
> >>
> >> On Thu, 2010-10-14 at 19:05 +0200, René Kjellerup wrote:
> >>> I've looked through the calc's chart2 source and translated and spell
> >>> corrected a few comments in the view code
> >>
> >> Cool - nice work thanks for that; I pushed it.
> >>
> >>> in the ChartItemPool I've added the use of SAL_N_ELEMENTS(array) too
> >>
> >> Yep; the slight issue here though is that we need to re-arrange the
> >> code a bit. Your changes would work, but only if SCH_ATTR_START == 0 -
> >> since the range is offset otherwise. It would work if we had:
> >>
> >> - for( i = SCHATTR_START; i <= SCHATTR_END; i++ )
> >> + for( i = 0; i <= SAL_N_ELEMENTS(pItemInfos); i++ )
> >> {
> >> - pItemInfos[i - SCHATTR_START]._nSID = 0;
> >> + pItemInfos[i]._nSID = 0;
> >>
> >> etc. ;-) it could perhaps be re-factored like that if you want, but
> >> prolly best to compile/test it.
> >>
> >> Anyhow - thanks for your work ! looking forward to what you work on
> >> next - is there any area of LibreOffice you're particularly interested
> >> in contributing to ?
> >>
> >> All the best,
> >>
> >> Michael.
> >>
> >> --
> >> michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot
> >>
> >>
>
--
-- as life grows older, I gain experience.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20101016/c4540616/attachment.htm>
-------------- next part --------------
diff --git a/chart2/source/inc/chartview/ChartSfxItemIds.hxx b/chart2/source/inc/chartview/ChartSfxItemIds.hxx
index 86871a5..ec62da1 100644
--- a/chart2/source/inc/chartview/ChartSfxItemIds.hxx
+++ b/chart2/source/inc/chartview/ChartSfxItemIds.hxx
@@ -29,15 +29,11 @@
#include <sfx2/sfxdefs.hxx>
-/*
-// header for SID_OBJ1_START
-#include <sfx2/sfxsids.hrc>
-*/
-
// ============================================================
// SCHATTR
// ============================================================
+// can't this be changed to 0?
#define SCHATTR_START 1
#define SCHATTR_DATADESCR_START SCHATTR_START
@@ -56,8 +52,7 @@
#define SCHATTR_LEGEND_END SCHATTR_LEGEND_POS
#define SCHATTR_TEXT_START (SCHATTR_LEGEND_END + 1)
-// #define SCHATTR_TEXT_ORIENT SCHATTR_TEXT_START
-// name changed:
+// name changed, was SCHATTR_TEXT_ORIENT:
#define SCHATTR_TEXT_STACKED SCHATTR_TEXT_START
#define SCHATTR_TEXT_ORDER (SCHATTR_TEXT_START + 1)
#define SCHATTR_TEXT_END SCHATTR_TEXT_ORDER
@@ -124,7 +119,7 @@
#define SCHATTR_TEXT2_START ( SCHATTR_STAT_END + 1)
#define SCHATTR_TEXT_DEGREES ( SCHATTR_TEXT2_START )
-#define SCHATTR_TEXT_OVERLAP (SCHATTR_TEXT2_START +1)
+#define SCHATTR_TEXT_OVERLAP ( SCHATTR_TEXT2_START +1 )
#define SCHATTR_TEXT2_END ( SCHATTR_TEXT_OVERLAP )
// --------------------------------------------------------
@@ -153,7 +148,7 @@
// --------------------------------------------------------------------------
#define SCHATTR_AXIS (SCHATTR_STYLE_END + 1)// see chtmodel.hxx defines CHART_AXIS_PRIMARY_X, etc.
-//Ummappen:
+//Re-mapped:
#define SCHATTR_AXIS_START (SCHATTR_AXIS + 1)
#define SCHATTR_AXIS_AUTO_MIN SCHATTR_AXIS_START
#define SCHATTR_AXIS_MIN (SCHATTR_AXIS_START + 1)
@@ -167,7 +162,7 @@
#define SCHATTR_AXIS_LOGARITHM (SCHATTR_AXIS_START + 8)
#define SCHATTR_AXIS_AUTO_ORIGIN (SCHATTR_AXIS_START + 9)
#define SCHATTR_AXIS_ORIGIN (SCHATTR_AXIS_START + 10)
-//Neu:
+//New:
#define SCHATTR_AXIS_TICKS (SCHATTR_AXIS_START + 11)
#define SCHATTR_AXIS_NUMFMT (SCHATTR_AXIS_START + 12)
#define SCHATTR_AXIS_NUMFMTPERCENT (SCHATTR_AXIS_START + 13)
@@ -241,8 +236,8 @@
#define CHART_AXIS_Z 2
// values for SCHATTR_STYLE_SHAPE items
-#define CHART_SHAPE3D_IGNORE -2 //intern! (GetChartShapeStyle()!)
-#define CHART_SHAPE3D_ANY -1 //undefinierter Typ (GetChartShapeStyle()!)
+#define CHART_SHAPE3D_IGNORE -2 //internal! (GetChartShapeStyle()!)
+#define CHART_SHAPE3D_ANY -1 //undefined type (GetChartShapeStyle()!)
#define CHART_SHAPE3D_SQUARE 0
#define CHART_SHAPE3D_CYLINDER 1
#define CHART_SHAPE3D_CONE 2
diff --git a/chart2/source/view/main/ChartItemPool.cxx b/chart2/source/view/main/ChartItemPool.cxx
index c9475e9..d3082c9 100644
--- a/chart2/source/view/main/ChartItemPool.cxx
+++ b/chart2/source/view/main/ChartItemPool.cxx
@@ -44,6 +44,7 @@
#include <svl/svstdarr.hxx>
#include <editeng/editids.hrc>
#include <svx/svxids.hrc>
+#include <sal/macros.h>
namespace chart
{
@@ -51,7 +52,6 @@ namespace chart
ChartItemPool::ChartItemPool():
SfxItemPool( String( RTL_CONSTASCII_USTRINGPARAM( "ChartItemPool" )), SCHATTR_START, SCHATTR_END, NULL, NULL )
{
-// OSL_TRACE( "SCH: CTOR: ChartItemPool" );
/**************************************************************************
* PoolDefaults
**************************************************************************/
@@ -68,7 +68,6 @@ ChartItemPool::ChartItemPool():
ppPoolDefaults[SCHATTR_DATADESCR_NO_PERCENTVALUE - SCHATTR_START] = new SfxBoolItem(SCHATTR_DATADESCR_NO_PERCENTVALUE);
ppPoolDefaults[SCHATTR_LEGEND_POS - SCHATTR_START] = new SvxChartLegendPosItem( CHLEGEND_RIGHT, SCHATTR_LEGEND_POS );
-// ppPoolDefaults[SCHATTR_TEXT_ORIENT - SCHATTR_START] = new SvxChartTextOrientItem;
ppPoolDefaults[SCHATTR_TEXT_STACKED - SCHATTR_START] = new SfxBoolItem(SCHATTR_TEXT_STACKED,FALSE);
ppPoolDefaults[SCHATTR_TEXT_ORDER - SCHATTR_START] = new SvxChartTextOrderItem(CHTXTORDER_SIDEBYSIDE, SCHATTR_TEXT_ORDER);
@@ -145,7 +144,6 @@ ChartItemPool::ChartItemPool():
ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_MAIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_MAIN);
ppPoolDefaults[SCHATTR_AXIS_STEP_MAIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_MAIN);
ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_HELP - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_HELP);
-// ppPoolDefaults[SCHATTR_AXIS_STEP_HELP - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_HELP);
// type changed from double to sal_Int32
ppPoolDefaults[SCHATTR_AXIS_STEP_HELP - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_STEP_HELP,0);
ppPoolDefaults[SCHATTR_AXIS_LOGARITHM - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_LOGARITHM);
@@ -201,11 +199,10 @@ ChartItemPool::ChartItemPool():
**************************************************************************/
pItemInfos = new SfxItemInfo[SCHATTR_END - SCHATTR_START + 1];
- USHORT i;
- for( i = SCHATTR_START; i <= SCHATTR_END; i++ )
+ for(USHORT i = 0; i < SAL_N_ELEMENTS(pItemInfos); i++ )
{
- pItemInfos[i - SCHATTR_START]._nSID = 0;
- pItemInfos[i - SCHATTR_START]._nFlags = SFX_ITEM_POOLABLE;
+ pItemInfos[i]._nSID = 0;
+ pItemInfos[i]._nFlags = SFX_ITEM_POOLABLE;
}
// slot ids differing from which ids
@@ -220,17 +217,15 @@ ChartItemPool::ChartItemPool():
ChartItemPool::ChartItemPool(const ChartItemPool& rPool):
SfxItemPool(rPool)
{
-// OSL_TRACE( "SCH: CTOR: ChartItemPool" );
}
ChartItemPool::~ChartItemPool()
{
-// OSL_TRACE( "SCH: DTOR: ChartItemPool" );
Delete();
delete[] pItemInfos;
- const USHORT nMax = SCHATTR_END - SCHATTR_START + 1;
+ const USHORT nMax = SAL_N_ELEMENTS(ppPoolDefaults);
for( USHORT i=0; i<nMax; ++i )
{
SetRefCount(*ppPoolDefaults[i], 0);
More information about the LibreOffice
mailing list