summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Monastirsky <momonasmon@gmail.com>2018-11-11 01:38:01 +0200
committerMaxim Monastirsky <momonasmon@gmail.com>2018-11-18 00:39:12 +0100
commiteb5b353b523ec4d7d6588e2fae5b8b4117bfc2b1 (patch)
treeb051928cb2e7a942bc72ec2b30c0867097a5e4a4
parentf21c8878ad7c3af2d0e0c8a491d39874fc60b7ca (diff)
Simplify color status handling
Change-Id: I9335fa2ab94f69853b45f070499d7e18aac458c3 Reviewed-on: https://gerrit.libreoffice.org/63499 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
-rw-r--r--include/svx/colorwindow.hxx2
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx124
2 files changed, 29 insertions, 97 deletions
diff --git a/include/svx/colorwindow.hxx b/include/svx/colorwindow.hxx
index 5611e4d3e2bd..53605eb9ca12 100644
--- a/include/svx/colorwindow.hxx
+++ b/include/svx/colorwindow.hxx
@@ -40,7 +40,7 @@ class SVX_DLLPUBLIC ColorStatus
public:
ColorStatus();
~ColorStatus();
- bool statusChanged( const css::frame::FeatureStateEvent& rEvent );
+ void statusChanged( const css::frame::FeatureStateEvent& rEvent );
Color GetColor();
};
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 6a3e96edb831..a379d919f268 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -1772,20 +1772,8 @@ void SvxColorWindow::statusChanged( const css::frame::FeatureStateEvent& rEvent
}
else
{
- Color aColor(COL_TRANSPARENT);
-
- if (mrColorStatus.statusChanged(rEvent))
- {
- aColor = mrColorStatus.GetColor();
- }
- else if (rEvent.IsEnabled)
- {
- sal_Int32 nValue;
- if (rEvent.State >>= nValue)
- aColor = Color(nValue);
- }
-
- SelectEntry(aColor);
+ mrColorStatus.statusChanged(rEvent);
+ SelectEntry(mrColorStatus.GetColor());
}
}
@@ -1801,20 +1789,8 @@ void ColorWindow::statusChanged( const css::frame::FeatureStateEvent& rEvent )
}
else
{
- Color aColor(COL_TRANSPARENT);
-
- if (mrColorStatus.statusChanged(rEvent))
- {
- aColor = mrColorStatus.GetColor();
- }
- else if (rEvent.IsEnabled)
- {
- sal_Int32 nValue;
- if (rEvent.State >>= nValue)
- aColor = Color(nValue);
- }
-
- SelectEntry(aColor);
+ mrColorStatus.statusChanged(rEvent);
+ SelectEntry(mrColorStatus.GetColor());
}
}
@@ -1937,83 +1913,48 @@ ColorStatus::~ColorStatus()
{
}
-bool ColorStatus::statusChanged( const css::frame::FeatureStateEvent& rEvent )
+void ColorStatus::statusChanged( const css::frame::FeatureStateEvent& rEvent )
{
Color aColor( COL_TRANSPARENT );
+ css::table::BorderLine2 aTable;
- if ( rEvent.FeatureURL.Complete == ".uno:FrameLineColor" )
+ if ( rEvent.State >>= aTable )
{
- if ( rEvent.IsEnabled )
- rEvent.State >>= aColor;
-
- maColor = aColor;
- return true;
- }
- else
- {
- css::table::BorderLine2 aTable;
- if ( rEvent.IsEnabled )
- rEvent.State >>= aTable;
-
SvxBorderLine aLine;
SvxBoxItem::LineToSvxLine( aTable, aLine, false );
if ( !aLine.isEmpty() )
aColor = aLine.GetColor();
-
- if ( rEvent.FeatureURL.Complete == ".uno:BorderTLBR" )
- {
- maTLBRColor = aColor;
- return true;
- }
- else if ( rEvent.FeatureURL.Complete == ".uno:BorderBLTR" )
- {
- maBLTRColor = aColor;
- return true;
- }
}
+ else
+ rEvent.State >>= aColor;
- return false;
+ if ( rEvent.FeatureURL.Path == "BorderTLBR" )
+ maTLBRColor = aColor;
+ else if ( rEvent.FeatureURL.Path == "BorderBLTR" )
+ maBLTRColor = aColor;
+ else
+ maColor = aColor;
}
Color ColorStatus::GetColor()
{
- bool bHasColor = maColor != COL_TRANSPARENT;
- bool bHasTLBRColor = maTLBRColor != COL_TRANSPARENT;
- bool bHasBLTRColor = maBLTRColor != COL_TRANSPARENT;
+ Color aColor( maColor );
- if ( !bHasColor && bHasTLBRColor && !bHasBLTRColor )
- return maTLBRColor;
- else if ( !bHasColor && !bHasTLBRColor && bHasBLTRColor )
- return maBLTRColor;
- else if ( bHasColor && bHasTLBRColor && !bHasBLTRColor )
- {
- if ( maColor == maTLBRColor )
- return maColor;
- else
- return maBLTRColor;
- }
- else if ( bHasColor && !bHasTLBRColor && bHasBLTRColor )
- {
- if ( maColor == maBLTRColor )
- return maColor;
- else
- return maTLBRColor;
- }
- else if ( !bHasColor && bHasTLBRColor && bHasBLTRColor )
+ if ( maTLBRColor != COL_TRANSPARENT )
{
- if ( maTLBRColor == maBLTRColor )
- return maTLBRColor;
- else
- return maColor;
+ if ( aColor != maTLBRColor && aColor != COL_TRANSPARENT )
+ return COL_TRANSPARENT;
+ aColor = maTLBRColor;
}
- else if ( bHasColor && bHasTLBRColor && bHasBLTRColor )
+
+ if ( maBLTRColor != COL_TRANSPARENT )
{
- if ( maColor == maTLBRColor && maColor == maBLTRColor )
- return maColor;
- else
+ if ( aColor != maBLTRColor && aColor != COL_TRANSPARENT )
return COL_TRANSPARENT;
+ return maBLTRColor;
}
- return maColor;
+
+ return aColor;
}
@@ -3205,17 +3146,8 @@ void SvxColorToolBoxControl::statusChanged( const css::frame::FeatureStateEvent&
bool bValue;
if ( !m_bSplitButton )
{
- Color aColor( COL_TRANSPARENT );
-
- if ( m_aColorStatus.statusChanged( rEvent ) )
- {
- aColor = m_aColorStatus.GetColor();
- }
- else if ( rEvent.IsEnabled )
- {
- rEvent.State >>= aColor;
- }
- m_xBtnUpdater->Update( aColor );
+ m_aColorStatus.statusChanged( rEvent );
+ m_xBtnUpdater->Update( m_aColorStatus.GetColor() );
}
else if ( rEvent.State >>= bValue )
pToolBox->CheckItem( nId, bValue );