summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMaxim Monastirsky <momonasmon@gmail.com>2018-11-11 00:28:36 +0200
committerMaxim Monastirsky <momonasmon@gmail.com>2018-11-20 00:10:58 +0100
commit05a8d3ce837f6fe488a099fc599b1fe3090d0b23 (patch)
tree0b4694e7c90805fc98448297df2353cad09f2cb3 /svx
parentf918e71d4e615fcc4527051a6e7f6bb4768d1269 (diff)
Simplify color status handling
(cherry picked from commit eb5b353b523ec4d7d6588e2fae5b8b4117bfc2b1) Rename BorderColorStatus to ColorStatus (cherry picked from commit 57f33bfd0c69a4568d1d5840391ab9901d4f4f66) Change-Id: I9335fa2ab94f69853b45f070499d7e18aac458c3 Reviewed-on: https://gerrit.libreoffice.org/63607 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx144
1 files changed, 38 insertions, 106 deletions
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index f4d85d734526..a379d919f268 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -1255,7 +1255,7 @@ void SvxFontNameBox_Impl::Select()
SvxColorWindow::SvxColorWindow(const OUString& rCommand,
std::shared_ptr<PaletteManager> const & rPaletteManager,
- BorderColorStatus& rBorderColorStatus,
+ ColorStatus& rColorStatus,
sal_uInt16 nSlotId,
const Reference< XFrame >& rFrame,
vcl::Window* pParentWindow,
@@ -1267,7 +1267,7 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
maCommand( rCommand ),
mxParentWindow(pParentWindow),
mxPaletteManager( rPaletteManager ),
- mrBorderColorStatus( rBorderColorStatus ),
+ mrColorStatus( rColorStatus ),
maColorSelectFunction(aFunction),
mbReuseParentForPicker(bReuseParentForPicker)
{
@@ -1367,7 +1367,7 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand,
}
ColorWindow::ColorWindow(std::shared_ptr<PaletteManager> const & rPaletteManager,
- BorderColorStatus& rBorderColorStatus,
+ ColorStatus& rColorStatus,
sal_uInt16 nSlotId,
const Reference< XFrame >& rFrame,
weld::Window* pParentWindow,
@@ -1381,7 +1381,7 @@ ColorWindow::ColorWindow(std::shared_ptr<PaletteManager> const & rPaletteManager
, mpParentWindow(pParentWindow)
, mpMenuButton(pMenuButton)
, mxPaletteManager(rPaletteManager)
- , mrBorderColorStatus(rBorderColorStatus)
+ , mrColorStatus(rColorStatus)
, maColorSelectFunction(aFunction)
, mxColorSet(new ColorValueSet(m_xBuilder->weld_scrolled_window("colorsetwin")))
, mxRecentColorSet(new ColorValueSet(nullptr))
@@ -1772,20 +1772,8 @@ void SvxColorWindow::statusChanged( const css::frame::FeatureStateEvent& rEvent
}
else
{
- Color aColor(COL_TRANSPARENT);
-
- if (mrBorderColorStatus.statusChanged(rEvent))
- {
- aColor = mrBorderColorStatus.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 (mrBorderColorStatus.statusChanged(rEvent))
- {
- aColor = mrBorderColorStatus.GetColor();
- }
- else if (rEvent.IsEnabled)
- {
- sal_Int32 nValue;
- if (rEvent.State >>= nValue)
- aColor = Color(nValue);
- }
-
- SelectEntry(aColor);
+ mrColorStatus.statusChanged(rEvent);
+ SelectEntry(mrColorStatus.GetColor());
}
}
@@ -1926,94 +1902,59 @@ void ColorWindow::SelectEntry(const Color& rColor)
ColorWindow::SelectEntry(std::make_pair(rColor, sColorName));
}
-BorderColorStatus::BorderColorStatus() :
+ColorStatus::ColorStatus() :
maColor( COL_TRANSPARENT ),
maTLBRColor( COL_TRANSPARENT ),
maBLTRColor( COL_TRANSPARENT )
{
}
-BorderColorStatus::~BorderColorStatus()
+ColorStatus::~ColorStatus()
{
}
-bool BorderColorStatus::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 BorderColorStatus::GetColor()
+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;
}
@@ -3172,7 +3113,7 @@ VclPtr<vcl::Window> SvxColorToolBoxControl::createPopupWindow( vcl::Window* pPar
VclPtrInstance<SvxColorWindow> pColorWin(
m_aCommandURL,
m_xPaletteManager,
- m_aBorderColorStatus,
+ m_aColorStatus,
m_nSlotId,
m_xFrame,
pParent,
@@ -3205,17 +3146,8 @@ void SvxColorToolBoxControl::statusChanged( const css::frame::FeatureStateEvent&
bool bValue;
if ( !m_bSplitButton )
{
- Color aColor( COL_TRANSPARENT );
-
- if ( m_aBorderColorStatus.statusChanged( rEvent ) )
- {
- aColor = m_aBorderColorStatus.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 );
@@ -3710,7 +3642,7 @@ void SvxColorListBox::createColorWindow()
m_xColorWindow = VclPtr<SvxColorWindow>::Create(
OUString() /*m_aCommandURL*/,
m_xPaletteManager,
- m_aBorderColorStatus,
+ m_aColorStatus,
m_nSlotId,
xFrame,
this,
@@ -3810,7 +3742,7 @@ void ColorListBox::createColorWindow()
m_xColorWindow.reset(new ColorWindow(
m_xPaletteManager,
- m_aBorderColorStatus,
+ m_aColorStatus,
m_nSlotId,
xFrame,
m_pTopLevel,