sc/inc/colorscale.hxx | 8 +++++++- sc/inc/fillinfo.hxx | 1 + sc/source/core/data/colorscale.cxx | 1 + sc/source/filter/inc/condformatbuffer.hxx | 1 + sc/source/filter/oox/condformatbuffer.cxx | 5 +++++ sc/source/filter/oox/condformatcontext.cxx | 3 +++ sc/source/ui/view/output.cxx | 14 +++++++++----- sc/source/ui/view/output2.cxx | 7 +++++++ 8 files changed, 34 insertions(+), 6 deletions(-)
New commits: commit 67ff63988f3b8eef2cc2b5bdf917918b93c3f070 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon May 21 01:19:19 2012 +0200 support to suppress values in data bar cells Change-Id: Ia292edd73408eed19cd6bc824e9621992c33ac97 diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx index 0dbb876..997c2a0 100644 --- a/sc/inc/colorscale.hxx +++ b/sc/inc/colorscale.hxx @@ -89,7 +89,8 @@ struct ScDataBarFormatData ScDataBarFormatData(): mbGradient(true), mbNeg(true), - meAxisPosition(databar::AUTOMATIC) {} + meAxisPosition(databar::AUTOMATIC), + mbOnlyBar(false){} /** * Color for all Positive Values and if mbNeg == false also for negative ones @@ -124,6 +125,11 @@ struct ScDataBarFormatData */ databar::ScAxisPostion meAxisPosition; + /** + * If TRUE we only show the bar and not the value + */ + bool mbOnlyBar; + boost::scoped_ptr<ScColorScaleEntry> mpUpperLimit; boost::scoped_ptr<ScColorScaleEntry> mpLowerLimit; }; diff --git a/sc/inc/fillinfo.hxx b/sc/inc/fillinfo.hxx index c2fa4a7..842ef1b 100644 --- a/sc/inc/fillinfo.hxx +++ b/sc/inc/fillinfo.hxx @@ -68,6 +68,7 @@ struct ScDataBarInfo Color maColor; double mnLength; // -100 to 100 bool mbGradient; + bool mbShowValue; bool operator==(const ScDataBarInfo& r) const { diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index 70b4872..3361d72 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -765,6 +765,7 @@ ScDataBarInfo* ScDataBarFormat::GetDataBarInfo(const ScAddress& rAddr) const pInfo->maColor = mpFormatData->maPositiveColor; pInfo->mbGradient = mpFormatData->mbGradient; + pInfo->mbShowValue = !mpFormatData->mbOnlyBar; return pInfo; } diff --git a/sc/source/filter/inc/condformatbuffer.hxx b/sc/source/filter/inc/condformatbuffer.hxx index 09b9a83..60f24d7 100644 --- a/sc/source/filter/inc/condformatbuffer.hxx +++ b/sc/source/filter/inc/condformatbuffer.hxx @@ -120,6 +120,7 @@ public: DataBarRule( const CondFormat& rFormat ); void importCfvo( const AttributeList& rAttribs ); void importColor( const AttributeList& rAttribs ); + void importAttribs( const AttributeList& rAttribs ); void SetData( ScDataBarFormat* pFormat, ScDocument* pDoc, const ScAddress& rAddr ); diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index 655b264..8792546 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -328,6 +328,11 @@ void DataBarRule::importCfvo( const AttributeList& rAttribs ) } } +void DataBarRule::importAttribs( const AttributeList& rAttribs ) +{ + mpFormat->mbOnlyBar = !rAttribs.getBool( XML_showValue, true ); +} + void DataBarRule::SetData( ScDataBarFormat* pFormat, ScDocument* pDoc, const ScAddress& rAddr ) { ScColorScaleEntry* pUpperEntry = ConvertToModel( *mpUpperLimit.get(), pDoc, rAddr); diff --git a/sc/source/filter/oox/condformatcontext.cxx b/sc/source/filter/oox/condformatcontext.cxx index 81d56fb..4e01d47 100644 --- a/sc/source/filter/oox/condformatcontext.cxx +++ b/sc/source/filter/oox/condformatcontext.cxx @@ -109,6 +109,9 @@ void DataBarContext::onStartElement( const AttributeList& rAttribs ) { switch( getCurrentElement() ) { + case XLS_TOKEN( dataBar ): + mxRule->getDataBar()->importAttribs( rAttribs ); + break; case XLS_TOKEN( cfvo ): mxRule->getDataBar()->importCfvo( rAttribs ); break; diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx index a91a7fe..26aeadb 100644 --- a/sc/source/ui/view/output2.cxx +++ b/sc/source/ui/view/output2.cxx @@ -1537,6 +1537,13 @@ void ScOutputData::DrawStrings( sal_Bool bPixelToLogic ) if ( bDoCell && bEditMode && nCellX == nEditCol && nCellY == nEditRow ) bDoCell = false; + // skip text in cell if data bar is set and only value selected + if ( bDoCell ) + { + if(pInfo->pDataBar && !pInfo->pDataBar->mbShowValue) + bDoCell = false; + } + // // output the cell text // commit d4b94e9eb96f24411ac0dcebe92ac878a8fae91f Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon May 21 01:08:25 2012 +0200 some smalll data bar rendering improvements Change-Id: I068565f21b6bda67e6a3b39eb3bbd248e1b48efe diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 0cb0f00..ba530de 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -804,17 +804,21 @@ namespace { void drawDataBars( const ScDataBarInfo* pOldDataBarInfo, OutputDevice* pDev, const Rectangle& rRect) { long nPosZero = 0; + Rectangle aPaintRect = rRect; + //aPaintRect.Top() += 2; + //aPaintRect.Bottom() -= 2; + //aPaintRect.Left() += 2; + //aPaintRect.Right() -= 2; if(pOldDataBarInfo->mnZero) { //need to calculate null point in cell - long nLength = rRect.Right() - rRect.Left(); - nPosZero = static_cast<long>(rRect.Left() + nLength*pOldDataBarInfo->mnZero/100.0); + long nLength = aPaintRect.Right() - aPaintRect.Left(); + nPosZero = static_cast<long>(aPaintRect.Left() + nLength*pOldDataBarInfo->mnZero/100.0); } else { - nPosZero = rRect.Left(); + nPosZero = aPaintRect.Left(); } - Rectangle aPaintRect = rRect; if(pOldDataBarInfo->mnLength < 0) { @@ -852,7 +856,7 @@ void drawDataBars( const ScDataBarInfo* pOldDataBarInfo, OutputDevice* pDev, con } //draw axis - if(pOldDataBarInfo->mnZero) + if(pOldDataBarInfo->mnZero && pOldDataBarInfo->mnZero != 100) { Point aPoint1(nPosZero, rRect.Top()); Point aPoint2(nPosZero, rRect.Bottom()); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits