summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/inc/strings.hrc1
-rw-r--r--cui/source/options/optcolor.cxx36
-rw-r--r--cui/source/options/optcolor.hxx3
-rw-r--r--cui/uiconfig/ui/optappearancepage.ui220
-rw-r--r--include/vcl/settings.hxx3
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI.xcu303
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs25
-rw-r--r--sc/inc/viewopti.hxx2
-rw-r--r--sc/source/ui/view/gridwin4.cxx2
-rw-r--r--svtools/source/config/colorcfg.cxx121
-rw-r--r--sw/qa/extras/tiledrendering/tiledrendering.cxx20
-rw-r--r--sw/source/uibase/uno/unotxdoc.cxx2
-rw-r--r--vcl/source/app/settings.cxx12
13 files changed, 261 insertions, 489 deletions
diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 0cd2d2cd4566..498e60e75bc2 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -408,6 +408,5 @@
// Translatable names of color schemes
#define RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC NC_("RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC", "Automatic")
-#define RID_COLOR_SCHEME_LIBREOFFICE_DARK NC_("RID_COLOR_SCHEME_LIBREOFFICE_DARK", "Dark")
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx
index 4ad5d2b5e93f..15d3dadcf244 100644
--- a/cui/source/options/optcolor.cxx
+++ b/cui/source/options/optcolor.cxx
@@ -34,7 +34,8 @@
#include <dialmgr.hxx>
#include "optcolor.hxx"
#include <strings.hrc>
-
+#include <svtools/miscopt.hxx>
+#include <officecfg/Office/Common.hxx>
using namespace ::com::sun::star;
using namespace ::svtools;
@@ -165,7 +166,6 @@ const std::map<OUString, OUString> &getColorSchemes()
{
static std::map<OUString, OUString> const vColorSchemes = {
{"COLOR_SCHEME_LIBREOFFICE_AUTOMATIC", CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC)},
- {"COLOR_SCHEME_LIBREOFFICE_DARK", CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_DARK)}
};
return vColorSchemes;
};
@@ -204,6 +204,7 @@ public:
Link<weld::Widget&,void> const&,
weld::ScrolledWindow& rScroll);
void Update(EditableColorConfig const*, EditableExtendedColorConfig const*);
+ void UpdateEntries();
void ClickHdl(EditableColorConfig*, const weld::Toggleable&);
void ColorHdl(EditableColorConfig*, EditableExtendedColorConfig*, const ColorListBox*);
@@ -528,6 +529,16 @@ void ColorConfigWindow_Impl::Update (
}
}
+void ColorConfigWindow_Impl::UpdateEntries()
+{
+ for (unsigned i = 0; i != ColorConfigEntryCount; ++i)
+ {
+ ColorConfigEntry const aEntry = static_cast<ColorConfigEntry>(i);
+ Color aColor = ColorConfig::GetDefaultColor(aEntry);
+ vEntries[i]->m_xColorList->SetAutoDisplayColor(aColor);
+ }
+}
+
// ClickHdl()
void ColorConfigWindow_Impl::ClickHdl(EditableColorConfig* pConfig, const weld::Toggleable& rBox)
{
@@ -627,6 +638,7 @@ public:
void SetConfig (EditableColorConfig& rConfig) { pColorConfig = &rConfig; }
void SetExtendedConfig (EditableExtendedColorConfig& rConfig) { pExtColorConfig = &rConfig; }
void Update();
+ void UpdateEntries();
tools::Long GetScrollPosition() const
{
return m_xVScroll->vadjustment_get_value();
@@ -670,6 +682,11 @@ void ColorConfigCtrl_Impl::Update ()
m_xScrollWindow->Update(pColorConfig, pExtColorConfig);
}
+void ColorConfigCtrl_Impl::UpdateEntries()
+{
+ m_xScrollWindow->UpdateEntries();
+}
+
IMPL_LINK(ColorConfigCtrl_Impl, ClickHdl, weld::Toggleable&, rBox, void)
{
DBG_ASSERT(pColorConfig, "Configuration not set");
@@ -726,6 +743,7 @@ SvxColorOptionsTabPage::SvxColorOptionsTabPage(weld::Container* pPage, weld::Dia
: SfxTabPage(pPage, pController, "cui/ui/optappearancepage.ui", "OptAppearancePage", &rCoreSet)
, bFillItemSetCalled(false)
, m_nSizeAllocEventId(nullptr)
+ , m_xAutoColorLB(m_xBuilder->weld_combo_box("autocolorlb"))
, m_xColorSchemeLB(m_xBuilder->weld_combo_box("colorschemelb"))
, m_xSaveSchemePB(m_xBuilder->weld_button("save"))
, m_xDeleteSchemePB(m_xBuilder->weld_button("delete"))
@@ -738,6 +756,7 @@ SvxColorOptionsTabPage::SvxColorOptionsTabPage(weld::Container* pPage, weld::Dia
{
m_xColorSchemeLB->make_sorted();
m_xColorSchemeLB->connect_changed(LINK(this, SvxColorOptionsTabPage, SchemeChangedHdl_Impl));
+ m_xAutoColorLB->connect_changed(LINK(this, SvxColorOptionsTabPage, onAutoColorChanged));
Link<weld::Button&,void> aLk = LINK(this, SvxColorOptionsTabPage, SaveDeleteHdl_Impl );
m_xSaveSchemePB->connect_clicked(aLk);
m_xDeleteSchemePB->connect_clicked(aLk);
@@ -812,6 +831,8 @@ void SvxColorOptionsTabPage::Reset( const SfxItemSet* )
pExtColorConfig.reset(new EditableExtendedColorConfig);
m_xColorConfigCT->SetExtendedConfig(*pExtColorConfig);
+ m_xAutoColorLB->set_active( MiscSettings::GetAppColorMode() );
+
OUString sUser = GetUserData();
//has to be called always to speed up accessibility tools
m_xColorConfigCT->SetScrollPosition(sUser.toInt32());
@@ -838,6 +859,17 @@ void SvxColorOptionsTabPage::UpdateColorConfig()
m_xColorConfigCT->Update();
}
+IMPL_LINK_NOARG(SvxColorOptionsTabPage, onAutoColorChanged, weld::ComboBox&, void)
+{
+ MiscSettings::SetAppColorMode( m_xAutoColorLB->get_active() );
+
+ m_xColorConfigCT->UpdateEntries();
+
+ pColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(m_xColorSchemeLB->get_active_text()));
+ pExtColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(m_xColorSchemeLB->get_active_text()));
+ UpdateColorConfig();
+}
+
IMPL_LINK(SvxColorOptionsTabPage, SchemeChangedHdl_Impl, weld::ComboBox&, rBox, void)
{
pColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(rBox.get_active_text()));
diff --git a/cui/source/options/optcolor.hxx b/cui/source/options/optcolor.hxx
index 0fa8cf2c46ea..096ed93b256d 100644
--- a/cui/source/options/optcolor.hxx
+++ b/cui/source/options/optcolor.hxx
@@ -31,6 +31,7 @@ class SvxColorOptionsTabPage : public SfxTabPage
ImplSVEvent* m_nSizeAllocEventId;
+ std::unique_ptr<weld::ComboBox> m_xAutoColorLB;
std::unique_ptr<weld::ComboBox> m_xColorSchemeLB;
std::unique_ptr<weld::Button> m_xSaveSchemePB;
std::unique_ptr<weld::Button> m_xDeleteSchemePB;
@@ -38,6 +39,7 @@ class SvxColorOptionsTabPage : public SfxTabPage
std::unique_ptr<weld::Widget> m_xTable;
std::unique_ptr<weld::Label> m_xOnFT;
std::unique_ptr<weld::Label> m_xColorFT;
+
weld::Widget& m_rWidget1;
weld::Widget& m_rWidget2;
@@ -45,6 +47,7 @@ class SvxColorOptionsTabPage : public SfxTabPage
std::unique_ptr<svtools::EditableExtendedColorConfig> pExtColorConfig;
DECL_LINK(SchemeChangedHdl_Impl, weld::ComboBox&, void);
+ DECL_LINK(onAutoColorChanged, weld::ComboBox&, void);
DECL_LINK(SaveDeleteHdl_Impl, weld::Button&, void);
DECL_LINK(CheckNameHdl_Impl, AbstractSvxNameDialog&, bool);
DECL_LINK(AdjustHeaderBar, const Size&, void);
diff --git a/cui/uiconfig/ui/optappearancepage.ui b/cui/uiconfig/ui/optappearancepage.ui
index 64c338ba978f..63916d36543f 100644
--- a/cui/uiconfig/ui/optappearancepage.ui
+++ b/cui/uiconfig/ui/optappearancepage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="OptAppearancePage">
@@ -11,106 +11,6 @@
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <object class="GtkFrame" id="frame1">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="label-xalign">0</property>
- <property name="shadow-type">none</property>
- <child>
- <!-- n-columns=4 n-rows=1 -->
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
- <property name="hexpand">True</property>
- <property name="column-spacing">12</property>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optappearancepage|label3">_Scheme:</property>
- <property name="use-underline">True</property>
- <property name="mnemonic-widget">colorschemelb</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="save">
- <property name="label" translatable="yes" context="optappearancepage|save">_Save</property>
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="use-underline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="save-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|save">Saves the current settings as a color scheme that you can reload later.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="delete">
- <property name="label" translatable="yes" context="stock">_Delete</property>
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="use-underline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="delete-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|delete">Deletes the color scheme shown in the Scheme box. You cannot delete the Default scheme.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">3</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="colorschemelb">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="colorschemelb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|colorschemelb">Selects the color scheme you want to use.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optappearancepage|label1">Color Scheme</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -119,9 +19,10 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=2 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="table">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
@@ -179,7 +80,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -187,6 +88,7 @@
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="column-spacing">6</property>
<child>
@@ -230,6 +132,116 @@
</object>
<packing>
<property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=6 n-rows=1 -->
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optappearancepage|label3">_Scheme:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">colorschemelb</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="save">
+ <property name="label" translatable="yes" context="optappearancepage|save">_Save</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="save-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|save">Saves the current settings as a color scheme that you can reload later.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="delete">
+ <property name="label" translatable="yes" context="stock">_Delete</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="delete-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|delete">Deletes the color scheme shown in the Scheme box. You cannot delete the Default scheme.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="colorschemelb">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="colorschemelb-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|colorschemelb">Selects the color scheme you want to use.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="autocolor">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="label" translatable="yes" context="optappearancepage|autocolor">_Automatic:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">autocolorlb</property>
+ </object>
+ <packing>
+ <property name="left-attach">4</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="autocolorlb">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="active">1</property>
+ <items>
+ <item id="0" translatable="yes" context="optappearancepage|cbSchemeEntry1">System Theme</item>
+ <item id="1" translatable="yes" context="optappearancepage|cbSchemeEntry2">Light</item>
+ <item id="2" translatable="yes" context="optappearancepage|cbSchemeEntry3">Dark</item>
+ </items>
+ </object>
+ <packing>
+ <property name="left-attach">5</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -249,7 +261,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index de6a4b903c07..9292e10e45cf 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -648,7 +648,8 @@ public:
// 0 auto, 1 light, 2, dark
static void SetDarkMode(int nMode);
static int GetDarkMode();
-
+ static void SetAppColorMode(int nMode);
+ static int GetAppColorMode();
bool operator ==( const MiscSettings& rSet ) const;
bool operator !=( const MiscSettings& rSet ) const;
};
diff --git a/officecfg/registry/data/org/openoffice/Office/UI.xcu b/officecfg/registry/data/org/openoffice/Office/UI.xcu
index b7d704d43f81..30e1811960c1 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI.xcu
@@ -440,309 +440,6 @@
</prop>
</node>
</node>
- <node oor:name="COLOR_SCHEME_LIBREOFFICE_DARK" oor:op="replace">
- <node oor:name="DocColor">
- <prop oor:name="Color">
- <value>1842204</value>
- </prop>
- </node>
- <node oor:name="DocBoundaries">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value>8421504</value>
- </prop>
- </node>
- <node oor:name="AppBackground">
- <prop oor:name="Color">
- <value>3355443</value>
- </prop>
- </node>
- <node oor:name="ObjectBoundaries">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value>8421504</value>
- </prop>
- </node>
- <node oor:name="TableBoundaries">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value>1842204</value>
- </prop>
- </node>
- <node oor:name="FontColor">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="Links">
- <prop oor:name="IsVisible">
- <value>false</value>
- </prop>
- <prop oor:name="Color">
- <value>1939955</value>
- </prop>
- </node>
- <node oor:name="LinksVisited">
- <prop oor:name="IsVisible">
- <value>false</value>
- </prop>
- <prop oor:name="Color">
- <value>10181046</value>
- </prop>
- </node>
- <node oor:name="Spell">
- <prop oor:name="Color">
- <value>13181214</value>
- </prop>
- </node>
- <node oor:name="Grammar">
- <prop oor:name="Color">
- <value>7512015</value>
- </prop>
- </node>
- <node oor:name="SmartTags">
- <prop oor:name="Color">
- <value>7865203</value>
- </prop>
- </node>
- <node oor:name="Shadow">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value>1842204</value>
- </prop>
- </node>
- <node oor:name="WriterTextGrid">
- <prop oor:name="Color">
- <value>8421504</value>
- </prop>
- </node>
- <node oor:name="WriterFieldShadings">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="WriterIdxShadings">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value>1842204</value>
- </prop>
- </node>
- <node oor:name="WriterDirectCursor">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="WriterScriptIndicator">
- <prop oor:name="Color">
- <value>1993273</value>
- </prop>
- </node>
- <node oor:name="WriterSectionBoundaries">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value>6710886</value>
- </prop>
- </node>
- <node oor:name="WriterHeaderFooterMark">
- <prop oor:name="Color">
- <value>11847644</value>
- </prop>
- </node>
- <node oor:name="WriterPageBreaks">
- <prop oor:name="Color">
- <value>7512015</value>
- </prop>
- </node>
- <node oor:name="HTMLSGML">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="HTMLComment">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="HTMLKeyword">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="HTMLUnknown">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="CalcGrid">
- <prop oor:name="Color">
- <value>6710886</value>
- </prop>
- </node>
- <node oor:name="CalcPageBreak">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="CalcPageBreakManual">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="CalcPageBreakAutomatic">
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="CalcHiddenColRow">
- <prop oor:name="IsVisible">
- <value>false</value>
- </prop>
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="CalcDetective">
- <prop oor:name="Color">
- <value>3494505</value>
- </prop>
- </node>
- <node oor:name="CalcDetectiveError">
- <prop oor:name="Color">
- <value>13181214</value>
- </prop>
- </node>
- <node oor:name="CalcReference">
- <prop oor:name="Color">
- <value>861141</value>
- </prop>
- </node>
- <node oor:name="CalcNotesBackground">
- <prop oor:name="Color">
- <value>15245826</value>
- </prop>
- </node>
- <node oor:name="CalcValue">
- <prop oor:name="Color">
- <value>7512015</value>
- </prop>
- </node>
- <node oor:name="CalcFormula">
- <prop oor:name="Color">
- <value>7847013</value>
- </prop>
- </node>
- <node oor:name="CalcText">
- <prop oor:name="Color">
- <value>15658734</value>
- </prop>
- </node>
- <node oor:name="CalcProtectedBackground">
- <prop oor:name="Color">
- <value>1842204</value>
- </prop>
- </node>
- <node oor:name="DrawGrid">
- <prop oor:name="IsVisible">
- <value>true</value>
- </prop>
- <prop oor:name="Color">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="BASICEditor">
- <prop oor:name="Color" oor:type="xs:int">
- <value>1842204</value>
- </prop>
- </node>
- <node oor:name="BASICIdentifier">
- <prop oor:name="Color" oor:type="xs:int">
- <value>14543051</value>
- </prop>
- </node>
- <node oor:name="BASICComment">
- <prop oor:name="Color" oor:type="xs:int">
- <value>15658734</value>
- </prop>
- </node>
- <node oor:name="BASICNumber">
- <prop oor:name="Color" oor:type="xs:int">
- <value>16754342</value>
- </prop>
- </node>
- <node oor:name="BASICString">
- <prop oor:name="Color" oor:type="xs:int">
- <value>16754342</value>
- </prop>
- </node>
- <node oor:name="BASICOperator">
- <prop oor:name="Color" oor:type="xs:int">
- <value>11847644</value>
- </prop>
- </node>
- <node oor:name="BASICKeyword">
- <prop oor:name="Color" oor:type="xs:int">
- <value>11847644</value>
- </prop>
- </node>
- <node oor:name="BASICError">
- <prop oor:name="Color" oor:type="xs:int">
- <value>16726072</value>
- </prop>
- </node>
- <node oor:name="SQLIdentifier">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="SQLNumber">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="SQLString">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="SQLOperator">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="SQLKeyword">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="SQLParameter">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- <node oor:name="SQLComment">
- <prop oor:name="Color" oor:type="xs:int">
- <value xsi:nil="true"/>
- </prop>
- </node>
- </node>
</node>
</node>
</oor:component-data>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 714fa8ccc485..6702c8499315 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -5578,6 +5578,31 @@
</constraints>
<value>0</value>
</prop>
+ <prop oor:name="ApplicationAppearance" oor:type="xs:short" oor:nillable="false">
+ <!-- UIHints: Tools Options - General View [Section] Appearance -->
+ <info>
+ <desc>Specifies the application colors.</desc>
+ <label>Application Colors</label>
+ </info>
+ <constraints>
+ <enumeration oor:value="0">
+ <info>
+ <desc>Automatic, following the system settings</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="1">
+ <info>
+ <desc>Light</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="2">
+ <info>
+ <desc>Dark</desc>
+ </info>
+ </enumeration>
+ </constraints>
+ <value>1</value>
+ </prop>
<prop oor:name="MaxOpenDocuments" oor:type="xs:int">
<info>
<desc>Determines the maximum count of documents, which are allowed to
diff --git a/sc/inc/viewopti.hxx b/sc/inc/viewopti.hxx
index b5a15f016e1b..cd641198753b 100644
--- a/sc/inc/viewopti.hxx
+++ b/sc/inc/viewopti.hxx
@@ -59,6 +59,8 @@ enum ScVObjType
#define MAX_OPT sal_uInt16(VOPT_CLIPMARKS)+1
#define MAX_TYPE sal_uInt16(VOBJ_TYPE_DRAW)+1
+// SC_STD_GRIDCOLOR is obsolete since tdf#152184 since GridColor == COL_AUTO
+// converts now to either light or dark but still used on options > view > visual aids
#define SC_STD_GRIDCOLOR COL_LIGHTGRAY
// SvxGrid options with standard operators
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index d3d21f049e55..e4e8f1af3696 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -691,7 +691,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
tools::Long nScrY = aOutputData.nScrY;
const svtools::ColorConfig& rColorCfg = pScMod->GetColorConfig();
- Color aGridColor( rColorCfg.GetColorValue( svtools::CALCGRID, false ).nColor );
+ Color aGridColor( rColorCfg.GetColorValue( svtools::CALCGRID ).nColor );
if ( aGridColor == COL_TRANSPARENT )
{
// use view options' grid color only if color config has "automatic" color
diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx
index 359f55df45e1..8f8488feeefc 100644
--- a/svtools/source/config/colorcfg.cxx
+++ b/svtools/source/config/colorcfg.cxx
@@ -363,61 +363,65 @@ ColorConfig::~ColorConfig()
Color ColorConfig::GetDefaultColor(ColorConfigEntry eEntry)
{
- static const Color aAutoColors[] =
+ enum ColorType { clLight = 0,
+ clDark,
+ nColorTypes };
+
+ static const Color cAutoColors[][nColorTypes] =
{
- COL_WHITE, // DOCCOLOR
- COL_LIGHTGRAY, // DOCBOUNDARIES
- Color(0xDFDFDE), // APPBACKGROUND
- COL_LIGHTGRAY, // OBJECTBOUNDARIES
- COL_LIGHTGRAY, // TABLEBOUNDARIES
- COL_BLACK, // FONTCOLOR
- COL_BLUE, // LINKS
- Color(0x0000cc), // LINKSVISITED
- COL_LIGHTRED, // SPELL
- COL_LIGHTBLUE, // GRAMMAR
- COL_LIGHTMAGENTA, // SMARTTAGS
- COL_GRAY, // SHADOWCOLOR
- COL_LIGHTGRAY, // WRITERTEXTGRID
- COL_LIGHTGRAY, // WRITERFIELDSHADIN
- COL_LIGHTGRAY, // WRITERIDXSHADINGS
- COL_BLACK, // WRITERDIRECTCURSOR
- COL_GREEN, //WRITERSCRIPTINDICATOR
- COL_LIGHTGRAY, //WRITERSECTIONBOUNDARIES
- Color(0x0369a3), //WRITERHEADERFOOTERMARK,
- COL_BLUE, //WRITERPAGEBREAKS,
- COL_LIGHTBLUE, // HTMLSGML
- COL_LIGHTGREEN, // HTMLCOMMENT
- COL_LIGHTRED, // HTMLKEYWORD
- COL_GRAY, // HTMLUNKNOWN
- COL_GRAY3, // CALCGRID
- COL_BLUE, //CALCPAGEBREAK
- Color(0x2300dc), //CALCPAGEBREAKMANUAL
- COL_GRAY7, //CALCPAGEBREAKAUTOMATIC
- Color(0x2300dc), //CALCHIDDENCOLROW
- COL_LIGHTBLUE, // CALCDETECTIVE
- COL_LIGHTRED, // CALCDETECTIVEERROR
- Color(0xef0fff), // CALCREFERENCE
- Color(0xffffc0), // CALCNOTESBACKGROUND
- COL_LIGHTBLUE, // CALCVALUE
- COL_GREEN, // CALCFORMULA
- COL_BLACK, // CALCTEXT
- COL_LIGHTGRAY, // CALCPROTECTEDBACKGROUND
- COL_GRAY7, // DRAWGRID
- COL_WHITE, // BASICEDITOR,
- COL_GREEN, // BASICIDENTIFIER,
- COL_GRAY, // BASICCOMMENT,
- COL_LIGHTRED, // BASICNUMBER,
- COL_LIGHTRED, // BASICSTRING,
- COL_BLUE, // BASICOPERATOR,
- COL_BLUE, // BASICKEYWORD,
- COL_RED, //BASICERROR
- Color(0x009900), // SQLIDENTIFIER
- COL_BLACK, // SQLNUMBER
- Color(0xCE7B00), // SQLSTRING
- COL_BLACK, // SQLOPERATOR
- Color(0x0000E6), // SQLKEYWORD
- Color(0x259D9D), // SQLPARAMETER
- COL_GRAY, // SQLCOMMENT
+ { COL_WHITE, Color(0x1C1C1C) }, // DOCCOLOR
+ { COL_LIGHTGRAY, Color(0x808080) }, // DOCBOUNDARIES
+ { Color(0xDFDFDE), Color(0x333333) }, // APPBACKGROUND
+ { COL_LIGHTGRAY, Color(0x808080) }, // OBJECTBOUNDARIES
+ { COL_LIGHTGRAY, Color(0x1C1C1C) }, // TABLEBOUNDARIES
+ { COL_BLACK, COL_BLACK }, // FONTCOLOR
+ { COL_BLUE, Color(0x1D99F3) }, // LINKS
+ { Color(0x0000cc), Color(0x9B59B6) }, // LINKSVISITED
+ { COL_LIGHTRED, Color(0xC9211E) }, // SPELL
+ { COL_LIGHTBLUE, Color(0x729FCF) }, // GRAMMAR
+ { COL_LIGHTMAGENTA, Color(0x780373) }, // SMARTTAGS
+ { COL_GRAY, Color(0x1C1C1C) }, // SHADOWCOLOR
+ { COL_LIGHTGRAY, Color(0x808080) }, // WRITERTEXTGRID
+ { COL_LIGHTGRAY, COL_LIGHTGRAY }, // WRITERFIELDSHADING
+ { COL_LIGHTGRAY, Color(0x1C1C1C) }, // WRITERIDXSHADINGS
+ { COL_BLACK, COL_BLACK }, // WRITERDIRECTCURSOR
+ { COL_GREEN, Color(0x1E6A39) }, // WRITERSCRIPTINDICATOR
+ { COL_LIGHTGRAY, Color(0x666666) }, // WRITERSECTIONBOUNDARIES
+ { Color(0x0369a3), Color(0xB4C7DC) }, // WRITERHEADERFOOTERMARK
+ { COL_BLUE, Color(0x729FCF) }, // WRITERPAGEBREAKS
+ { COL_LIGHTBLUE, COL_LIGHTBLUE }, // HTMLSGML
+ { COL_LIGHTGREEN, COL_LIGHTGREEN }, // HTMLCOMMENT
+ { COL_LIGHTRED, COL_LIGHTRED }, // HTMLKEYWORD
+ { COL_GRAY, COL_GRAY }, // HTMLUNKNOWN
+ { COL_GRAY3, COL_GRAY7 }, // CALCGRID
+ { COL_BLUE, COL_BLUE }, // CALCPAGEBREAK
+ { Color(0x2300dc), Color(0x2300DC) }, // CALCPAGEBREAKMANUAL
+ { COL_GRAY7, COL_GRAY7 }, // CALCPAGEBREAKAUTOMATIC
+ { Color(0x2300dc), Color(0x2300DC) }, // CALCHIDDENCOLROW
+ { COL_LIGHTBLUE, Color(0x355269) }, // CALCDETECTIVE
+ { COL_LIGHTRED, Color(0xC9211E) }, // CALCDETECTIVEERROR
+ { Color(0xef0fff), Color(0x0D23D5) }, // CALCREFERENCE
+ { Color(0xffffc0), Color(0xE8A202) }, // CALCNOTESBACKGROUND
+ { COL_LIGHTBLUE, Color(0x729FCF) }, // CALCVALUE
+ { COL_GREEN, Color(0x77BC65) }, // CALCFORMULA
+ { COL_BLACK, Color(0xEEEEEE) }, // CALCTEXT
+ { COL_LIGHTGRAY, Color(0x1C1C1C) }, // CALCPROTECTEDBACKGROUND
+ { COL_GRAY7, COL_GRAY7 }, // DRAWGRID
+ { COL_WHITE, Color(0x1C1C1C) }, // BASICEDITOR
+ { COL_GREEN, Color(0xDDE8CB) }, // BASICIDENTIFIER
+ { COL_GRAY, Color(0xEEEEEE) }, // BASICCOMMENT
+ { COL_LIGHTRED, Color(0xFFA6A6) }, // BASICNUMBER
+ { COL_LIGHTRED, Color(0xFFA6A6) }, // BASICSTRING
+ { COL_BLUE, Color(0xB4C7DC) }, // BASICOPERATOR
+ { COL_BLUE, Color(0xB4C7DC) }, // BASICKEYWORD
+ { COL_RED, Color(0xFF3838) }, // BASICERROR
+ { Color(0x009900), Color(0x009900) }, // SQLIDENTIFIER
+ { COL_BLACK, COL_BLACK }, // SQLNUMBER
+ { Color(0xCE7B00), Color(0xCE7B00) }, // SQLSTRING
+ { COL_BLACK, COL_BLACK }, // SQLOPERATOR
+ { Color(0x0000E6), Color(0x0000E6) }, // SQLKEYWORD
+ { Color(0x259D9D), Color(0x259D9D) }, // SQLPARAMETER
+ { COL_GRAY, COL_GRAY }, // SQLCOMMENT
};
Color aRet;
switch(eEntry)
@@ -435,7 +439,14 @@ Color ColorConfig::GetDefaultColor(ColorConfigEntry eEntry)
break;
default:
- aRet = aAutoColors[eEntry];
+ int nAppMod;
+ switch (MiscSettings::GetAppColorMode()) {
+ case 0: nAppMod = clLight; break; // UseDarkMode() ? clDark : clLight; break;
+ case 1: nAppMod = clLight; break;
+ case 2: nAppMod = clDark; break;
+ default: nAppMod = clLight;
+ }
+ aRet = cAutoColors[eEntry][nAppMod];
}
// fdo#71511: if in a11y HC mode, do pull background color from theme
if (Application::GetSettings().GetStyleSettings().GetHighContrastMode())
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 346023898c23..9f399cfc3452 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -1643,7 +1643,6 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testGetViewRenderState)
// Create a second view
SfxLokHelper::createView();
- int nSecondViewId = SfxLokHelper::getView();
ViewCallback aView2;
{
// Give the second view different options
@@ -1657,25 +1656,6 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testGetViewRenderState)
// Switch back to the first view, and check that the options string is the same
SfxLokHelper::setView(nFirstViewId);
CPPUNIT_ASSERT_EQUAL(OString("PS"), pXTextDocument->getViewRenderState());
-
- // Switch back to the second view, and change to dark mode
- SfxLokHelper::setView(nSecondViewId);
- {
- SwDoc* pDoc = pXTextDocument->GetDocShell()->GetDoc();
- SwView* pView = pDoc->GetDocShell()->GetView();
- uno::Reference<frame::XFrame> xFrame = pView->GetViewFrame().GetFrame().GetFrameInterface();
- uno::Sequence<beans::PropertyValue> aPropertyValues = comphelper::InitPropertySequence(
- {
- { "NewTheme", uno::Any(OUString("COLOR_SCHEME_LIBREOFFICE_DARK")) },
- }
- );
- comphelper::dispatchCommand(".uno:ChangeTheme", xFrame, aPropertyValues);
- }
- CPPUNIT_ASSERT_EQUAL(OString("SD"), pXTextDocument->getViewRenderState());
-
- // Switch back to the first view, and check that the options string is the same
- SfxLokHelper::setView(nFirstViewId);
- CPPUNIT_ASSERT_EQUAL(OString("PS"), pXTextDocument->getViewRenderState());
}
CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testSetViewGraphicSelection)
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index 453c06741adb..e7eb52e81a21 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -3414,8 +3414,6 @@ OString SwXTextDocument::getViewRenderState()
aState.append('P');
if (pVOpt->IsOnlineSpell())
aState.append('S');
- if (pVOpt->GetThemeName() == u"COLOR_SCHEME_LIBREOFFICE_DARK")
- aState.append('D');
}
}
return aState.makeStringAndClear();
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 4803fab81ce4..7981a2310c2f 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -2783,6 +2783,18 @@ void MiscSettings::SetDarkMode(int nMode)
}
}
+int MiscSettings::GetAppColorMode()
+{
+ return officecfg::Office::Common::Misc::ApplicationAppearance::get();
+}
+
+void MiscSettings::SetAppColorMode(int nMode)
+{
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Common::Misc::ApplicationAppearance::set(nMode, batch);
+ batch->commit();
+}
+
HelpSettings::HelpSettings()
: mxData(std::make_shared<ImplHelpData>())
{