diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2018-03-20 16:40:35 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2018-03-21 17:54:47 +0100 |
commit | fb29b8262488d045a926504725669a362bacb5bb (patch) | |
tree | c8cb6e160267b46742e0051a8eded6206fb5c1f1 /sc | |
parent | fc3f43b6fe3df5e46ca869d5934d4c3333444881 (diff) |
tdf#116241 Customizing value highlighting colors
Change-Id: I5d77e6207d1e29326282d7184c9348e59292977a
Reviewed-on: https://gerrit.libreoffice.org/51653
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/viewopti.hxx | 12 | ||||
-rw-r--r-- | sc/source/core/tool/viewopti.cxx | 39 | ||||
-rw-r--r-- | sc/source/ui/inc/tpview.hxx | 5 | ||||
-rw-r--r-- | sc/source/ui/optdlg/tpview.cxx | 31 | ||||
-rw-r--r-- | sc/source/ui/view/output.cxx | 8 | ||||
-rw-r--r-- | sc/uiconfig/scalc/ui/tpviewpage.ui | 140 |
6 files changed, 228 insertions, 7 deletions
diff --git a/sc/inc/viewopti.hxx b/sc/inc/viewopti.hxx index 8bc3d380b28a..965d1ac73b69 100644 --- a/sc/inc/viewopti.hxx +++ b/sc/inc/viewopti.hxx @@ -94,6 +94,15 @@ public: void SetGridColor( const Color& rCol, const OUString& rName ) { aGridCol = rCol; aGridColName = rName;} Color const & GetGridColor( OUString* pStrName = nullptr ) const; + void SetValueColor( const Color& rCol ) { aValueCol = rCol; } + Color const & GetValueColor() const { return aValueCol; } + + void SetFormulaColor(const Color& rCol) { aFormulaCol = rCol; } + Color const & GetFormulaColor() const { return aFormulaCol; } + + void SetTextColor(const Color& rCol) { aTextCol = rCol; } + Color const & GetTextColor() const { return aTextCol; } + const ScGridOptions& GetGridOptions() const { return aGridOpt; } void SetGridOptions( const ScGridOptions& rNew ) { aGridOpt = rNew; } SvxGridItem* CreateGridItem() const; @@ -108,6 +117,9 @@ private: Color aGridCol; OUString aGridColName; ScGridOptions aGridOpt; + Color aValueCol; + Color aFormulaCol; + Color aTextCol; }; // Item for the options dialog - View diff --git a/sc/source/core/tool/viewopti.cxx b/sc/source/core/tool/viewopti.cxx index d882e82e6fd2..eef9125424bb 100644 --- a/sc/source/core/tool/viewopti.cxx +++ b/sc/source/core/tool/viewopti.cxx @@ -132,6 +132,10 @@ void ScViewOptions::SetDefaults() aGridCol = SC_STD_GRIDCOLOR; aGridColName = ScGlobal::GetRscString( STR_GRIDCOLOR ); + aValueCol = COL_LIGHTBLUE; + aTextCol = COL_BLACK; + aFormulaCol = COL_GREEN; + aGridOpt.SetDefaults(); } @@ -153,6 +157,9 @@ ScViewOptions& ScViewOptions::operator=( const ScViewOptions& rCpy ) aGridCol = rCpy.aGridCol; aGridColName = rCpy.aGridColName; aGridOpt = rCpy.aGridOpt; + aValueCol = rCpy.aValueCol; + aTextCol = rCpy.aTextCol; + aFormulaCol = rCpy.aFormulaCol; return *this; } @@ -168,6 +175,9 @@ bool ScViewOptions::operator==( const ScViewOptions& rOpt ) const bEqual = bEqual && (aGridCol == rOpt.aGridCol); bEqual = bEqual && (aGridColName == rOpt.aGridColName); bEqual = bEqual && (aGridOpt == rOpt.aGridOpt); + bEqual = bEqual && (aValueCol == rOpt.aValueCol); + bEqual = bEqual && (aTextCol == rOpt.aTextCol); + bEqual = bEqual && (aFormulaCol == rOpt.aFormulaCol); return bEqual; } @@ -230,6 +240,9 @@ SfxPoolItem* ScTpViewItem::Clone( SfxItemPool * ) const #define SCLAYOUTOPT_SHEETTAB 7 #define SCLAYOUTOPT_OUTLINE 8 #define SCLAYOUTOPT_GRID_ONCOLOR 9 +#define SCLAYOUTOPT_VALUE_COLOR 10 +#define SCLAYOUTOPT_FORMULA_COLOR 11 +#define SCLAYOUTOPT_TEXT_COLOR 12 #define CFGPATH_DISPLAY "Office.Calc/Content/Display" @@ -267,7 +280,10 @@ Sequence<OUString> ScViewCfg::GetLayoutPropertyNames() "Window/VerticalScroll", // SCLAYOUTOPT_VERTSCROLL "Window/SheetTab", // SCLAYOUTOPT_SHEETTAB "Window/OutlineSymbol", // SCLAYOUTOPT_OUTLINE - "Line/GridOnColoredCells"}; // SCLAYOUTOPT_GRID_ONCOLOR; + "Line/GridOnColoredCells", // SCLAYOUTOPT_GRID_ONCOLOR + "Highlighting/ValueColor", // SCLAYOUTOPT_VALUE_COLOR + "Highlighting/FormulaColor",// SCLAYOUTOPT_FORMULA_COLOR + "Highlighting/TextColor"}; // SCLAYOUTOPT_TEXT_COLOR } Sequence<OUString> ScViewCfg::GetDisplayPropertyNames() @@ -355,6 +371,18 @@ ScViewCfg::ScViewCfg() : case SCLAYOUTOPT_OUTLINE: SetOption( VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) ); break; + case SCLAYOUTOPT_VALUE_COLOR: + if (pValues[nProp] >>= nIntVal) + SetValueColor(Color(nIntVal)); + break; + case SCLAYOUTOPT_FORMULA_COLOR: + if (pValues[nProp] >>= nIntVal) + SetFormulaColor(Color(nIntVal)); + break; + case SCLAYOUTOPT_TEXT_COLOR: + if (pValues[nProp] >>= nIntVal) + SetTextColor(Color(nIntVal)); + break; } } } @@ -519,6 +547,15 @@ IMPL_LINK_NOARG(ScViewCfg, LayoutCommitHdl, ScLinkConfigItem&, void) case SCLAYOUTOPT_OUTLINE: pValues[nProp] <<= GetOption( VOPT_OUTLINER ); break; + case SCLAYOUTOPT_VALUE_COLOR: + pValues[nProp] <<= GetValueColor(); + break; + case SCLAYOUTOPT_FORMULA_COLOR: + pValues[nProp] <<= GetFormulaColor(); + break; + case SCLAYOUTOPT_TEXT_COLOR: + pValues[nProp] <<= GetTextColor(); + break; } } aLayoutItem.PutProperties(aNames, aValues); diff --git a/sc/source/ui/inc/tpview.hxx b/sc/source/ui/inc/tpview.hxx index 6ac52a2d1cd6..dd02675f078e 100644 --- a/sc/source/ui/inc/tpview.hxx +++ b/sc/source/ui/inc/tpview.hxx @@ -39,6 +39,10 @@ class ScTpContentOptions : public SfxTabPage VclPtr<CheckBox> pBreakCB; VclPtr<CheckBox> pGuideLineCB; + VclPtr<SvxColorListBox> pValueColorLB; + VclPtr<SvxColorListBox> pFormulaColorLB; + VclPtr<SvxColorListBox> pTextColorLB; + VclPtr<CheckBox> pFormulaCB; VclPtr<CheckBox> pNilCB; VclPtr<CheckBox> pAnnotCB; @@ -62,6 +66,7 @@ class ScTpContentOptions : public SfxTabPage ScViewOptions* pLocalOptions; void InitGridOpt(); + void InitColors(); DECL_LINK( GridHdl, ListBox&, void ); DECL_LINK( SelLbObjHdl, ListBox&, void ); DECL_LINK( CBHdl, Button*, void ); diff --git a/sc/source/ui/optdlg/tpview.cxx b/sc/source/ui/optdlg/tpview.cxx index a7151bded5e7..d1811ca6dec9 100644 --- a/sc/source/ui/optdlg/tpview.cxx +++ b/sc/source/ui/optdlg/tpview.cxx @@ -49,6 +49,10 @@ ScTpContentOptions::ScTpContentOptions( vcl::Window* pParent, get(pBreakCB,"break"); get(pGuideLineCB,"guideline"); + get(pValueColorLB, "value_color"); + get(pFormulaColorLB, "formula_color"); + get(pTextColorLB, "text_color"); + get(pFormulaCB,"formula"); get(pNilCB,"nil"); get(pAnnotCB,"annot"); @@ -107,6 +111,9 @@ void ScTpContentOptions::dispose() pColorLB.clear(); pBreakCB.clear(); pGuideLineCB.clear(); + pValueColorLB.clear(); + pFormulaColorLB.clear(); + pTextColorLB.clear(); pFormulaCB.clear(); pNilCB.clear(); pAnnotCB.clear(); @@ -152,10 +159,16 @@ bool ScTpContentOptions::FillItemSet( SfxItemSet* rCoreSet ) pOutlineCB ->IsValueChangedFromSaved() || pColorLB ->IsValueChangedFromSaved() || pBreakCB ->IsValueChangedFromSaved() || - pGuideLineCB ->IsValueChangedFromSaved()) + pGuideLineCB ->IsValueChangedFromSaved() || + pValueColorLB ->IsValueChangedFromSaved() || + pFormulaColorLB->IsValueChangedFromSaved() || + pTextColorLB ->IsValueChangedFromSaved() ) { NamedColor aNamedColor = pColorLB->GetSelectedEntry(); pLocalOptions->SetGridColor(aNamedColor.first, aNamedColor.second); + pLocalOptions->SetValueColor(pValueColorLB->GetSelectedEntry().first); + pLocalOptions->SetFormulaColor(pFormulaColorLB->GetSelectedEntry().first); + pLocalOptions->SetTextColor(pTextColorLB->GetSelectedEntry().first); rCoreSet->Put(ScTpViewItem(*pLocalOptions)); bRet = true; } @@ -199,6 +212,7 @@ void ScTpContentOptions::Reset( const SfxItemSet* rCoreSet ) pOutlineCB->Check( pLocalOptions->GetOption(VOPT_OUTLINER) ); InitGridOpt(); + InitColors(); pBreakCB->Check( pLocalOptions->GetOption(VOPT_PAGEBREAKS) ); pGuideLineCB->Check( pLocalOptions->GetOption(VOPT_HELPLINES) ); @@ -229,6 +243,9 @@ void ScTpContentOptions::Reset( const SfxItemSet* rCoreSet ) pColorLB->SaveValue(); pBreakCB->SaveValue(); pGuideLineCB->SaveValue(); + pValueColorLB->SaveValue(); + pFormulaColorLB->SaveValue(); + pTextColorLB->SaveValue(); } void ScTpContentOptions::ActivatePage( const SfxItemSet& rSet) @@ -315,6 +332,18 @@ void ScTpContentOptions::InitGridOpt() pColorLB->SelectEntry(std::make_pair(aCol, aName)); } +void ScTpContentOptions::InitColors() +{ + Color aCol = pLocalOptions->GetValueColor(); + pValueColorLB->SelectEntry(aCol); + + aCol = pLocalOptions->GetFormulaColor(); + pFormulaColorLB->SelectEntry(aCol); + + aCol = pLocalOptions->GetTextColor(); + pTextColorLB->SelectEntry(aCol); +} + IMPL_LINK( ScTpContentOptions, GridHdl, ListBox&, rLb, void ) { sal_Int32 nSelPos = rLb.GetSelectedEntryPos(); diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index a5bf884681ad..0e322ceca8ab 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -61,6 +61,7 @@ #include <scmod.hxx> #include <appoptio.hxx> #include <postit.hxx> +#include <viewopti.hxx> #include <scresid.hxx> #include <colorscale.hxx> @@ -295,9 +296,10 @@ void ScOutputData::SetSyntaxMode( bool bNewMode ) if (bNewMode) if (!pValueColor) { - pValueColor = new Color(COL_LIGHTBLUE); - pTextColor = new Color(COL_BLACK); - pFormulaColor = new Color(COL_GREEN); + const ScViewOptions& rOptions = mpDoc->GetViewOptions(); + pValueColor = new Color(rOptions.GetValueColor()); + pTextColor = new Color(rOptions.GetTextColor()); + pFormulaColor = new Color(rOptions.GetFormulaColor()); } } diff --git a/sc/uiconfig/scalc/ui/tpviewpage.ui b/sc/uiconfig/scalc/ui/tpviewpage.ui index 349a28a2d999..ff3e855119f3 100644 --- a/sc/uiconfig/scalc/ui/tpviewpage.ui +++ b/sc/uiconfig/scalc/ui/tpviewpage.ui @@ -473,6 +473,142 @@ </packing> </child> <child> + <object class="GtkFrame" id="frame6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="vexpand">True</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="GtkGrid" id="grid8"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="hexpand">True</property> + <property name="row_spacing">6</property> + <property name="column_spacing">12</property> + <child> + <object class="svxcorelo-SvxColorListBox" id="value_color"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="svxcorelo-SvxColorListBox" id="formula_color"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="svxcorelo-SvxColorListBox" id="text_color"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">2</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="value_color_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes" context="tpviewpage|value_color_label">Value color:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">color</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="formula_color_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes" context="tpviewpage|formula_color_label">Formula color:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">color</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="text_color_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes" context="tpviewpage|text_color_label">Text color:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">color</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">2</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">4</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="tpviewpage|label6">Highlighting</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> <object class="GtkFrame" id="frame2"> <property name="visible">True</property> <property name="can_focus">False</property> @@ -605,7 +741,7 @@ </object> <packing> <property name="left_attach">0</property> - <property name="top_attach">1</property> + <property name="top_attach">2</property> <property name="width">1</property> <property name="height">1</property> </packing> @@ -650,7 +786,7 @@ </object> <packing> <property name="left_attach">0</property> - <property name="top_attach">2</property> + <property name="top_attach">3</property> <property name="width">1</property> <property name="height">1</property> </packing> |