cui/source/options/optgdlg.cxx | 8 ++--- include/svtools/miscopt.hxx | 1 svtools/source/config/miscopt.cxx | 57 ++++++++++---------------------------- vcl/source/app/settings.cxx | 13 ++++++++ 4 files changed, 33 insertions(+), 46 deletions(-)
New commits: commit 55c6bd93e9c02b2160b82c0d489d05ba31a0f13c Author: Jan Holesovsky <[email protected]> Date: Mon May 25 11:39:42 2015 +0200 tdf#90127: Read icon theme from the config when called too early. Change-Id: I9999150cafde6b103cf1a80232113b7a3d11cfdb diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 15eca7d..5e67ba9c 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -3028,6 +3028,19 @@ StyleSettings::SetIconTheme(const OUString& theme) OUString StyleSettings::DetermineIconTheme() const { + if (mxData->mIconTheme.isEmpty()) + { + // read from the configuration, or fallback to what the desktop wants + uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext()); + if (xContext.is()) + { + mxData->mIconTheme = officecfg::Office::Common::Misc::SymbolStyle::get(xContext); + + if (mxData->mIconTheme.isEmpty() || mxData->mIconTheme == "auto") + mxData->mIconTheme = GetAutomaticallyChosenIconTheme(); + } + } + OUString r = mxData->mIconThemeSelector->SelectIconTheme( mxData->mIconThemeScanner->GetFoundIconThemes(), mxData->mIconTheme commit 4163bde70568d6d5dd7144293484f797e8df9e63 Author: Jan Holesovsky <[email protected]> Date: Mon May 25 11:08:13 2015 +0200 related tdf#90127: Simplify setting of the 'auto' icon theme. Change-Id: I9aedfd0b7943517b5444195b63140132dd728d57 diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 893ab53..b82189f 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -789,10 +789,10 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* ) if( nStyleLB_InitialSelection != nStyleLB_NewSelection ) { // 0 means choose style automatically - if (nStyleLB_NewSelection == 0) { - aMiscOptions.SetIconThemeAutomatically(); - } - else { + if (nStyleLB_NewSelection == 0) + aMiscOptions.SetIconTheme("auto"); + else + { sal_uInt16 pos = m_pIconStyleLB->GetSelectEntryPos(); const vcl::IconThemeInfo& iconThemeId = mInstalledIconThemes.at(pos-1); aMiscOptions.SetIconTheme(iconThemeId.GetThemeId()); diff --git a/include/svtools/miscopt.hxx b/include/svtools/miscopt.hxx index 28cd67c..6e321d2 100644 --- a/include/svtools/miscopt.hxx +++ b/include/svtools/miscopt.hxx @@ -78,7 +78,6 @@ class SVT_DLLPUBLIC SvtMiscOptions: public utl::detail::Options OUString GetIconTheme() const; void SetIconTheme(const OUString&); - void SetIconThemeAutomatically(); bool IconThemeWasSetAutomatically(); sal_Int16 GetToolboxStyle() const; diff --git a/svtools/source/config/miscopt.cxx b/svtools/source/config/miscopt.cxx index e3384e5..48adb6f 100644 --- a/svtools/source/config/miscopt.cxx +++ b/svtools/source/config/miscopt.cxx @@ -179,11 +179,6 @@ class SvtMiscOptions_Impl : public ConfigItem bool IconThemeWasSetAutomatically() {return m_bIconThemeWasSetAutomatically;} - /** Set the icon theme automatically by detecting the best theme for the desktop environment. - * The parameter setModified controls whether SetModified() will be called. - */ - void SetIconThemeAutomatically(SetModifiedFlag = SET_MODIFIED); - // translate to VCL settings ( "0" = 3D, "1" = FLAT ) inline sal_Int16 GetToolboxStyle() { return m_nToolboxStyle ? VCL_TOOLBOX_STYLE_FLAT : 0; } @@ -333,18 +328,11 @@ SvtMiscOptions_Impl::SvtMiscOptions_Impl() case PROPERTYHANDLE_SYMBOLSTYLE : { OUString aIconTheme; - if( seqValues[nProperty] >>= aIconTheme ) { - if (aIconTheme == "auto") { - SetIconThemeAutomatically(DONT_SET_MODIFIED); - } - else { - SetIconTheme(aIconTheme, DONT_SET_MODIFIED); - } - } + if (seqValues[nProperty] >>= aIconTheme) + SetIconTheme(aIconTheme, DONT_SET_MODIFIED); else - { OSL_FAIL("Wrong type of \"Misc\\SymbolStyle\"!" ); - } + m_bIsSymbolsStyleRO = seqRO[nProperty]; break; } @@ -462,17 +450,10 @@ void SvtMiscOptions_Impl::Load( const Sequence< OUString >& rPropertyNames ) break; case PROPERTYHANDLE_SYMBOLSTYLE : { OUString aIconTheme; - if( seqValues[nProperty] >>= aIconTheme ) { - if (aIconTheme == "auto") { - SetIconThemeAutomatically(DONT_SET_MODIFIED); - } - else { - SetIconTheme(aIconTheme, DONT_SET_MODIFIED); - } - } - else { + if (seqValues[nProperty] >>= aIconTheme) + SetIconTheme(aIconTheme, DONT_SET_MODIFIED); + else OSL_FAIL("Wrong type of \"Misc\\SymbolStyle\"!" ); - } } break; case PROPERTYHANDLE_DISABLEUICUSTOMIZATION : { @@ -536,10 +517,18 @@ OUString SvtMiscOptions_Impl::GetIconTheme() void SvtMiscOptions_Impl::SetIconTheme(const OUString &rName, SetModifiedFlag setModified) { + OUString aTheme(rName); + if (aTheme.isEmpty() || aTheme == "auto") + { + aTheme = Application::GetSettings().GetStyleSettings().GetAutomaticallyChosenIconTheme(); + m_bIconThemeWasSetAutomatically = true; + } + else + m_bIconThemeWasSetAutomatically = false; + AllSettings aAllSettings = Application::GetSettings(); StyleSettings aStyleSettings = aAllSettings.GetStyleSettings(); - aStyleSettings.SetIconTheme( rName ); - m_bIconThemeWasSetAutomatically = false; + aStyleSettings.SetIconTheme(aTheme); aAllSettings.SetStyleSettings(aStyleSettings); Application::MergeSystemSettings( aAllSettings ); @@ -883,20 +872,6 @@ void SvtMiscOptions::RemoveListenerLink( const Link<>& rLink ) m_pDataContainer->RemoveListenerLink( rLink ); } -void -SvtMiscOptions_Impl::SetIconThemeAutomatically(enum SetModifiedFlag setModified) -{ - OUString theme = Application::GetSettings().GetStyleSettings().GetAutomaticallyChosenIconTheme(); - SetIconTheme(theme, setModified); - m_bIconThemeWasSetAutomatically = true; -} - -void -SvtMiscOptions::SetIconThemeAutomatically() -{ - m_pDataContainer->SetIconThemeAutomatically(); -} - bool SvtMiscOptions::IconThemeWasSetAutomatically() { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
