cui/source/options/optgdlg.cxx | 84 +++++++++++++ cui/source/options/optgdlg.hxx | 7 + officecfg/registry/schema/org/openoffice/Office/Common.xcs | 8 + vcl/source/opengl/OpenGLHelper.cxx | 2 4 files changed, 100 insertions(+), 1 deletion(-)
New commits: commit 355e39508112695766f060e9b05c70625ee1b0a3 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Wed Dec 17 22:29:21 2014 +0100 after resetting the values are not modified Change-Id: I0211c9c7dcc24ce40fe7c573f35ac13c02e742c1 diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index d70b4ec..55222bc9 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -136,6 +136,7 @@ void OpenGLCfg::reset() { mbUseOpenGL = officecfg::Office::Common::VCL::UseOpenGL::get(); mbForceOpenGL = officecfg::Office::Common::VCL::ForceOpenGL::get(); + mbModified = false; } OpenGLCfg::~OpenGLCfg() commit 2a7571d00f182147311596541642b8abde7729d0 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Wed Dec 17 22:27:54 2014 +0100 make use of the new ForceOpenGL config variable Change-Id: Ifdfcbd9d3d62d2a55e3e050d4723700f8436e57a diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index 3c08c03..7f4cf36 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -408,7 +408,7 @@ bool OpenGLHelper::isVCLOpenGLEnabled() * * SAL_ENABLEGL overrides VCL_HIDE_WINDOWS and the configuration variable * * the configuration variable is checked if no environment variable is set */ - static bool bForceOpenGL = !!getenv("SAL_FORCEGL"); + static bool bForceOpenGL = !!getenv("SAL_FORCEGL") || officecfg::Office::Common::VCL::ForceOpenGL::get(); if (bForceOpenGL) return true; commit 9a33547d1462dcb0f9aae885e4160a4f42eeb94d Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Wed Dec 17 22:25:45 2014 +0100 implement the ui part for the OpenGL config variables Change-Id: I46e2de444d38f1f93eb68ffd50b7a283d05d1738 diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index ca5af8d..d70b4ec 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -69,6 +69,7 @@ #include <unotools/searchopt.hxx> #include <sal/macros.h> #include <officecfg/Office/Common.hxx> +#include <comphelper/configuration.hxx> #include <com/sun/star/configuration/theDefaultProvider.hpp> #include <com/sun/star/container/XNameAccess.hpp> @@ -103,6 +104,81 @@ using namespace ::com::sun::star::container; using namespace ::com::sun::star::util; using namespace ::utl; +namespace svt { + +class OpenGLCfg +{ +private: + bool mbUseOpenGL; + bool mbForceOpenGL; + bool mbModified; + +public: + OpenGLCfg(); + ~OpenGLCfg(); + + bool useOpenGL() const; + bool forceOpenGL() const; + + void setUseOpenGL(bool bOpenGL); + void setForceOpenGL(bool bOpenGL); + + void reset(); +}; + +OpenGLCfg::OpenGLCfg(): + mbModified(false) +{ + reset(); +} + +void OpenGLCfg::reset() +{ + mbUseOpenGL = officecfg::Office::Common::VCL::UseOpenGL::get(); + mbForceOpenGL = officecfg::Office::Common::VCL::ForceOpenGL::get(); +} + +OpenGLCfg::~OpenGLCfg() +{ + if (mbModified) + { + boost::shared_ptr< comphelper::ConfigurationChanges > batch( comphelper::ConfigurationChanges::create() ); + officecfg::Office::Common::VCL::UseOpenGL::set(mbUseOpenGL, batch); + officecfg::Office::Common::VCL::ForceOpenGL::set(mbForceOpenGL, batch); + + } +} + +bool OpenGLCfg::useOpenGL() const +{ + return mbUseOpenGL; +} + +bool OpenGLCfg::forceOpenGL() const +{ + return mbForceOpenGL; +} + +void OpenGLCfg::setUseOpenGL(bool bOpenGL) +{ + if (bOpenGL != mbUseOpenGL) + { + mbUseOpenGL = bOpenGL; + mbModified = true; + } +} + +void OpenGLCfg::setForceOpenGL(bool bOpenGL) +{ + if (mbForceOpenGL != bOpenGL) + { + mbForceOpenGL = bOpenGL; + mbModified = true; + } +} + +} + // class OfaMiscTabPage -------------------------------------------------- int OfaMiscTabPage::DeactivatePage( SfxItemSet* pSet_ ) @@ -557,6 +633,7 @@ OfaViewTabPage::OfaViewTabPage(vcl::Window* pParent, const SfxItemSet& rSet) , pAppearanceCfg(new SvtTabAppearanceCfg) , pCanvasSettings(new CanvasSettings) , mpDrawinglayerOpt(new SvtOptionsDrawinglayer) + , mpOpenGLConfig(new svt::OpenGLCfg) { get(m_pWindowSizeMF, "windowsize"); get(m_pIconSizeLB, "iconsize"); @@ -785,6 +862,9 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* ) } } + mpOpenGLConfig->setUseOpenGL(m_pUseOpenGL->IsChecked()); + mpOpenGLConfig->setForceOpenGL(m_pForceOpenGL->IsChecked()); + // #i97672# if(m_pSelectionCB->IsEnabled()) { @@ -843,6 +923,7 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* ) void OfaViewTabPage::Reset( const SfxItemSet* ) { SvtMiscOptions aMiscOptions; + mpOpenGLConfig->reset(); if( aMiscOptions.GetSymbolsSize() != SFX_SYMBOLS_SIZE_AUTO ) nSizeLB_InitialSelection = ( aMiscOptions.AreCurrentSymbolsLarge() )? 2 : 1; @@ -912,6 +993,8 @@ void OfaViewTabPage::Reset( const SfxItemSet* ) m_pUseAntiAliase->SaveValue(); } + m_pUseOpenGL->Check(mpOpenGLConfig->useOpenGL()); + m_pForceOpenGL->Check(mpOpenGLConfig->forceOpenGL()); { // #i97672# Selection diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx index 2d102899..5652811 100644 --- a/cui/source/options/optgdlg.hxx +++ b/cui/source/options/optgdlg.hxx @@ -25,6 +25,8 @@ #include <sfx2/tabdlg.hxx> #include <svx/langbox.hxx> +#include <boost/scoped_ptr.hpp> + // predeclarations class CanvasSettings; class SvtOptionsDrawinglayer; @@ -32,6 +34,10 @@ namespace vcl { class IconThemeInfo; } +namespace svt { + class OpenGLCfg; +} + // class OfaMiscTabPage -------------------------------------------------- class OfaMiscTabPage : public SfxTabPage @@ -113,6 +119,7 @@ private: SvtTabAppearanceCfg* pAppearanceCfg; CanvasSettings* pCanvasSettings; SvtOptionsDrawinglayer* mpDrawinglayerOpt; + boost::scoped_ptr<svt::OpenGLCfg> mpOpenGLConfig; std::vector<vcl::IconThemeInfo> mInstalledIconThemes; diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index 41c2601..4b5c789 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -858,6 +858,14 @@ </info> <value>false</value> </prop> + <prop oor:name="ForceOpenGL" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Specifies if OpenGL rendering should be used in VCL backends + supporting it. This one forces the use of OpenGL even if the + blacklist would block the OpenGL driver.</desc> + </info> + <value>false</value> + </prop> </group> <group oor:name="InternalMSExport"> <info> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits