cui/source/inc/cuitabarea.hxx | 2 cui/source/tabpages/tphatch.cxx | 85 ++++++++++++++++++++++++++++------------ cui/uiconfig/ui/hatchpage.ui | 8 ++- 3 files changed, 67 insertions(+), 28 deletions(-)
New commits: commit ea96d97020322052a8d65e6e9bf521682819eb8e Author: Rishabh Kumar <[email protected]> Date: Sun Jul 17 02:20:13 2016 +0530 tdf#100907: Cannot set white background for hatching Change-Id: Id10cb4d90a19717b44d02064eb69981c69a421de Reviewed-on: https://gerrit.libreoffice.org/27258 Tested-by: Jenkins <[email protected]> Reviewed-by: Samuel Mehrbrodt <[email protected]> diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx index 2fa662d..835efd5 100644 --- a/cui/source/inc/cuitabarea.hxx +++ b/cui/source/inc/cuitabarea.hxx @@ -479,6 +479,7 @@ private: VclPtr<Slider> m_pSliderAngle; VclPtr<ListBox> m_pLbLineType; VclPtr<ColorLB> m_pLbLineColor; + VclPtr<CheckBox> m_pCbBackgroundColor; VclPtr<ColorLB> m_pLbBackgroundColor; VclPtr<SvxPresetListBox> m_pHatchLB; VclPtr<SvxXRectPreview> m_pCtlPreview; @@ -508,6 +509,7 @@ private: void ChangeHatchHdl_Impl(); DECL_LINK_TYPED( ModifiedEditHdl_Impl, Edit&, void ); DECL_LINK_TYPED( ModifiedListBoxHdl_Impl, ListBox&, void ); + DECL_LINK_TYPED( ToggleHatchBackgroundColor_Impl, CheckBox&, void ); DECL_LINK_TYPED( ModifiedBackgroundHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( ModifiedSliderHdl_Impl, Slider*, void ); void ModifiedHdl_Impl(void*); diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx index 81bb046..b8a8dd9 100644 --- a/cui/source/tabpages/tphatch.cxx +++ b/cui/source/tabpages/tphatch.cxx @@ -73,6 +73,7 @@ SvxHatchTabPage::SvxHatchTabPage get(m_pSliderAngle, "angleslider"); get(m_pLbLineType, "linetypelb"); get(m_pLbLineColor, "linecolorlb"); + get(m_pCbBackgroundColor, "backgroundcolor"); get(m_pLbBackgroundColor, "backgroundcolorlb"); get(m_pHatchLB , "hatchpresetlist"); Size aSize = getDrawListBoxOptimalSize(this); @@ -119,6 +120,7 @@ SvxHatchTabPage::SvxHatchTabPage m_pSliderAngle->SetSlideHdl( LINK( this, SvxHatchTabPage, ModifiedSliderHdl_Impl ) ); m_pLbLineType->SetSelectHdl( aLink2 ); m_pLbLineColor->SetSelectHdl( aLink2 ); + m_pCbBackgroundColor->SetToggleHdl( LINK( this, SvxHatchTabPage, ToggleHatchBackgroundColor_Impl ) ); m_pLbBackgroundColor->SetSelectHdl( LINK( this, SvxHatchTabPage, ModifiedBackgroundHdl_Impl ) ); m_pBtnAdd->SetClickHdl( LINK( this, SvxHatchTabPage, ClickAddHdl_Impl ) ); @@ -221,19 +223,28 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet ) } XFillBackgroundItem aBckItem( static_cast<const XFillBackgroundItem&>(rSet.Get(XATTR_FILLBACKGROUND))); - XFillColorItem aColorItem( static_cast<const XFillColorItem&>(rSet.Get(XATTR_FILLCOLOR)) ); - Color aColor(COL_WHITE); + m_rXFSet.Put( aBckItem ); + if(aBckItem.GetValue()) - aColor = aColorItem.GetColorValue(); - m_pLbBackgroundColor->SelectEntry(aColor); - if( m_pLbBackgroundColor->GetSelectEntryCount() == 0 ) { - m_pLbBackgroundColor->InsertEntry( aColor , OUString() ); - m_pLbBackgroundColor->SelectEntry( aColor ); - } + m_pCbBackgroundColor->SetState(TRISTATE_TRUE); + XFillColorItem aColorItem( static_cast<const XFillColorItem&>(rSet.Get(XATTR_FILLCOLOR)) ); + Color aColor(aColorItem.GetColorValue()); + m_pLbBackgroundColor->Enable(); + m_pLbBackgroundColor->SelectEntry(aColor); - m_rXFSet.Put( aBckItem ); - m_rXFSet.Put( aColorItem ); + if( m_pLbBackgroundColor->GetSelectEntryCount() == 0 ) + { + m_pLbBackgroundColor->InsertEntry( aColor , OUString() ); + m_pLbBackgroundColor->SelectEntry( aColor ); + } + m_rXFSet.Put( aColorItem ); + } + else + { + m_pCbBackgroundColor->SetState(TRISTATE_FALSE); + m_pLbBackgroundColor->Disable(); + } m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); m_pCtlPreview->Invalidate(); @@ -344,12 +355,10 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet ) rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) ); rSet->Put( XFillHatchItem( aString, *pXHatch ) ); - sal_uInt32 nPosBckColor = m_pLbBackgroundColor->GetSelectEntryPos(); - XFillBackgroundItem aItem( m_pLbBackgroundColor->GetSelectEntryColor() != COL_WHITE ); - aItem.SetWhich( XATTR_FILLBACKGROUND ); - rSet->Put( aItem ); - if(aItem.GetValue()) + rSet->Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) ); + if(m_pCbBackgroundColor->IsChecked()) { + sal_uInt32 nPosBckColor = m_pLbBackgroundColor->GetSelectEntryPos(); OUString aBckColorString; if( nPosBckColor != LISTBOX_ENTRY_NOTFOUND ) aBckColorString = m_pLbBackgroundColor->GetSelectEntry(); @@ -367,8 +376,17 @@ void SvxHatchTabPage::Reset( const SfxItemSet* rSet ) { ChangeHatchHdl_Impl(); - m_rXFSet.Put( static_cast<const XFillColorItem&>( rSet->Get(XATTR_FILLCOLOR)) ); - m_rXFSet.Put( static_cast<const XFillBackgroundItem&>(rSet->Get(XATTR_FILLBACKGROUND)) ); + XFillBackgroundItem aBckItem( static_cast<const XFillBackgroundItem&>(rSet->Get(XATTR_FILLBACKGROUND)) ); + if(aBckItem.GetValue()) + m_pCbBackgroundColor->SetState(TRISTATE_TRUE); + else + m_pCbBackgroundColor->SetState(TRISTATE_FALSE); + m_rXFSet.Put( aBckItem ); + + XFillColorItem aColItem( static_cast<const XFillColorItem&>(rSet->Get(XATTR_FILLCOLOR)) ); + m_pLbBackgroundColor->SelectEntry(aColItem.GetColorValue()); + m_rXFSet.Put( aColItem ); + m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); m_pCtlPreview->Invalidate(); } @@ -385,14 +403,37 @@ IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, v { ModifiedHdl_Impl(&rListBox); } -IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, ListBox&, rListBox, void ) + +IMPL_LINK_NOARG_TYPED( SvxHatchTabPage, ToggleHatchBackgroundColor_Impl, CheckBox&, void ) { - ModifiedHdl_Impl(&rListBox); + if(m_pCbBackgroundColor->IsChecked()) + m_pLbBackgroundColor->Enable(); + else + m_pLbBackgroundColor->Disable(); + m_rXFSet.Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) ); + ModifiedBackgroundHdl_Impl(*m_pLbBackgroundColor); } + +IMPL_LINK_NOARG_TYPED( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, ListBox&, void ) +{ + Color aColor(COL_TRANSPARENT); + if(m_pCbBackgroundColor->IsChecked()) + { + aColor = m_pLbBackgroundColor->GetSelectEntryColor(); + m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); + m_pCtlPreview->Invalidate(); + } + m_rXFSet.Put(XFillColorItem( OUString(), m_pLbBackgroundColor->GetSelectEntryColor() )); + + m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); + m_pCtlPreview->Invalidate(); +} + IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedEditHdl_Impl, Edit&, rEdit, void ) { ModifiedHdl_Impl(&rEdit); } + IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedSliderHdl_Impl, Slider*, rSlider, void ) { ModifiedHdl_Impl(rSlider); @@ -412,13 +453,7 @@ void SvxHatchTabPage::ModifiedHdl_Impl( void* p ) m_rXFSet.Put( XFillHatchItem( OUString(), aXHatch ) ); - XFillBackgroundItem aItem( m_pLbBackgroundColor->GetSelectEntryColor() != COL_WHITE ); - aItem.SetWhich( XATTR_FILLBACKGROUND ); - m_rXFSet.Put( aItem ); - if(aItem.GetValue()) - m_rXFSet.Put( XFillColorItem( OUString(), m_pLbBackgroundColor->GetSelectEntryColor() ) ); m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); - m_pCtlPreview->Invalidate(); } diff --git a/cui/uiconfig/ui/hatchpage.ui b/cui/uiconfig/ui/hatchpage.ui index cd1dc25..9552a9e 100644 --- a/cui/uiconfig/ui/hatchpage.ui +++ b/cui/uiconfig/ui/hatchpage.ui @@ -284,11 +284,13 @@ </packing> </child> <child> - <object class="GtkLabel" id="backgroundcolorft"> + <object class="GtkCheckButton" id="backgroundcolor"> + <property name="label" translatable="yes">Background Color</property> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Background color:</property> + <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
