summaryrefslogtreecommitdiff
path: root/cui/source/options/optchart.cxx
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@me.com>2019-03-21 10:41:06 +0100
committerArmin Le Grand <Armin.Le.Grand@me.com>2019-03-21 13:06:43 +0100
commite53f380cbae0741ee4b39483a6422898bb580d28 (patch)
treeac54fdfd05cd92bb53074d4b164ec87eef55d8a3 /cui/source/options/optchart.cxx
parentddf1e93c740901503c92e289c70cb4d54c38dd6e (diff)
Make SvxChartColorTableItem more const
SvxChartColorTableItem has non-const members (aka modifiers) which is bad for SfxItems in general, see comments in change. Adapt SvxChartColorTableItem and it's usage in SvxDefaultColorOptPage as needed. This is also preparation for possible SfxItem refactoring Change-Id: Ia7982b4e7bbfa736229223e55ce63e02143b8cf7 Reviewed-on: https://gerrit.libreoffice.org/69499 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Diffstat (limited to 'cui/source/options/optchart.cxx')
-rw-r--r--cui/source/options/optchart.cxx60
1 files changed, 29 insertions, 31 deletions
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index 4645f4ea10d0..0ddd786c71c6 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -82,15 +82,14 @@ void SvxDefaultColorOptPage::ModifyColorEntry(const XColorEntry& rEntry, sal_Int
void SvxDefaultColorOptPage::FillBoxChartColorLB()
{
- if (!pColorConfig)
+ if (!m_SvxChartColorTableUniquePtr)
return;
- const SvxChartColorTable & rTab = pColorConfig->GetColorList();
m_pLbChartColors->SetUpdateMode(false);
ClearColorEntries();
- long nCount = rTab.size();
+ const long nCount(m_SvxChartColorTableUniquePtr->size());
for (long i = 0; i < nCount; ++i)
- InsertColorEntry(rTab[i]);
+ InsertColorEntry((*m_SvxChartColorTableUniquePtr)[i]);
m_pLbChartColors->SetUpdateMode(true);
}
@@ -114,19 +113,19 @@ SvxDefaultColorOptPage::SvxDefaultColorOptPage(vcl::Window* pParent, const SfxIt
m_pValSetColorBox->SetStyle( m_pValSetColorBox->GetStyle()
| WB_ITEMBORDER | WB_NAMEFIELD | WB_VSCROLL );
- pChartOptions.reset(new SvxChartOptions);
+ m_SvxChartOptionsUniquePtr.reset(new SvxChartOptions);
const SfxPoolItem* pItem = nullptr;
if ( rInAttrs.GetItemState( SID_SCH_EDITOPTIONS, false, &pItem ) == SfxItemState::SET )
{
- pColorConfig.reset(static_cast< SvxChartColorTableItem* >(pItem->Clone()));
+ m_SvxChartColorTableUniquePtr = std::make_unique<SvxChartColorTable>(
+ static_cast<const SvxChartColorTableItem*>(pItem)->GetColorList());
}
else
{
- SvxChartColorTable aTable;
- aTable.useDefault();
- pColorConfig.reset(new SvxChartColorTableItem( SID_SCH_EDITOPTIONS, aTable ));
- pColorConfig->SetOptions( pChartOptions.get() );
+ m_SvxChartColorTableUniquePtr = std::make_unique<SvxChartColorTable>();
+ m_SvxChartColorTableUniquePtr->useDefault();
+ m_SvxChartOptionsUniquePtr->SetDefaultColors(*m_SvxChartColorTableUniquePtr.get());
}
Construct();
@@ -139,11 +138,8 @@ SvxDefaultColorOptPage::~SvxDefaultColorOptPage()
void SvxDefaultColorOptPage::dispose()
{
- if (pChartOptions)
- {
- pColorConfig.reset();
- pChartOptions.reset();
- }
+ m_SvxChartColorTableUniquePtr.reset();
+ m_SvxChartOptionsUniquePtr.reset();
m_pLbChartColors.clear();
m_pValSetColorBox.clear();
m_pPBDefault.clear();
@@ -169,8 +165,10 @@ VclPtr<SfxTabPage> SvxDefaultColorOptPage::Create( TabPageParent pParent, const
bool SvxDefaultColorOptPage::FillItemSet( SfxItemSet* rOutAttrs )
{
- if( pColorConfig )
- rOutAttrs->Put( *pColorConfig );
+ if( m_SvxChartColorTableUniquePtr )
+ {
+ rOutAttrs->Put(SvxChartColorTableItem(SID_SCH_EDITOPTIONS, *m_SvxChartColorTableUniquePtr.get()));
+ }
return true;
}
@@ -198,10 +196,10 @@ void SvxDefaultColorOptPage::FillPaletteLB()
void SvxDefaultColorOptPage::SaveChartOptions()
{
- if (pChartOptions)
+ if (m_SvxChartOptionsUniquePtr && m_SvxChartColorTableUniquePtr)
{
- pChartOptions->SetDefaultColors( pColorConfig->GetColorList() );
- pChartOptions->Commit();
+ m_SvxChartOptionsUniquePtr->SetDefaultColors(*m_SvxChartColorTableUniquePtr.get());
+ m_SvxChartOptionsUniquePtr->Commit();
}
}
@@ -213,9 +211,9 @@ void SvxDefaultColorOptPage::SaveChartOptions()
IMPL_LINK_NOARG(SvxDefaultColorOptPage, ResetToDefaults, Button*, void)
{
- if( pColorConfig )
+ if( m_SvxChartColorTableUniquePtr )
{
- pColorConfig->GetColorList().useDefault();
+ m_SvxChartColorTableUniquePtr->useDefault();
FillBoxChartColorLB();
@@ -230,16 +228,16 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, ResetToDefaults, Button*, void)
IMPL_LINK_NOARG(SvxDefaultColorOptPage, AddChartColor, Button*, void)
{
- if( pColorConfig )
+ if( m_SvxChartColorTableUniquePtr )
{
Color const black( 0x00, 0x00, 0x00 );
- pColorConfig->GetColorList().append (XColorEntry ( black, SvxChartColorTable::getDefaultName(pColorConfig->GetColorList().size())));
+ m_SvxChartColorTableUniquePtr->append(
+ XColorEntry(black, SvxChartColorTable::getDefaultName(m_SvxChartColorTableUniquePtr->size())));
FillBoxChartColorLB();
-
m_pLbChartColors->GetFocus();
- m_pLbChartColors->SelectEntryPos( pColorConfig->GetColorList().size() - 1 );
+ m_pLbChartColors->SelectEntryPos(m_SvxChartColorTableUniquePtr->size() - 1);
m_pPBRemove->Enable();
}
}
@@ -254,23 +252,23 @@ IMPL_LINK_NOARG( SvxDefaultColorOptPage, RemoveChartColor, Button*, void )
if (m_pLbChartColors->GetSelectedEntryCount() == 0)
return;
- if( pColorConfig )
+ if( m_SvxChartColorTableUniquePtr )
{
- OSL_ENSURE(pColorConfig->GetColorList().size() > 1, "don't delete the last chart color");
+ OSL_ENSURE(m_SvxChartColorTableUniquePtr->size() > 1, "don't delete the last chart color");
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletechartcolordialog.ui"));
std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QueryDeleteChartColorDialog"));
if (RET_YES == xQuery->run())
{
- pColorConfig->GetColorList().remove( nIndex );
+ m_SvxChartColorTableUniquePtr->remove(nIndex);
FillBoxChartColorLB();
m_pLbChartColors->GetFocus();
if (nIndex == m_pLbChartColors->GetEntryCount() && m_pLbChartColors->GetEntryCount() > 0)
- m_pLbChartColors->SelectEntryPos( pColorConfig->GetColorList().size() - 1 );
+ m_pLbChartColors->SelectEntryPos(m_SvxChartColorTableUniquePtr->size() - 1);
else if (m_pLbChartColors->GetEntryCount() > 0)
m_pLbChartColors->SelectEntryPos( nIndex );
else
@@ -295,7 +293,7 @@ IMPL_LINK_NOARG(SvxDefaultColorOptPage, BoxClickedHdl, ValueSet*, void)
const XColorEntry aEntry( m_pValSetColorBox->GetItemColor( m_pValSetColorBox->GetSelectedItemId() ), m_pLbChartColors->GetSelectedEntry() );
ModifyColorEntry(aEntry, nIdx);
- pColorConfig->ReplaceColorByIndex( nIdx, aEntry );
+ m_SvxChartColorTableUniquePtr->replace(nIdx, aEntry);
m_pLbChartColors->SelectEntryPos( nIdx ); // reselect entry
}