diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2020-10-16 12:55:08 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2020-10-20 19:20:11 +0200 |
commit | 7d2bab41350d7006366b7c450879fe99209713ea (patch) | |
tree | 36be32e2ffdfb652565d1c858afffd8b365ece61 /cui | |
parent | fea1d3a487faef85b2b7aa8a87075f81ea22af76 (diff) |
clean up handling of the UI Skia options
Disable the sub-option when the main option is disabled.
Enable it for the proper VCL backends ("win" and "gen").
Change-Id: I38c2f605c10eb0f3cfae3f05cd4bada4877cdc2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104426
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/options/optgdlg.cxx | 70 | ||||
-rw-r--r-- | cui/source/options/optgdlg.hxx | 2 |
2 files changed, 32 insertions, 40 deletions
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 7301bd817144..535285b70d90 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -681,27 +681,11 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p , m_xMoreIcons(m_xBuilder->weld_button("btnMoreIcons")) { if (Application::GetToolkitName() == "gtk3") - { - m_xUseSkia->hide(); - m_xForceSkiaRaster->hide(); - m_xSkiaStatusEnabled->hide(); - m_xSkiaStatusDisabled->hide(); m_xMenuIconBox->hide(); - } - -#if !HAVE_FEATURE_SKIA || !defined(_WIN32) - // Duplicated also in UpdateSkiaStatus(). - // For now Skia is used mainly on Windows, hide the controls everywhere else. - // It can also be used on Linux, but only with the rarely used 'gen' backend. - m_xUseSkia->hide(); - m_xForceSkiaRaster->hide(); - m_xSkiaStatusEnabled->hide(); - m_xSkiaStatusDisabled->hide(); -#endif m_xFontAntiAliasing->connect_toggled( LINK( this, OfaViewTabPage, OnAntialiasingToggled ) ); - m_xForceSkiaRaster->connect_toggled(LINK(this, OfaViewTabPage, OnForceSkiaRasterToggled)); + m_xUseSkia->connect_toggled(LINK(this, OfaViewTabPage, OnUseSkiaToggled)); // Set known icon themes OUString sAutoStr( m_xIconStyleLB->get_text( 0 ) ); @@ -727,12 +711,6 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p m_xIconStyleLB->set_active(0); - // FIXME: should really add code to show a 'lock' icon here. - if (officecfg::Office::Common::VCL::UseSkia::isReadOnly()) - m_xUseSkia->set_sensitive(false); - if (officecfg::Office::Common::VCL::ForceSkiaRaster::isReadOnly()) - m_xForceSkiaRaster->set_sensitive(false); - m_xMoreIcons->set_from_icon_name("cmd/sc_additionsdialog.png"); m_xMoreIcons->connect_clicked(LINK(this, OfaViewTabPage, OnMoreIconsClick)); @@ -759,13 +737,39 @@ IMPL_LINK_NOARG( OfaViewTabPage, OnAntialiasingToggled, weld::ToggleButton&, voi m_xAAPointLimit->set_sensitive(bAAEnabled); } -IMPL_LINK_NOARG(OfaViewTabPage, OnForceSkiaRasterToggled, weld::ToggleButton&, void) +IMPL_LINK_NOARG(OfaViewTabPage, OnUseSkiaToggled, weld::ToggleButton&, void) { - if (m_xForceSkiaRaster->get_active()) + UpdateSkiaStatus(); +} + +void OfaViewTabPage::UpdateSkiaStatus() +{ + bool skiaHidden = true; +#if HAVE_FEATURE_SKIA + // For now Skia is used mainly on Windows, enable the controls there. + if (Application::GetToolkitName() == "win") + skiaHidden = false; + // It can also be used on Linux, but only with the rarely used 'gen' backend. + if (Application::GetToolkitName() == "x11") + skiaHidden = false; +#endif + if (skiaHidden) { - // Forcing Skia raster implies that Skia is on. - m_xUseSkia->set_active(true); + m_xUseSkia->hide(); + m_xForceSkiaRaster->hide(); + m_xSkiaStatusEnabled->hide(); + m_xSkiaStatusDisabled->hide(); + return; } + + // Easier than a custom translation string. + bool bEnabled = SkiaHelper::isVCLSkiaEnabled(); + m_xSkiaStatusEnabled->set_visible(bEnabled); + m_xSkiaStatusDisabled->set_visible(!bEnabled); + + // FIXME: should really add code to show a 'lock' icon here. + m_xUseSkia->set_sensitive(!officecfg::Office::Common::VCL::UseSkia::isReadOnly()); + m_xForceSkiaRaster->set_sensitive(m_xUseSkia->get_active() && !officecfg::Office::Common::VCL::ForceSkiaRaster::isReadOnly()); } std::unique_ptr<SfxTabPage> OfaViewTabPage::Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet ) @@ -1083,18 +1087,6 @@ void OfaViewTabPage::Reset( const SfxItemSet* ) OnAntialiasingToggled(*m_xFontAntiAliasing); } -void OfaViewTabPage::UpdateSkiaStatus() -{ - if (Application::GetToolkitName() == "gtk3") - return; -#if HAVE_FEATURE_SKIA && defined(_WIN32) - // Easier than a custom translation string. - bool bEnabled = SkiaHelper::isVCLSkiaEnabled(); - m_xSkiaStatusEnabled->set_visible(bEnabled); - m_xSkiaStatusDisabled->set_visible(!bEnabled); -#endif -} - struct LanguageConfig_Impl { SvtLanguageOptions aLanguageOptions; diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx index 90daae0c92f0..973260283aaf 100644 --- a/cui/source/options/optgdlg.hxx +++ b/cui/source/options/optgdlg.hxx @@ -121,7 +121,7 @@ private: std::unique_ptr<weld::Button> m_xMoreIcons; DECL_LINK(OnAntialiasingToggled, weld::ToggleButton&, void); - DECL_LINK(OnForceSkiaRasterToggled, weld::ToggleButton&, void); + DECL_LINK(OnUseSkiaToggled, weld::ToggleButton&, void); DECL_STATIC_LINK(OfaViewTabPage, OnMoreIconsClick, weld::Button&, void); void UpdateSkiaStatus(); |