diff options
Diffstat (limited to 'sc/source/ui/optdlg/opredlin.cxx')
-rw-r--r-- | sc/source/ui/optdlg/opredlin.cxx | 114 |
1 files changed, 93 insertions, 21 deletions
diff --git a/sc/source/ui/optdlg/opredlin.cxx b/sc/source/ui/optdlg/opredlin.cxx index 8a769ad24dab..f8fb21682a47 100644 --- a/sc/source/ui/optdlg/opredlin.cxx +++ b/sc/source/ui/optdlg/opredlin.cxx @@ -19,7 +19,6 @@ #undef SC_DLLIMPLEMENTATION -#include <svx/colorbox.hxx> #include <svx/dlgutil.hxx> #include <svx/drawitem.hxx> #include <svx/xtable.hxx> @@ -41,16 +40,13 @@ ScRedlineOptionsTabPage::ScRedlineOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet ) - : SfxTabPage(pParent,"OptChangesPage", "modules/scalc/ui/optchangespage.ui", &rSet) + : SfxTabPage(pParent,"OptChangesPage", "modules/scalc/ui/optchangespage.ui", &rSet), + aAuthorStr (ScResId(SCSTR_AUTHOR)) { get(m_pContentColorLB, "changes"); - m_pContentColorLB->SetSlotId(SID_AUTHOR_COLOR); get(m_pRemoveColorLB, "deletions"); - m_pRemoveColorLB->SetSlotId(SID_AUTHOR_COLOR); get(m_pInsertColorLB, "entries"); - m_pInsertColorLB->SetSlotId(SID_AUTHOR_COLOR); get(m_pMoveColorLB, "insertions"); - m_pMoveColorLB->SetSlotId(SID_AUTHOR_COLOR); } ScRedlineOptionsTabPage::~ScRedlineOptionsTabPage() @@ -76,17 +72,53 @@ bool ScRedlineOptionsTabPage::FillItemSet( SfxItemSet* /* rSet */ ) { ScAppOptions aAppOptions=SC_MOD()->GetAppOptions(); - sal_uLong nNew = m_pContentColorLB->GetSelectEntryColor().GetColor(); - aAppOptions.SetTrackContentColor(nNew); - - nNew = m_pMoveColorLB->GetSelectEntryColor().GetColor(); - aAppOptions.SetTrackMoveColor(nNew); - - nNew = m_pInsertColorLB->GetSelectEntryColor().GetColor(); - aAppOptions.SetTrackInsertColor(nNew); - - nNew = m_pRemoveColorLB->GetSelectEntryColor().GetColor(); - aAppOptions.SetTrackDeleteColor(nNew); + sal_uLong nNew=0; + sal_Int32 nPos=0; + + nPos = m_pContentColorLB->GetSelectEntryPos(); + if (nPos != LISTBOX_ENTRY_NOTFOUND) + { + if (nPos!=0) + nNew= m_pContentColorLB->GetEntryColor(nPos).GetColor(); + else + nNew= COL_TRANSPARENT; + + aAppOptions.SetTrackContentColor(nNew); + + } + nPos = m_pMoveColorLB->GetSelectEntryPos(); + if (nPos != LISTBOX_ENTRY_NOTFOUND) + { + if (nPos!=0) + nNew= m_pMoveColorLB->GetEntryColor(nPos).GetColor(); + else + nNew= COL_TRANSPARENT; + + aAppOptions.SetTrackMoveColor(nNew); + + } + nPos = m_pInsertColorLB->GetSelectEntryPos(); + if (nPos != LISTBOX_ENTRY_NOTFOUND) + { + if (nPos!=0) + nNew= m_pInsertColorLB->GetEntryColor(nPos).GetColor(); + else + nNew= COL_TRANSPARENT; + + aAppOptions.SetTrackInsertColor(nNew); + + } + nPos = m_pRemoveColorLB->GetSelectEntryPos(); + if (nPos != LISTBOX_ENTRY_NOTFOUND) + { + if (nPos!=0) + nNew= m_pRemoveColorLB->GetEntryColor(nPos).GetColor(); + else + nNew= COL_TRANSPARENT; + + aAppOptions.SetTrackDeleteColor(nNew); + + } SC_MOD()->SetAppOptions(aAppOptions); @@ -101,19 +133,59 @@ bool ScRedlineOptionsTabPage::FillItemSet( SfxItemSet* /* rSet */ ) void ScRedlineOptionsTabPage::Reset( const SfxItemSet* /* rSet */ ) { + m_pContentColorLB->InsertEntry(aAuthorStr); + m_pMoveColorLB->InsertEntry(aAuthorStr); + m_pInsertColorLB->InsertEntry(aAuthorStr); + m_pRemoveColorLB->InsertEntry(aAuthorStr); + + m_pContentColorLB->SetUpdateMode( false); + m_pMoveColorLB->SetUpdateMode( false); + m_pInsertColorLB->SetUpdateMode( false); + m_pRemoveColorLB->SetUpdateMode( false); + + XColorListRef xColorLst = XColorList::GetStdColorList(); + for( long i = 0; i < xColorLst->Count(); ++i ) + { + const XColorEntry* pEntry = xColorLst->GetColor(i); + Color aColor = pEntry->GetColor(); + OUString sName = pEntry->GetName(); + + m_pContentColorLB->InsertEntry( aColor, sName ); + m_pMoveColorLB->InsertEntry( aColor, sName ); + m_pInsertColorLB->InsertEntry( aColor, sName ); + m_pRemoveColorLB->InsertEntry( aColor, sName ); + } + m_pContentColorLB->SetUpdateMode( true ); + m_pMoveColorLB->SetUpdateMode( true ); + m_pInsertColorLB->SetUpdateMode( true ); + m_pRemoveColorLB->SetUpdateMode( true ); + ScAppOptions aAppOptions=SC_MOD()->GetAppOptions(); sal_uLong nColor = aAppOptions.GetTrackContentColor(); - m_pContentColorLB->SelectEntry(Color(nColor)); + if (nColor == COL_TRANSPARENT) + m_pContentColorLB->SelectEntryPos(0); + else + m_pContentColorLB->SelectEntry(Color(nColor)); nColor = aAppOptions.GetTrackMoveColor(); - m_pMoveColorLB->SelectEntry(Color(nColor)); + if (nColor == COL_TRANSPARENT) + m_pMoveColorLB->SelectEntryPos(0); + else + m_pMoveColorLB->SelectEntry(Color(nColor)); nColor = aAppOptions.GetTrackInsertColor(); - m_pInsertColorLB->SelectEntry(Color(nColor)); + if (nColor == COL_TRANSPARENT) + m_pInsertColorLB->SelectEntryPos(0); + else + m_pInsertColorLB->SelectEntry(Color(nColor)); nColor = aAppOptions.GetTrackDeleteColor(); - m_pRemoveColorLB->SelectEntry(Color(nColor)); + if (nColor == COL_TRANSPARENT) + m_pRemoveColorLB->SelectEntryPos(0); + else + m_pRemoveColorLB->SelectEntry(Color(nColor)); + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |