diff options
author | Nickson Thanda <nicksonthanda10@msn.com> | 2018-06-03 22:35:14 +0100 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2018-06-11 14:49:47 +0200 |
commit | 175a1d13adce55bb4411209736bb332aab990f9c (patch) | |
tree | e32279c8f201beacba2133d187482efdd36a2bf1 | |
parent | 7ed40b1885868720ece6e702afa2d002614484c1 (diff) |
tdf#114875 Added an option to not show "No offline help installed" popup
Change-Id: I8067c0c374af57f5ad8e6f5fffd3a9783521824f
Reviewed-on: https://gerrit.libreoffice.org/55254
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r-- | cui/source/options/optgdlg.cxx | 10 | ||||
-rw-r--r-- | cui/source/options/optgdlg.hxx | 1 | ||||
-rw-r--r-- | cui/uiconfig/ui/optgeneralpage.ui | 40 | ||||
-rw-r--r-- | include/svtools/helpopt.hxx | 2 | ||||
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Common.xcs | 6 | ||||
-rw-r--r-- | sfx2/source/appl/sfxhelp.cxx | 56 | ||||
-rw-r--r-- | sfx2/uiconfig/ui/helpmanual.ui | 20 | ||||
-rw-r--r-- | svtools/source/config/helpopt.cxx | 27 |
8 files changed, 125 insertions, 37 deletions
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 454fe099c253..5ce324c2d4e3 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -258,6 +258,7 @@ OfaMiscTabPage::OfaMiscTabPage(vcl::Window* pParent, const SfxItemSet& rSet) : SfxTabPage(pParent, "OptGeneralPage", "cui/ui/optgeneralpage.ui", &rSet) { get(m_pExtHelpCB, "exthelp"); + get(m_pPopUpNoHelpCB,"popupnohelp"); if (!lcl_HasSystemFilePicker()) get<VclContainer>("filedlgframe")->Hide(); #if ! ENABLE_GTK @@ -322,6 +323,7 @@ void OfaMiscTabPage::dispose() m_pCollectUsageInfo.clear(); m_pQuickStarterFrame.clear(); m_pQuickLaunchCB.clear(); + m_pPopUpNoHelpCB.clear(); SfxTabPage::dispose(); } @@ -336,7 +338,10 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet ) std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create()); SvtHelpOptions aHelpOptions; - if ( m_pExtHelpCB->IsChecked() != (m_pExtHelpCB->GetSavedValue() == TRISTATE_TRUE) ) + if ( m_pPopUpNoHelpCB->IsValueChangedFromSaved() ) + aHelpOptions.SetOfflineHelpPopUp( m_pPopUpNoHelpCB->IsChecked() ); + + if ( m_pExtHelpCB->IsValueChangedFromSaved() ) aHelpOptions.SetExtendedHelp( m_pExtHelpCB->IsChecked() ); if ( m_pFileDlgCB->IsValueChangedFromSaved() ) @@ -390,7 +395,8 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet ) SvtHelpOptions aHelpOptions; m_pExtHelpCB->Check( aHelpOptions.IsHelpTips() && aHelpOptions.IsExtendedHelp() ); m_pExtHelpCB->SaveValue(); - + m_pPopUpNoHelpCB->Check( aHelpOptions.IsOfflineHelpPopUp() ); + m_pPopUpNoHelpCB->SaveValue(); SvtMiscOptions aMiscOpt; m_pFileDlgCB->Check( !aMiscOpt.UseSystemFileDialog() ); m_pFileDlgCB->SaveValue(); diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx index f6296ff87679..d986860b6f48 100644 --- a/cui/source/options/optgdlg.hxx +++ b/cui/source/options/optgdlg.hxx @@ -41,6 +41,7 @@ class OfaMiscTabPage : public SfxTabPage { using TabPage::DeactivatePage; private: + VclPtr<CheckBox> m_pPopUpNoHelpCB; VclPtr<CheckBox> m_pExtHelpCB; VclPtr<FixedImage> m_pFileDlgROImage; diff --git a/cui/uiconfig/ui/optgeneralpage.ui b/cui/uiconfig/ui/optgeneralpage.ui index 022fb620bcdd..8d47ea9e4682 100644 --- a/cui/uiconfig/ui/optgeneralpage.ui +++ b/cui/uiconfig/ui/optgeneralpage.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.20.2 --> +<!-- Generated with glade 3.18.3 --> <interface domain="cui"> <requires lib="gtk+" version="3.18"/> <object class="GtkAdjustment" id="adjustment1"> @@ -27,14 +27,38 @@ <property name="top_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkCheckButton" id="exthelp"> - <property name="label" translatable="yes" context="optgeneralpage|exthelp">_Extended tips</property> + <object class="GtkGrid" id="grid2"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="xalign">0</property> - <property name="draw_indicator">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkCheckButton" id="exthelp"> + <property name="label" translatable="yes" context="optgeneralpage|exthelp">_Extended tips</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="popupnohelp"> + <property name="label" translatable="yes" context="optgeneralpage|popupnohelp">Show "No offline help installed" popup</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + </packing> + </child> </object> </child> </object> diff --git a/include/svtools/helpopt.hxx b/include/svtools/helpopt.hxx index 6d55ad0b00b3..07ad90c1c191 100644 --- a/include/svtools/helpopt.hxx +++ b/include/svtools/helpopt.hxx @@ -40,6 +40,8 @@ public: bool IsExtendedHelp() const; void SetHelpTips( bool b ); bool IsHelpTips() const; + void SetOfflineHelpPopUp(bool b); + bool IsOfflineHelpPopUp() const; const OUString& GetHelpStyleSheet()const; void SetHelpStyleSheet(const OUString& rStyleSheet); diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index ca59a66a1d83..d31d8697a646 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -3554,6 +3554,12 @@ </info> <value>false</value> </prop> + <prop oor:name="BuiltInHelpNotInstalledPopUp" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Activates "Built-in help is not installed" pop-up</desc> + </info> + <value>true</value> + </prop> <prop oor:name="HelpStyleSheet" oor:type="xs:string" oor:nillable="false"> <info> <desc>Specifies the name of the stylesheet used to display help diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx index cae51357f2a6..7fd1b642d8ec 100644 --- a/sfx2/source/appl/sfxhelp.cxx +++ b/sfx2/source/appl/sfxhelp.cxx @@ -820,16 +820,23 @@ bool SfxHelp::Start_Impl(const OUString& rURL, const vcl::Window* pWindow, const if ( !impl_hasHelpInstalled() ) { - std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWindow ? pWindow->GetFrameWeld() : nullptr, "sfx/ui/helpmanual.ui")); - std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("onlinehelpmanual")); + SvtHelpOptions aHelpOptions; + bool bShowOfflineHelpPopUp = aHelpOptions.IsOfflineHelpPopUp(); - LanguageTag aLangTag = Application::GetSettings().GetUILanguageTag(); - OUString sLocaleString = SvtLanguageTable::GetLanguageString( aLangTag.getLanguageType() ); - OUString sPrimText = xQueryBox->get_primary_text(); - xQueryBox->set_primary_text(sPrimText.replaceAll("$UILOCALE", sLocaleString)); - short OnlineHelpBox = xQueryBox->run(); - - if(OnlineHelpBox == RET_OK) + if(bShowOfflineHelpPopUp) + { + std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWindow ? pWindow->GetFrameWeld() : nullptr, "sfx/ui/helpmanual.ui")); + std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("onlinehelpmanual")); + std::unique_ptr<weld::CheckButton> m_xHideOfflineHelpCB(xBuilder->weld_check_button("hidedialog")); + LanguageTag aLangTag = Application::GetSettings().GetUILanguageTag(); + OUString sLocaleString = SvtLanguageTable::GetLanguageString( aLangTag.getLanguageType() ); + OUString sPrimText = xQueryBox->get_primary_text(); + xQueryBox->set_primary_text(sPrimText.replaceAll("$UILOCALE", sLocaleString)); + short OnlineHelpBox = xQueryBox->run(); + bShowOfflineHelpPopUp = OnlineHelpBox != RET_OK; + aHelpOptions.SetOfflineHelpPopUp(!m_xHideOfflineHelpCB->get_state()); + } + if(!bShowOfflineHelpPopUp) { if ( impl_showOnlineHelp( aHelpURL ) ) return true; @@ -844,7 +851,6 @@ bool SfxHelp::Start_Impl(const OUString& rURL, const vcl::Window* pWindow, const { return false; } - } // old-help to display Reference < XDesktop2 > xDesktop = Desktop::create( ::comphelper::getProcessComponentContext() ); @@ -962,19 +968,25 @@ bool SfxHelp::Start_Impl(const OUString& rURL, weld::Widget* pWidget, const OUSt if ( !impl_hasHelpInstalled() ) { - std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWidget, "sfx/ui/helpmanual.ui")); - std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("onlinehelpmanual")); - - LanguageTag aLangTag = Application::GetSettings().GetUILanguageTag(); - OUString sLocaleString = SvtLanguageTable::GetLanguageString( aLangTag.getLanguageType() ); - OUString sPrimText = xQueryBox->get_primary_text(); - xQueryBox->set_primary_text(sPrimText.replaceAll("$UILOCALE", sLocaleString)); - xQueryBox->connect_help(LINK(nullptr, NoHelpErrorBox, HelpRequestHdl)); - short OnlineHelpBox = xQueryBox->run(); - xQueryBox->hide(); - if (OnlineHelpBox == RET_OK) + SvtHelpOptions aHelpOptions; + bool bShowOfflineHelpPopUp = aHelpOptions.IsOfflineHelpPopUp(); + + if(bShowOfflineHelpPopUp) + { + std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWidget, "sfx/ui/helpmanual.ui")); + std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("onlinehelpmanual")); + std::unique_ptr<weld::CheckButton> m_xHideOfflineHelpCB(xBuilder->weld_check_button("hidedialog")); + LanguageTag aLangTag = Application::GetSettings().GetUILanguageTag(); + OUString sLocaleString = SvtLanguageTable::GetLanguageString( aLangTag.getLanguageType() ); + OUString sPrimText = xQueryBox->get_primary_text(); + xQueryBox->set_primary_text(sPrimText.replaceAll("$UILOCALE", sLocaleString)); + short OnlineHelpBox = xQueryBox->run(); + bShowOfflineHelpPopUp = OnlineHelpBox != RET_OK; + aHelpOptions.SetOfflineHelpPopUp(!m_xHideOfflineHelpCB->get_state()); + } + if(!bShowOfflineHelpPopUp) { - if (impl_showOnlineHelp( aHelpURL ) ) + if ( impl_showOnlineHelp( aHelpURL ) ) return true; else { diff --git a/sfx2/uiconfig/ui/helpmanual.ui b/sfx2/uiconfig/ui/helpmanual.ui index e71cac2df176..fd1ea563eb2c 100644 --- a/sfx2/uiconfig/ui/helpmanual.ui +++ b/sfx2/uiconfig/ui/helpmanual.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.20.2 --> +<!-- Generated with glade 3.18.3 --> <interface domain="sfx"> <requires lib="gtk+" version="3.18"/> <object class="GtkMessageDialog" id="onlinehelpmanual"> @@ -55,6 +55,24 @@ <property name="position">0</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="hidedialog"> + <property name="label" translatable="yes" context="helpmanual|hidedialog">Do not show this dialog again</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> + <property name="margin_left">100</property> + <property name="hexpand">False</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> </object> </child> <action-widgets> diff --git a/svtools/source/config/helpopt.cxx b/svtools/source/config/helpopt.cxx index 87029df284eb..6200fb002e85 100644 --- a/svtools/source/config/helpopt.cxx +++ b/svtools/source/config/helpopt.cxx @@ -47,13 +47,15 @@ enum class HelpProperty HelpTips = 1, Locale = 2, System = 3, - StyleSheet = 4 + StyleSheet = 4, + OfflineHelpPopUp = 5 }; class SvtHelpOptions_Impl : public utl::ConfigItem { bool bExtendedHelp; bool bHelpTips; + bool bOfflineHelpPopUp; OUString aLocale; OUString aSystem; OUString sHelpStyleSheet; @@ -73,7 +75,8 @@ public: bool IsExtendedHelp() const { return bExtendedHelp; } void SetHelpTips( bool b ) { bHelpTips = b; SetModified(); } bool IsHelpTips() const { return bHelpTips; } - + void SetOfflineHelpPopUp(bool b) { bOfflineHelpPopUp = b; SetModified();} + bool IsOfflineHelpPopUp() const { return bOfflineHelpPopUp;} const OUString& GetSystem() const { return aSystem; } const OUString& GetHelpStyleSheet()const{return sHelpStyleSheet;} @@ -90,7 +93,8 @@ Sequence< OUString > const & SvtHelpOptions_Impl::GetPropertyNames() "Tip", "Locale", "System", - "HelpStyleSheet" + "HelpStyleSheet", + "BuiltInHelpNotInstalledPopUp" }; return aNames; @@ -107,6 +111,7 @@ SvtHelpOptions_Impl::SvtHelpOptions_Impl() : ConfigItem( "Office.Common/Help" ) , bExtendedHelp( false ) , bHelpTips( true ) + , bOfflineHelpPopUp( true) { Sequence< OUString > aNames = GetPropertyNames(); Load( aNames ); @@ -148,7 +153,7 @@ void SvtHelpOptions_Impl::Load(const uno::Sequence< OUString>& rPropertyNames) OUString aTmpStr; sal_Int32 nTmpInt = 0; if ( pValues[nProp] >>= bTmp ) - { + { switch ( static_cast< HelpProperty >( lcl_MapPropertyName(rPropertyNames[nProp], aInternalPropertyNames) ) ) { @@ -158,6 +163,9 @@ void SvtHelpOptions_Impl::Load(const uno::Sequence< OUString>& rPropertyNames) case HelpProperty::HelpTips: bHelpTips = bTmp; break; + case HelpProperty::OfflineHelpPopUp: + bOfflineHelpPopUp = bTmp; + break; default: SAL_WARN( "svtools.config", "Wrong Member!" ); break; @@ -225,6 +233,9 @@ void SvtHelpOptions_Impl::ImplCommit() case HelpProperty::StyleSheet: pValues[nProp] <<= sHelpStyleSheet; break; + case HelpProperty::OfflineHelpPopUp: + pValues[nProp] <<= bOfflineHelpPopUp; + break; } } @@ -268,7 +279,15 @@ bool SvtHelpOptions::IsExtendedHelp() const { return pImpl->IsExtendedHelp(); } +void SvtHelpOptions::SetOfflineHelpPopUp (bool b ) +{ + pImpl->SetOfflineHelpPopUp( b ); +} +bool SvtHelpOptions::IsOfflineHelpPopUp() const +{ + return pImpl->IsOfflineHelpPopUp(); +} void SvtHelpOptions::SetHelpTips( bool b ) { pImpl->SetHelpTips( b ); |