cui/inc/strings.hrc | 2 cui/source/options/appearance.cxx | 154 - cui/source/options/appearance.hxx | 8 cui/uiconfig/ui/appearance.ui | 105 - include/svtools/colorcfg.hxx | 2 include/vcl/themecolors.hxx | 16 officecfg/registry/data/org/openoffice/Office/UI.xcu | 1546 +++++++++++++++++++ svtools/source/config/colorcfg.cxx | 4 8 files changed, 1627 insertions(+), 210 deletions(-)
New commits: commit ba8c5158893c8dcd793ccf597dcea4d0a08f2c73 Author: Sahil Gautam <[email protected]> AuthorDate: Tue Apr 22 14:00:00 2025 +0530 Commit: Sahil Gautam <[email protected]> CommitDate: Mon Jan 26 09:57:53 2026 +0100 tdf#164970 Merge appearance options with themes dropdown TL;DR Now there is only one entity "THEME" the user has to care about when using the appearance tab page. We ship three default themes which just change the document colors. Custom themes can customize the UI too. We used to have two sections in the appearance tab, the themes dropdown and the appearance radio buttons group (automatic, light and dark), and this was really confusing. Let's say I am a new user, and I go to the appearance tag page I select the dark radio button, why isn't my application changing to dark mode? same for light... and then the distinction between application colors and document colors, the radio buttons were mainly for the docuemnt appearance, and the themes dropdown was for changing the current theme which might change the document colors as well. Now the radio buttons have been merged with the themes dropdown. Now there are three default themes there, "Automatic", "Light" and "Dark". These three themes don't define any UI colors and just change the document colors. If the user installs a new theme, and if that theme defines UI colors, the UI will also be customized. Change-Id: If8da6d2f729f117ada07e13b607ed8525395cb6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184429 Reviewed-by: Sahil Gautam <[email protected]> Tested-by: Jenkins (cherry picked from commit b145d0925a68863aae03c123d827de19dc784428) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198093 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Sahil Gautam <[email protected]> diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc index c38ef4c5e619..08c42ccfded6 100644 --- a/cui/inc/strings.hrc +++ b/cui/inc/strings.hrc @@ -400,6 +400,8 @@ // Translatable names of color schemes #define RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC NC_("RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC", "Automatic") +#define RID_COLOR_SCHEME_LIBREOFFICE_LIGHT NC_("RID_COLOR_SCHEME_LIBREOFFICE_LIGHT", "Light") +#define RID_COLOR_SCHEME_LIBREOFFICE_DARK NC_("RID_COLOR_SCHEME_LIBREOFFICE_DARK", "Dark") // Translatable Bitmap Names #define BMP_FUZZY_LIGHTGREY NC_("BMP_FUZZY_LIGHTGREY", "Fuzzy Lightgrey") diff --git a/cui/source/options/appearance.cxx b/cui/source/options/appearance.cxx index d7c3c0d167fc..108f062ee824 100644 --- a/cui/source/options/appearance.cxx +++ b/cui/source/options/appearance.cxx @@ -87,6 +87,13 @@ std::vector<BitmapData> const& getBitmapList() } } +static bool IsDarkModeEnabled() +{ + return MiscSettings::GetAppColorMode() == AppearanceMode::DARK + || (MiscSettings::GetAppColorMode() == AppearanceMode::AUTO + && MiscSettings::GetUseDarkMode()); +} + SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet) @@ -97,9 +104,6 @@ SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage, , m_xMoreThemesBtn(m_xBuilder->weld_button(u"morethemesbtn"_ustr)) , m_xAddSchemeBtn(m_xBuilder->weld_button(u"newschemebtn"_ustr)) , m_xRemoveSchemeBtn(m_xBuilder->weld_button(u"removeschemebtn"_ustr)) - , m_xAppearanceSystem(m_xBuilder->weld_radio_button(u"system"_ustr)) - , m_xAppearanceLight(m_xBuilder->weld_radio_button(u"light"_ustr)) - , m_xAppearanceDark(m_xBuilder->weld_radio_button(u"dark"_ustr)) , m_xColorEntryBtn(m_xBuilder->weld_combo_box(u"registrydropdown"_ustr)) , m_xColorChangeBtn((new ColorListBox(m_xBuilder->weld_menu_button(u"colorsdropdownbtn"_ustr), [this] { return GetFrameWeld(); }))) @@ -112,7 +116,6 @@ SvxAppearanceTabPage::SvxAppearanceTabPage(weld::Container* pPage, , m_xBitmapDropDownBtn(m_xBuilder->weld_combo_box(u"bitmapdropdown"_ustr)) { InitThemes(); - InitAppearance(); InitCustomization(); } @@ -120,16 +123,29 @@ void SvxAppearanceTabPage::LoadSchemeList() { m_xSchemeList->clear(); css::uno::Sequence<OUString> aSchemeNames = pColorConfig->GetSchemeNames(); - for (size_t i = 0; i < aSchemeNames.size(); ++i) - { - if (aSchemeNames[i] != AUTOMATIC_COLOR_SCHEME) - m_xSchemeList->insert(i, aSchemeNames[i], nullptr, nullptr, nullptr); - } + + // insert auto, light, dark themes first m_xSchemeList->insert(0, CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC), &AUTOMATIC_COLOR_SCHEME, nullptr, nullptr); + m_xSchemeList->insert(1, CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_LIGHT), &LIGHT_COLOR_SCHEME, + nullptr, nullptr); + m_xSchemeList->insert(2, CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_DARK), &DARK_COLOR_SCHEME, + nullptr, nullptr); - if (pColorConfig->GetCurrentSchemeName() == AUTOMATIC_COLOR_SCHEME) + // insert all the custom color schemes + for (size_t i = 0; i < aSchemeNames.size(); ++i) + if (ThemeColors::IsCustomTheme(aSchemeNames[i])) + m_xSchemeList->append_text(aSchemeNames[i]); + + // since this function just loads entries into the list, we don't call + // MiscSettings::SetAppColorMode(...) here, and instead do so in the + // SchemeChangeHdl callback. + if (ThemeColors::IsAutomaticTheme(pColorConfig->GetCurrentSchemeName())) m_xSchemeList->set_active_id(AUTOMATIC_COLOR_SCHEME); + else if (ThemeColors::IsLightTheme(pColorConfig->GetCurrentSchemeName())) + m_xSchemeList->set_active_id(LIGHT_COLOR_SCHEME); + else if (ThemeColors::IsDarkTheme(pColorConfig->GetCurrentSchemeName())) + m_xSchemeList->set_active_id(DARK_COLOR_SCHEME); else m_xSchemeList->set_active_text(pColorConfig->GetCurrentSchemeName()); } @@ -165,15 +181,6 @@ OUString SvxAppearanceTabPage::GetAllStrings() bool SvxAppearanceTabPage::FillItemSet(SfxItemSet* /* rSet */) { - // commit appearance value if changed - if (eCurrentAppearanceMode != MiscSettings::GetAppColorMode()) - { - MiscSettings::SetAppColorMode(eCurrentAppearanceMode); - // if themes disabled then change the document colors as per the new appearance mode. - if (ThemeColors::IsThemeDisabled()) - UpdateDocumentAppearance(); - } - // commit ColorConfig if (pColorConfig->IsModified()) pColorConfig->Commit(); @@ -192,9 +199,6 @@ void SvxAppearanceTabPage::Reset(const SfxItemSet* /* rSet */) UpdateRemoveBtnState(); - // reset appearance - eCurrentAppearanceMode = MiscSettings::GetAppColorMode(); - // reset ColorConfig if (pColorConfig) { @@ -216,25 +220,6 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, ShowInDocumentHdl, weld::Toggleable&, void pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(nEntry), aCurrentEntryColor); } -IMPL_LINK_NOARG(SvxAppearanceTabPage, AppearanceChangeHdl, weld::Toggleable&, void) -{ - if (m_xAppearanceSystem->get_state() == TRISTATE_TRUE) - eCurrentAppearanceMode = AppearanceMode::AUTO; - if (m_xAppearanceLight->get_state() == TRISTATE_TRUE) - eCurrentAppearanceMode = AppearanceMode::LIGHT; - if (m_xAppearanceDark->get_state() == TRISTATE_TRUE) - eCurrentAppearanceMode = AppearanceMode::DARK; - // set the extension theme on light/dark - - // restart iff appearance was toggled and theme was enabled - m_bRestartRequired = false; - if (eCurrentAppearanceMode != MiscSettings::GetAppColorMode() - && !ThemeColors::IsThemeDisabled()) - m_bRestartRequired = true; - - UpdateColorDropdown(); -} - IMPL_LINK_NOARG(SvxAppearanceTabPage, ColorEntryChgHdl, weld::ComboBox&, void) { // get selected entry index and ColorConfigValue @@ -314,14 +299,42 @@ IMPL_LINK_NOARG(SvxAppearanceTabPage, ColorValueChgHdl, ColorListBox&, void) IMPL_LINK_NOARG(SvxAppearanceTabPage, SchemeChangeHdl, weld::ComboBox&, void) { - if (m_xSchemeList->get_active_id() == AUTOMATIC_COLOR_SCHEME) - pColorConfig->LoadScheme(AUTOMATIC_COLOR_SCHEME); + AppearanceMode eMode; + OUString sNewScheme; + + if (ThemeColors::IsAutomaticTheme(m_xSchemeList->get_active_id())) + { + sNewScheme = AUTOMATIC_COLOR_SCHEME; + eMode = AppearanceMode::AUTO; + } + else if (ThemeColors::IsLightTheme(m_xSchemeList->get_active_id())) + { + sNewScheme = LIGHT_COLOR_SCHEME; + eMode = AppearanceMode::LIGHT; + } + else if (ThemeColors::IsDarkTheme(m_xSchemeList->get_active_id())) + { + sNewScheme = DARK_COLOR_SCHEME; + eMode = AppearanceMode::DARK; + } else - pColorConfig->LoadScheme(m_xSchemeList->get_active_text()); + { + sNewScheme = m_xSchemeList->get_active_text(); + // for custom theme, keep appearance to AUTO, doesn't matter for the most part, + // but if some colors like document colors are not specified, then they will be + // set as per the OS appearance mode + eMode = AppearanceMode::AUTO; + } + + // NOTE: LoadScheme must be called after updating the AppearanceMode as LoadScheme calls Lode + // which loads colors based on the current application appearance. + MiscSettings::SetAppColorMode(eMode); + pColorConfig->LoadScheme(sNewScheme); if (m_xSchemeList->get_value_changed_from_saved() && !ThemeColors::IsThemeDisabled()) m_bRestartRequired = true; + UpdateColorDropdown(); UpdateRemoveBtnState(); } @@ -471,30 +484,6 @@ void SvxAppearanceTabPage::InitThemes() UpdateRemoveBtnState(); } -void SvxAppearanceTabPage::InitAppearance() -{ - m_xAppearanceSystem->connect_toggled(LINK(this, SvxAppearanceTabPage, AppearanceChangeHdl)); - m_xAppearanceDark->connect_toggled(LINK(this, SvxAppearanceTabPage, AppearanceChangeHdl)); - - AppearanceMode nAppearance = MiscSettings::GetAppColorMode(); - eCurrentAppearanceMode = nAppearance; - - switch (nAppearance) - { - case AppearanceMode::AUTO: - m_xAppearanceSystem->set_state(TRISTATE_TRUE); - break; - case AppearanceMode::LIGHT: - m_xAppearanceLight->set_state(TRISTATE_TRUE); - break; - case AppearanceMode::DARK: - m_xAppearanceDark->set_state(TRISTATE_TRUE); - break; - default: - eCurrentAppearanceMode = AppearanceMode::AUTO; - } -} - void SvxAppearanceTabPage::InitCustomization() { m_xColorEntryBtn->connect_changed(LINK(this, SvxAppearanceTabPage, ColorEntryChgHdl)); @@ -526,12 +515,10 @@ void SvxAppearanceTabPage::InitCustomization() EnableImageControls(false); } -// disable remove if only one scheme available or if the selected theme is AUTOMATIC_COLOR_SCHEME +// enable remove button for custom themes only void SvxAppearanceTabPage::UpdateRemoveBtnState() { - bool bEnableRemoveButton = (m_xSchemeList->get_count() > 1) - && (m_xSchemeList->get_active_id() != AUTOMATIC_COLOR_SCHEME); - m_xRemoveSchemeBtn->set_sensitive(bEnableRemoveButton); + m_xRemoveSchemeBtn->set_sensitive(ThemeColors::IsCustomTheme(m_xSchemeList->get_active_id())); } void SvxAppearanceTabPage::EnableImageControls(bool bEnabled) @@ -559,29 +546,6 @@ void SvxAppearanceTabPage::UpdateColorDropdown() m_xColorChangeBtn->SelectEntry(rCurrentEntryColor.nLightColor); } -// if the user changes appearance options for automatic theme, then follow the old behaviour -// and change the document colors to light/dark based on the choice. -void SvxAppearanceTabPage::UpdateDocumentAppearance() -{ - ColorConfigValue aValue; - bool bIsDarkModeEnabled = IsDarkModeEnabled(); - for (size_t i = 0; i < WINDOWCOLOR; ++i) - { - if (bIsDarkModeEnabled) - aValue.nDarkColor = ColorConfig::GetDefaultColor(static_cast<ColorConfigEntry>(i), 1); - else - aValue.nLightColor = ColorConfig::GetDefaultColor(static_cast<ColorConfigEntry>(i), 0); - - pColorConfig->SetColorValue(static_cast<ColorConfigEntry>(i), aValue); - } -} - -bool SvxAppearanceTabPage::IsDarkModeEnabled() -{ - return eCurrentAppearanceMode == AppearanceMode::DARK - || (eCurrentAppearanceMode == AppearanceMode::AUTO && MiscSettings::GetUseDarkMode()); -} - void SvxAppearanceTabPage::FillItemsList() { static const std::map<ColorConfigEntry, OUString> aRegistryEntries diff --git a/cui/source/options/appearance.hxx b/cui/source/options/appearance.hxx index 2c1e43c29197..7db33d275d4b 100644 --- a/cui/source/options/appearance.hxx +++ b/cui/source/options/appearance.hxx @@ -34,16 +34,12 @@ class SvxAppearanceTabPage : public SfxTabPage { private: bool m_bRestartRequired; - AppearanceMode eCurrentAppearanceMode; std::unique_ptr<EditableColorConfig> pColorConfig; std::unique_ptr<weld::ComboBox> m_xSchemeList; std::unique_ptr<weld::Button> m_xMoreThemesBtn; std::unique_ptr<weld::Button> m_xAddSchemeBtn; std::unique_ptr<weld::Button> m_xRemoveSchemeBtn; - std::unique_ptr<weld::RadioButton> m_xAppearanceSystem; - std::unique_ptr<weld::RadioButton> m_xAppearanceLight; - std::unique_ptr<weld::RadioButton> m_xAppearanceDark; std::unique_ptr<weld::ComboBox> m_xColorEntryBtn; std::unique_ptr<ColorListBox> m_xColorChangeBtn; std::unique_ptr<weld::CheckButton> m_xShowInDocumentChkBtn; @@ -56,7 +52,6 @@ private: std::unique_ptr<weld::ComboBox> m_xBitmapDropDownBtn; - DECL_LINK(AppearanceChangeHdl, weld::Toggleable&, void); DECL_LINK(ColorEntryChgHdl, weld::ComboBox&, void); DECL_LINK(ColorValueChgHdl, ColorListBox&, void); DECL_LINK(ShowInDocumentHdl, weld::Toggleable&, void); @@ -71,7 +66,6 @@ private: DECL_LINK(ResetAllBtnHdl, weld::Button&, void); void InitThemes(); - void InitAppearance(); void InitCustomization(); void UpdateControlsState(); void LoadSchemeList(); @@ -79,8 +73,6 @@ private: void UpdateRemoveBtnState(); void EnableImageControls(bool bEnabled); void UpdateColorDropdown(); - void UpdateDocumentAppearance(); - bool IsDarkModeEnabled(); void FillItemsList(); size_t GetActiveEntry(); diff --git a/cui/uiconfig/ui/appearance.ui b/cui/uiconfig/ui/appearance.ui index 9a0a464c8c40..436aeea8ebaf 100644 --- a/cui/uiconfig/ui/appearance.ui +++ b/cui/uiconfig/ui/appearance.ui @@ -135,111 +135,6 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="orientation">vertical</property> - <child> - <object class="GtkFrame" id="options"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="margin-start">12</property> - <property name="margin-bottom">6</property> - <property name="label-xalign">0</property> - <property name="shadow-type">none</property> - <child> - <!-- n-columns=2 n-rows=1 --> - <object class="GtkGrid"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="margin-start">12</property> - <property name="margin-top">6</property> - <child> - <object class="GtkLabel" id="appearancelb"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="valign">start</property> - <property name="margin-end">6</property> - <property name="label" translatable="yes" context="appearancetabpage|appearancelb">Appearance:</property> - <property name="use-underline">True</property> - <property name="mnemonic-widget">system</property> - </object> - <packing> - <property name="left-attach">0</property> - <property name="top-attach">0</property> - </packing> - </child> - <child> - <object class="GtkBox"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="orientation">vertical</property> - <child> - <object class="GtkRadioButton" id="system"> - <property name="label" translatable="yes" context="appearancetabpage|system">System</property> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> - <property name="active">True</property> - <property name="draw-indicator">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="light"> - <property name="label" translatable="yes" context="appearancetabpage|light">Light</property> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> - <property name="draw-indicator">True</property> - <property name="group">system</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="dark"> - <property name="label" translatable="yes" context="appearancetabpage|dark">Dark</property> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> - <property name="draw-indicator">True</property> - <property name="group">system</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </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="optionslb"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="label" translatable="yes" context="appearancetabpage|optionslb">Options</property> - <attributes> - <attribute name="weight" value="bold"/> - </attributes> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> <child> <object class="GtkFrame" id="items"> <property name="visible">True</property> diff --git a/include/svtools/colorcfg.hxx b/include/svtools/colorcfg.hxx index 40417e507a0c..43698ff529f6 100644 --- a/include/svtools/colorcfg.hxx +++ b/include/svtools/colorcfg.hxx @@ -131,6 +131,8 @@ enum ColorConfigEntry : int }; constexpr OUString AUTOMATIC_COLOR_SCHEME = u"COLOR_SCHEME_LIBREOFFICE_AUTOMATIC"_ustr; +constexpr OUString LIGHT_COLOR_SCHEME = u"COLOR_SCHEME_LIBREOFFICE_LIGHT"_ustr; +constexpr OUString DARK_COLOR_SCHEME = u"COLOR_SCHEME_LIBREOFFICE_DARK"_ustr; constexpr size_t THEME_APPLICATION_COLORS_COUNT = ColorConfigEntryCount - WINDOWCOLOR; namespace { diff --git a/include/vcl/themecolors.hxx b/include/vcl/themecolors.hxx index e00e228d9d69..c2498e9cd479 100644 --- a/include/vcl/themecolors.hxx +++ b/include/vcl/themecolors.hxx @@ -52,6 +52,22 @@ public: return rThemeName == svtools::AUTOMATIC_COLOR_SCHEME; } + static bool IsLightTheme(std::u16string_view rThemeName) + { + return rThemeName == svtools::LIGHT_COLOR_SCHEME; + } + + static bool IsDarkTheme(std::u16string_view rThemeName) + { + return rThemeName == svtools::DARK_COLOR_SCHEME; + } + + static bool IsCustomTheme(std::u16string_view rThemeName) + { + return !IsAutomaticTheme(rThemeName) && !IsLightTheme(rThemeName) + && !IsDarkTheme(rThemeName); + } + static ThemeState GetThemeState(); static void SetThemeState(ThemeState eState); diff --git a/officecfg/registry/data/org/openoffice/Office/UI.xcu b/officecfg/registry/data/org/openoffice/Office/UI.xcu index 4524acda923b..808d77be34ee 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI.xcu @@ -915,6 +915,1552 @@ </prop> </node> </node> + <node oor:name="COLOR_SCHEME_LIBREOFFICE_LIGHT" oor:op="replace"> + <!-- Group_General --> + <node oor:name="DocColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DocBoundaries"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="AppBackground"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="BackgroundType"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Bitmap"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="TableBoundaries"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="FontColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Links"> + <prop oor:name="IsVisible"> + <value>false</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="LinksVisited"> + <prop oor:name="IsVisible"> + <value>false</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Spell"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Grammar"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SmartTags"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Shadow"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterTextGrid"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterFieldShadings"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterIdxShadings"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterDirectCursor"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterScriptIndicator"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterSectionBoundaries"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterHeaderFooterMark"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterPageBreaks"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterNonPrintChars"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLSGML"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLComment"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLKeyword"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLUnknown"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcGrid"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcCellFocus"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcPageBreak"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcPageBreakManual"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcPageBreakAutomatic"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcHiddenColRow"> + <prop oor:name="IsVisible"> + <value>false</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcTextOverflow"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcComments"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcDetective"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcDetectiveError"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcReference"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcNotesBackground"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcValue"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcFormula"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcText"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcProtectedBackground"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DrawGrid"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author1"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author2"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author3"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author4"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author5"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author6"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author7"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author8"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author9"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICEditor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICIdentifier"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICComment"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICNumber"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICString"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICOperator"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICKeyword"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICError"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLIdentifier"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLNumber"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLString"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLOperator"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLKeyword"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLParameter"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLComment"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <!-- Group Application --> + <node oor:name="WindowColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WindowTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BaseColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ButtonColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ButtonTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="AccentColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DisabledColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DisabledTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ShadowColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SeparatorColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="FaceColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ActiveColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ActiveTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ActiveBorderColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="FieldColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarHighlightColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarHighlightTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuHighlightColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuHighlightTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBorderColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="InactiveColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="InactiveTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="InactiveBorderColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + </node> + <node oor:name="COLOR_SCHEME_LIBREOFFICE_DARK" oor:op="replace"> + <!-- Group_General --> + <node oor:name="DocColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DocBoundaries"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="AppBackground"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="BackgroundType"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Bitmap"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="TableBoundaries"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="FontColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Links"> + <prop oor:name="IsVisible"> + <value>false</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="LinksVisited"> + <prop oor:name="IsVisible"> + <value>false</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Spell"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Grammar"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SmartTags"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Shadow"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterTextGrid"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterFieldShadings"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterIdxShadings"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterDirectCursor"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterScriptIndicator"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterSectionBoundaries"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterHeaderFooterMark"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterPageBreaks"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WriterNonPrintChars"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLSGML"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLComment"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLKeyword"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="HTMLUnknown"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcGrid"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcCellFocus"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcPageBreak"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcPageBreakManual"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcPageBreakAutomatic"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcHiddenColRow"> + <prop oor:name="IsVisible"> + <value>false</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcTextOverflow"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcComments"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcDetective"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcDetectiveError"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcReference"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcNotesBackground"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcValue"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcFormula"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcText"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="CalcProtectedBackground"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DrawGrid"> + <prop oor:name="IsVisible"> + <value>true</value> + </prop> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author1"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author2"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author3"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author4"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author5"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author6"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author7"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author8"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="Author9"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICEditor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICIdentifier"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICComment"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICNumber"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICString"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICOperator"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICKeyword"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BASICError"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLIdentifier"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLNumber"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLString"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLOperator"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLKeyword"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLParameter"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SQLComment"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <!-- Group Application --> + <node oor:name="WindowColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="WindowTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="BaseColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ButtonColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ButtonTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="AccentColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DisabledColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="DisabledTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ShadowColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="SeparatorColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="FaceColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ActiveColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ActiveTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="ActiveBorderColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="FieldColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarHighlightColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBarHighlightTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuHighlightColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuHighlightTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="MenuBorderColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="InactiveColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="InactiveTextColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + <node oor:name="InactiveBorderColor"> + <prop oor:name="Light"> + <value xsi:nil="true"/> + </prop> + <prop oor:name="Dark"> + <value xsi:nil="true"/> + </prop> + </node> + </node> </node> </node> </oor:component-data> diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx index b7aea178700b..a1b3e00ad56c 100644 --- a/svtools/source/config/colorcfg.cxx +++ b/svtools/source/config/colorcfg.cxx @@ -171,8 +171,8 @@ void ColorConfig_Impl::Load(const OUString& rScheme) } m_sLoadedScheme = sScheme; - // in cases like theme not found or extension removal, use AUTOMATIC_COLOR_SCHEME as fallback. - if (!ThemeColors::IsAutomaticTheme(sScheme)) + // use automatic theme as the fallback, in case the theme extension was removed + if (ThemeColors::IsCustomTheme(sScheme)) { uno::Sequence<OUString> aSchemes = GetSchemeNames(); bool bFound = false;
