diff options
author | heiko tietze <tietze.heiko@gmail.com> | 2018-05-25 11:45:29 +0200 |
---|---|---|
committer | Heiko Tietze <tietze.heiko@gmail.com> | 2018-06-07 15:56:10 +0200 |
commit | 1e3ae648ca32806bd6dcdd6e161630ec111bc6d3 (patch) | |
tree | d3684baba5beac2a0b35c64e004d5b4f3f14dcf8 /vcl | |
parent | 34a3231103adcbcc71e0cc5e8b8f8b0bc1edb520 (diff) |
tdf#116916 - Icon themes missing on LibreOffice Vanilla from macOS appstore
Update of blacklist for $WITH_THEMES
Fallback to Tango for ancient/unknown DE, Colibre only on Windows
MPL vs. non-MPL on macOS
Change-Id: Ibeefbaefae5a8e62e973bcb8cddd53845f96b67d
Reviewed-on: https://gerrit.libreoffice.org/55295
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/54794
Reviewed-on: https://gerrit.libreoffice.org/55396
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qa/cppunit/app/test_IconThemeSelector.cxx | 13 | ||||
-rw-r--r-- | vcl/source/app/IconThemeSelector.cxx | 28 |
2 files changed, 31 insertions, 10 deletions
diff --git a/vcl/qa/cppunit/app/test_IconThemeSelector.cxx b/vcl/qa/cppunit/app/test_IconThemeSelector.cxx index 3b6c53d3278f..06cfe9466f63 100644 --- a/vcl/qa/cppunit/app/test_IconThemeSelector.cxx +++ b/vcl/qa/cppunit/app/test_IconThemeSelector.cxx @@ -19,6 +19,7 @@ class IconThemeSelectorTest : public CppUnit::TestFixture { +#ifndef _WIN32 //default theme on Windows is Colibre independently from any desktop environment void BreezeIsReturnedForKde5Desktop(); @@ -51,10 +52,13 @@ class IconThemeSelectorTest : public CppUnit::TestFixture static std::vector<vcl::IconThemeInfo> GetFakeInstalledThemes(); +#endif // Adds code needed to register the test suite + CPPUNIT_TEST_SUITE(IconThemeSelectorTest); +#ifndef _WIN32 CPPUNIT_TEST(BreezeIsReturnedForKde5Desktop); CPPUNIT_TEST(ElementaryIsReturnedForGnomeDesktop); CPPUNIT_TEST(ThemeIsOverriddenByPreferredTheme); @@ -65,23 +69,26 @@ class IconThemeSelectorTest : public CppUnit::TestFixture CPPUNIT_TEST(FallbackThemeIsReturnedForEmptyInput); CPPUNIT_TEST(DifferentPreferredThemesAreInequal); CPPUNIT_TEST(DifferentHighContrastModesAreInequal); +#endif // End of test suite definition CPPUNIT_TEST_SUITE_END(); }; +#ifndef _WIN32 + /*static*/ std::vector<vcl::IconThemeInfo> IconThemeSelectorTest::GetFakeInstalledThemes() { std::vector<vcl::IconThemeInfo> r; vcl::IconThemeInfo a; - a.mThemeId = "colibre"; - r.push_back(a); a.mThemeId = "breeze"; r.push_back(a); a.mThemeId = "elementary"; r.push_back(a); + a.mThemeId = "colibre"; + r.push_back(a); a.mThemeId = "sifr"; r.push_back(a); return r; @@ -190,6 +197,8 @@ IconThemeSelectorTest::DifferentPreferredThemesAreInequal() CPPUNIT_ASSERT_EQUAL_MESSAGE("Different preferred themes are detected as inequal", false, equal); } +#endif + // Put the test suite in the registry CPPUNIT_TEST_SUITE_REGISTRATION(IconThemeSelectorTest); diff --git a/vcl/source/app/IconThemeSelector.cxx b/vcl/source/app/IconThemeSelector.cxx index 20b64f4da6ac..c9da2d6895c3 100644 --- a/vcl/source/app/IconThemeSelector.cxx +++ b/vcl/source/app/IconThemeSelector.cxx @@ -11,12 +11,13 @@ #include <vcl/IconThemeScanner.hxx> #include <vcl/IconThemeInfo.hxx> +#include <config_mpl.h> #include <algorithm> namespace vcl { -/*static*/ const OUStringLiteral IconThemeSelector::FALLBACK_ICON_THEME_ID("colibre"); +/*static*/ const OUStringLiteral IconThemeSelector::FALLBACK_ICON_THEME_ID("tango"); namespace { @@ -51,20 +52,31 @@ IconThemeSelector::IconThemeSelector() IconThemeSelector::GetIconThemeForDesktopEnvironment(const OUString& desktopEnvironment) { OUString r; +#ifdef _WIN32 + r = "colibre"; + (void)desktopEnvironment; +#else if ( desktopEnvironment.equalsIgnoreAsciiCase("kde4") || - desktopEnvironment.equalsIgnoreAsciiCase("kde5") || - desktopEnvironment.equalsIgnoreAsciiCase("macosx") ) { + desktopEnvironment.equalsIgnoreAsciiCase("kde5") ) { r = "breeze"; - } - else + } else + if ( desktopEnvironment.equalsIgnoreAsciiCase("macosx") ) { +#if MPL_HAVE_SUBSET + r = "tango"; +#else + r = "breeze"; +#endif + } else if ( desktopEnvironment.equalsIgnoreAsciiCase("gnome") || desktopEnvironment.equalsIgnoreAsciiCase("mate") || desktopEnvironment.equalsIgnoreAsciiCase("unity") ) { r = "elementary"; + } else + { + r = FALLBACK_ICON_THEME_ID; } - else { - r = FALLBACK_ICON_THEME_ID; //effective also on Windows - } +#endif + return r; } |