12#include <osl/file.hxx>
20#include <svx/strings.hrc>
23#include <com/sun/star/task/OfficeRestartManager.hpp>
24#include <com/sun/star/task/XInteractionHandler.hpp>
29 : GenericDialogController(pParent,
"svx/ui/safemodedialog.ui",
"SafeModeDialog")
30 , mxBtnContinue(m_xBuilder->weld_button(
"btn_continue"))
31 , mxBtnRestart(m_xBuilder->weld_button(
"btn_restart"))
32 , mxBtnApply(m_xBuilder->weld_button(
"btn_apply"))
33 , mxBoxRestore(m_xBuilder->weld_container(
"group_restore"))
34 , mxBoxConfigure(m_xBuilder->weld_container(
"group_configure"))
35 , mxBoxDeinstall(m_xBuilder->weld_container(
"group_deinstall"))
36 , mxBoxReset(m_xBuilder->weld_container(
"group_reset"))
37 , mxRadioRestore(m_xBuilder->weld_radio_button(
"radio_restore"))
38 , mxRadioConfigure(m_xBuilder->weld_radio_button(
"radio_configure"))
39 , mxRadioExtensions(m_xBuilder->weld_radio_button(
"radio_extensions"))
40 , mxRadioReset(m_xBuilder->weld_radio_button(
"radio_reset"))
41 , mxCBCheckProfilesafeConfig(m_xBuilder->weld_check_button(
"check_profilesafe_config"))
42 , mxCBCheckProfilesafeExtensions(m_xBuilder->weld_check_button(
"check_profilesafe_extensions"))
43 , mxCBDisableAllExtensions(m_xBuilder->weld_check_button(
"check_disable_all_extensions"))
44 , mxCBDeinstallUserExtensions(m_xBuilder->weld_check_button(
"check_deinstall_user_extensions"))
45 , mxCBResetSharedExtensions(m_xBuilder->weld_check_button(
"check_reset_shared_extensions"))
46 , mxCBResetBundledExtensions(m_xBuilder->weld_check_button(
"check_reset_bundled_extensions"))
47 , mxCBDisableHWAcceleration(m_xBuilder->weld_check_button(
"check_disable_hw_acceleration"))
48 , mxCBResetCustomizations(m_xBuilder->weld_check_button(
"check_reset_customizations"))
49 , mxCBResetWholeUserProfile(m_xBuilder->weld_check_button(
"check_reset_whole_userprofile"))
50 , mxBugLink(m_xBuilder->weld_link_button(
"linkbutton_bugs"))
51 , mxUserProfileLink(m_xBuilder->weld_link_button(
"linkbutton_profile"))
52 , mxBtnCreateZip(m_xBuilder->weld_button(
"btn_create_zip"))
53 , mxExpander(m_xBuilder->weld_expander(
"expander"))
192 css::uno::Reference< css::task::XInteractionHandler >());
197 if (!rButton.get_active())
199 if (mxRadioRestore->get_active())
202 mxBoxRestore->set_sensitive(
true);
204 enableDisableWidgets();
206 mxBoxReset->set_sensitive(
false);
207 mxBoxConfigure->set_sensitive(
false);
208 mxBoxDeinstall->set_sensitive(
false);
210 else if (mxRadioConfigure->get_active())
213 mxBoxConfigure->set_sensitive(
true);
215 enableDisableWidgets();
217 mxBoxRestore->set_sensitive(
false);
218 mxBoxReset->set_sensitive(
false);
219 mxBoxDeinstall->set_sensitive(
false);
222 else if (mxRadioExtensions->get_active())
225 mxBoxDeinstall->set_sensitive(
true);
227 enableDisableWidgets();
229 mxBoxRestore->set_sensitive(
false);
230 mxBoxConfigure->set_sensitive(
false);
231 mxBoxReset->set_sensitive(
false);
233 else if (mxRadioReset->get_active())
236 mxBoxReset->set_sensitive(
true);
238 enableDisableWidgets();
240 mxBoxConfigure->set_sensitive(
false);
241 mxBoxRestore->set_sensitive(
false);
242 mxBoxDeinstall->set_sensitive(
false);
248 if (&rBtn == mxBtnContinue.get())
252 else if (&rBtn == mxBtnRestart.get())
257 css::task::OfficeRestartManager::get(xContext)->requestRestart(
258 css::uno::Reference< css::task::XInteractionHandler >());
260 else if (&rBtn == mxBtnApply.get())
271 osl::File::remove(zipFileURL);
278 catch (
const uno::Exception &)
281 VclMessageType::Warning, VclButtonsType::Ok,
282 SvxResId(RID_SVXSTR_SAFEMODE_ZIP_FAILURE)));
294 mxCBCheckProfilesafeConfig->get_active() ||
295 mxCBCheckProfilesafeExtensions->get_active() ||
296 mxCBDisableAllExtensions->get_active() ||
297 mxCBDeinstallUserExtensions->get_active() ||
298 mxCBResetSharedExtensions->get_active() ||
299 mxCBResetBundledExtensions->get_active() ||
300 mxCBDisableHWAcceleration->get_active() ||
301 mxCBResetCustomizations->get_active() ||
302 mxCBResetWholeUserProfile->get_active());
304 mxBtnApply->set_sensitive(bEnable);
IMPL_LINK(SafeModeDialog, RadioBtnHdl, weld::Toggleable &, rButton, void)
Reference< XExecutableDialog > m_xDialog
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, bool bMobile=false)
std::unique_ptr< weld::RadioButton > mxRadioConfigure
std::unique_ptr< weld::Button > mxBtnContinue
std::unique_ptr< weld::Button > mxBtnApply
SafeModeDialog(weld::Window *pParent)
std::unique_ptr< weld::CheckButton > mxCBResetWholeUserProfile
std::unique_ptr< weld::CheckButton > mxCBDeinstallUserExtensions
std::unique_ptr< weld::CheckButton > mxCBResetCustomizations
std::unique_ptr< weld::CheckButton > mxCBCheckProfilesafeConfig
std::unique_ptr< weld::LinkButton > mxUserProfileLink
std::unique_ptr< weld::CheckButton > mxCBResetBundledExtensions
std::unique_ptr< weld::RadioButton > mxRadioRestore
virtual ~SafeModeDialog() override
virtual short run() override
std::unique_ptr< weld::LinkButton > mxBugLink
std::unique_ptr< weld::RadioButton > mxRadioExtensions
comphelper::BackupFileHelper maBackupFileHelper
std::unique_ptr< weld::CheckButton > mxCBCheckProfilesafeExtensions
std::unique_ptr< weld::Button > mxBtnCreateZip
std::unique_ptr< weld::Button > mxBtnRestart
std::unique_ptr< weld::RadioButton > mxRadioReset
void enableDisableWidgets()
std::unique_ptr< weld::CheckButton > mxCBDisableHWAcceleration
std::unique_ptr< weld::CheckButton > mxCBDisableAllExtensions
std::unique_ptr< weld::CheckButton > mxCBResetSharedExtensions
static void tryResetSharedExtensions()
static void tryResetBundledExtensions()
static bool isTryResetCustomizationsPossible()
static const OUString & getUserProfileWorkURL()
static bool isTryDisableAllExtensionsPossible()
static bool isTryResetBundledExtensionsPossible()
static void tryDisableHWAcceleration()
static void tryDisableAllExtensions()
bool isPopPossibleExtensionInfo() const
static void tryDeinstallUserExtensions()
static void tryResetUserProfile()
void tryPopExtensionInfo()
static bool isTryResetSharedExtensionsPossible()
static const OUString & getUserProfileURL()
static bool isTryDeinstallUserExtensionsPossible()
static void tryResetCustomizations()
static bool putRestartFlag()
static OUString getUILocale()
static OUString getAboutBoxProductVersion()
void addFolderWithContent(css::uno::Reference< css::uno::XInterface > const &xRootFolder, const OUString &rDirURL)
css::uno::Reference< css::uno::XInterface > & getRootFolder()
std::shared_ptr< weld::Dialog > m_xDialog
OUString SvxResId(TranslateId aId)
#define LINK(Instance, Class, Member)
Reference< XComponentContext > getProcessComponentContext()