sc/source/filter/excel/xeextlst.cxx | 6 ++-- sc/source/filter/inc/condformatbuffer.hxx | 9 +++--- sc/source/filter/inc/xeextlst.hxx | 2 + sc/source/filter/oox/condformatbuffer.cxx | 44 ++++++++++++++++++++++-------- sc/source/ui/cctrl/checklistmenu.cxx | 1 sc/source/ui/view/tabview3.cxx | 6 ++-- 6 files changed, 48 insertions(+), 20 deletions(-)
New commits: commit 9de1d53a2ce3ee7036b4688b373db7b2235af4d9 Author: Markus Mohrhard <[email protected]> Date: Thu May 14 01:57:12 2015 +0200 VclPtr::reset does not delete the widget, tdf#91269 Change-Id: I26f392dc32bc4eb6fa82a1446680725691126457 diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx index ecc9e2b..e7ffbed 100644 --- a/sc/source/ui/view/tabview3.cxx +++ b/sc/source/ui/view/tabview3.cxx @@ -609,7 +609,7 @@ void ScTabView::TestHintWindow() { //! Abfrage, ob an gleicher Stelle !!!! - mpInputHintWindow.reset(); + mpInputHintWindow.disposeAndClear(); ScSplitPos eWhich = aViewData.GetActivePart(); ScGridWindow* pWin = pGridWin[eWhich]; @@ -638,7 +638,7 @@ void ScTabView::TestHintWindow() } } else - mpInputHintWindow.reset(); + mpInputHintWindow.disposeAndClear(); // list drop-down button if ( pData && pData->HasSelectionList() ) @@ -648,7 +648,7 @@ void ScTabView::TestHintWindow() } } else - mpInputHintWindow.reset(); + mpInputHintWindow.disposeAndClear(); for ( sal_uInt16 i=0; i<4; i++ ) if ( pGridWin[i] && pGridWin[i]->IsVisible() ) commit ffd9e164af2895c19edeee90b35032d74e2eac96 Author: Markus Mohrhard <[email protected]> Date: Thu May 14 01:39:14 2015 +0200 fix dbgutil crash with autofilter dialog after VclPtr change Change-Id: Ic8f3079ddc7db8be349d4b322cc35a8f6aa38d9b diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx index 8dd50aa..8b98dfc 100644 --- a/sc/source/ui/cctrl/checklistmenu.cxx +++ b/sc/source/ui/cctrl/checklistmenu.cxx @@ -912,6 +912,7 @@ ScCheckListMenuWindow::~ScCheckListMenuWindow() void ScCheckListMenuWindow::dispose() { + maEdSearch.disposeAndClear(); maChecks.disposeAndClear(); maChkToggleAll.disposeAndClear(); maBtnSelectSingle.disposeAndClear(); commit d8d078f4927ecc173e30c90d2859f756a601957a Author: Markus Mohrhard <[email protected]> Date: Thu May 14 01:26:26 2015 +0200 better databar negative color and axis color import Should finally handle themed colors and tints. There seem to be a few issue left that I need to understand. Change-Id: Icdd0a2d26519eb1c4171d6888913ba2c6944a443 diff --git a/sc/source/filter/inc/condformatbuffer.hxx b/sc/source/filter/inc/condformatbuffer.hxx index 18523d8..32042ce 100644 --- a/sc/source/filter/inc/condformatbuffer.hxx +++ b/sc/source/filter/inc/condformatbuffer.hxx @@ -224,15 +224,15 @@ struct ExCfRuleModel bool mbGradient; OUString maAxisPosition; // AxisColor - sal_uInt32 mnAxisColor; + ::Color mnAxisColor; // NegativeFillColor - sal_uInt32 mnNegativeColor; + ::Color mnNegativeColor; // Cfvo bool mbIsLower; OUString maColorScaleType; }; -class ExtCfRule +class ExtCfRule : public WorksheetHelper { enum RuleType { @@ -246,7 +246,8 @@ class ExtCfRule RuleType mnRuleType; ScDataBarFormatData* mpTarget; public: - ExtCfRule(ScDataBarFormatData* pTarget = NULL ) : mnRuleType( ExtCfRule::UNKNOWN ), mpTarget(pTarget) {} + + ExtCfRule(ScDataBarFormatData* pTarget, WorksheetHelper& rParent); void finalizeImport(); void importDataBar( const AttributeList& rAttribs ); void importNegativeFillColor( const AttributeList& rAttribs ); diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index 08ea800..a5c42f3 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -171,9 +171,7 @@ namespace { return ::Color(ornA, ornR, ornG, ornB); } -} - -void ColorScaleRule::importColor( const AttributeList& rAttribs ) +::Color importOOXColor(const AttributeList& rAttribs, ThemeBuffer& rThemeBuffer, GraphicHelper& rGraphicHelper) { sal_uInt32 nColor = 0; if( rAttribs.hasAttribute( XML_rgb ) ) @@ -181,7 +179,7 @@ void ColorScaleRule::importColor( const AttributeList& rAttribs ) else if( rAttribs.hasAttribute( XML_theme ) ) { sal_uInt32 nThemeIndex = rAttribs.getUnsigned( XML_theme, 0 ); - nColor = getTheme().getColorByIndex( nThemeIndex ); + nColor = rThemeBuffer.getColorByIndex( nThemeIndex ); } @@ -192,12 +190,23 @@ void ColorScaleRule::importColor( const AttributeList& rAttribs ) oox::drawingml::Color aDMColor; aDMColor.setSrgbClr(nColor); aDMColor.addExcelTintTransformation(nTint); - nColor = aDMColor.getColor(getBaseFilter().getGraphicHelper()); + nColor = aDMColor.getColor(rGraphicHelper); aColor = ::Color(nColor); } else aColor = ARgbToARgbComponents( nColor ); + return aColor; +} + +} + +void ColorScaleRule::importColor( const AttributeList& rAttribs ) +{ + ThemeBuffer& rThemeBuffer = getTheme(); + GraphicHelper& rGraphicHelper = getBaseFilter().getGraphicHelper(); + ::Color aColor = importOOXColor(rAttribs, rThemeBuffer, rGraphicHelper); + if(mnCol >= maColorScaleRuleEntries.size()) maColorScaleRuleEntries.push_back(ColorScaleRuleModelEntry()); @@ -1075,7 +1084,7 @@ CondFormatRef CondFormatBuffer::importCondFormatting( SequenceInputStream& rStrm ExtCfRuleRef CondFormatBuffer::createExtCfRule(ScDataBarFormatData* pTarget) { - ExtCfRuleRef extRule( new ExtCfRule( pTarget ) ); + ExtCfRuleRef extRule( new ExtCfRule( pTarget, *this ) ); maCfRules.push_back( extRule ); return extRule; } @@ -1124,6 +1133,13 @@ CondFormatRef CondFormatBuffer::createCondFormat() return xCondFmt; } +ExtCfRule::ExtCfRule(ScDataBarFormatData* pTarget, WorksheetHelper& rParent): + WorksheetHelper(rParent), + mnRuleType( ExtCfRule::UNKNOWN ), + mpTarget(pTarget) +{ +} + void ExtCfRule::finalizeImport() { switch ( mnRuleType ) @@ -1143,13 +1159,13 @@ void ExtCfRule::finalizeImport() case AXISCOLOR: { ScDataBarFormatData* pDataBar = mpTarget; - pDataBar->maAxisColor = ARgbToARgbComponents(maModel.mnAxisColor); + pDataBar->maAxisColor = maModel.mnAxisColor; break; } case NEGATIVEFILLCOLOR: { ScDataBarFormatData* pDataBar = mpTarget; - pDataBar->mpNegativeColor.reset( new ::Color( ARgbToARgbComponents(maModel.mnNegativeColor) ) ); + pDataBar->mpNegativeColor.reset( new ::Color(maModel.mnNegativeColor) ); pDataBar->mbNeg = true; break; } @@ -1193,14 +1209,20 @@ void ExtCfRule::importDataBar( const AttributeList& rAttribs ) void ExtCfRule::importNegativeFillColor( const AttributeList& rAttribs ) { - mnRuleType = NEGATIVEFILLCOLOR; - maModel.mnNegativeColor = rAttribs.getUnsignedHex( XML_rgb, UNSIGNED_RGB_TRANSPARENT ); + mnRuleType = NEGATIVEFILLCOLOR; + ThemeBuffer& rThemeBuffer = getTheme(); + GraphicHelper& rGraphicHelper = getBaseFilter().getGraphicHelper(); + ::Color aColor = importOOXColor(rAttribs, rThemeBuffer, rGraphicHelper); + maModel.mnNegativeColor = aColor; } void ExtCfRule::importAxisColor( const AttributeList& rAttribs ) { mnRuleType = AXISCOLOR; - maModel.mnAxisColor = rAttribs.getUnsignedHex( XML_rgb, UNSIGNED_RGB_TRANSPARENT ); + ThemeBuffer& rThemeBuffer = getTheme(); + GraphicHelper& rGraphicHelper = getBaseFilter().getGraphicHelper(); + ::Color aColor = importOOXColor(rAttribs, rThemeBuffer, rGraphicHelper); + maModel.mnAxisColor = aColor; } void ExtCfRule::importCfvo( const AttributeList& rAttribs ) commit be62a97a96734e40576784bb69b020ec82a195fc Author: Markus Mohrhard <[email protected]> Date: Thu May 14 01:25:40 2015 +0200 correct export for min and max databar length Forgot the extLst entry during my earlier work. Now they are both in sync again. Change-Id: Ie97276fde2b9d956ad4a3e93072a6d6627c5b0bf diff --git a/sc/source/filter/excel/xeextlst.cxx b/sc/source/filter/excel/xeextlst.cxx index c621c24..885e1fd 100644 --- a/sc/source/filter/excel/xeextlst.cxx +++ b/sc/source/filter/excel/xeextlst.cxx @@ -123,6 +123,8 @@ XclExpExtDataBar::XclExpExtDataBar( const XclExpRoot& rRoot, const ScDataBarForm meAxisPosition = rFormatData.meAxisPosition; mbGradient = rFormatData.mbGradient; + mnMinLength = rFormatData.mnMinLength; + mnMaxLength = rFormatData.mnMaxLength; } namespace { @@ -147,8 +149,8 @@ void XclExpExtDataBar::SaveXml( XclExpXmlStream& rStrm ) { sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream(); rWorksheet->startElementNS( XML_x14, XML_dataBar, - XML_minLength, OString::number(0).getStr(), - XML_maxLength, OString::number(100).getStr(), + XML_minLength, OString::number(mnMinLength).getStr(), + XML_maxLength, OString::number(mnMaxLength).getStr(), XML_axisPosition, getAxisPosition(meAxisPosition), XML_gradient, XclXmlUtils::ToPsz(mbGradient), FSEND ); diff --git a/sc/source/filter/inc/xeextlst.hxx b/sc/source/filter/inc/xeextlst.hxx index d65c9a7..e92afd5 100644 --- a/sc/source/filter/inc/xeextlst.hxx +++ b/sc/source/filter/inc/xeextlst.hxx @@ -78,6 +78,8 @@ public: private: databar::ScAxisPosition meAxisPosition; bool mbGradient; + double mnMinLength; + double mnMaxLength; std::unique_ptr<XclExpExtCfvo> mpLowerLimit; std::unique_ptr<XclExpExtCfvo> mpUpperLimit; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
