svx/source/dialog/SafeModeDialog.cxx |   39 ++++++++++++++++++++++++++++++++++-
 svx/source/dialog/SafeModeDialog.hxx |    4 +++
 svx/source/dialog/crashreportdlg.cxx |   22 +++++++++++--------
 svx/source/dialog/crashreportdlg.hxx |    2 +
 4 files changed, 57 insertions(+), 10 deletions(-)

New commits:
commit a8030ce8be1c6d7dca9159374fc875c7165b6e41
Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
Date:   Wed Oct 12 15:27:14 2016 +0200

    CrashReportDialog: Enter safemode only after sending crash report
    
    Change-Id: I2c78431f839050ca74b082f7c790d0c59fba6513

diff --git a/svx/source/dialog/crashreportdlg.cxx 
b/svx/source/dialog/crashreportdlg.cxx
index 1692a44..ed56b67 100644
--- a/svx/source/dialog/crashreportdlg.cxx
+++ b/svx/source/dialog/crashreportdlg.cxx
@@ -60,6 +60,19 @@ void CrashReportDialog::dispose()
     Dialog::dispose();
 }
 
+bool CrashReportDialog::Close()
+{
+    // Check whether to go to safe mode
+    if (mpCBSafeMode->IsChecked())
+    {
+        sfx2::SafeMode::putFlag();
+        
css::task::OfficeRestartManager::get(comphelper::getProcessComponentContext())->requestRestart(
+            css::uno::Reference< css::task::XInteractionHandler >());
+    }
+
+    return Dialog::Close();
+}
+
 IMPL_LINK(CrashReportDialog, BtnHdl, Button*, pBtn, void)
 {
     if (pBtn == mpBtnSend.get())
@@ -101,15 +114,6 @@ IMPL_LINK(CrashReportDialog, BtnHdl, Button*, pBtn, void)
     {
         Close();
     }
-
-    // Check whether to go to safe mode
-    if (mpCBSafeMode->IsChecked())
-    {
-        sfx2::SafeMode::putFlag();
-        css::uno::Reference< css::uno::XComponentContext > xContext = 
comphelper::getProcessComponentContext();
-        css::task::OfficeRestartManager::get(xContext)->requestRestart(
-            css::uno::Reference< css::task::XInteractionHandler >());
-    }
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/crashreportdlg.hxx 
b/svx/source/dialog/crashreportdlg.hxx
index ecdd445..b001436 100644
--- a/svx/source/dialog/crashreportdlg.hxx
+++ b/svx/source/dialog/crashreportdlg.hxx
@@ -26,6 +26,8 @@ public:
 
     virtual void dispose() override;
 
+    virtual bool Close() override;
+
 private:
 
     VclPtr<Button> mpBtnSend;
commit a9b56780cec06ca9545b2ba554e405fe061fed57
Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
Date:   Wed Oct 12 13:35:52 2016 +0200

    SafeModeDialog: Enable restart button only for active selections
    
    Change-Id: Ic5c9d1a0001e8324aa007c3f7bc0e58e13afbbbf

diff --git a/svx/source/dialog/SafeModeDialog.cxx 
b/svx/source/dialog/SafeModeDialog.cxx
index 46e9d2f..1da58a0 100644
--- a/svx/source/dialog/SafeModeDialog.cxx
+++ b/svx/source/dialog/SafeModeDialog.cxx
@@ -35,6 +35,13 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent):
     mpBtnContinue->SetClickHdl(LINK(this, SafeModeDialog, BtnHdl));
     mpBtnQuit->SetClickHdl(LINK(this, SafeModeDialog, BtnHdl));
     mpBtnRestart->SetClickHdl(LINK(this, SafeModeDialog, BtnHdl));
+
+    mpCBCustomizations->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl));
+    mpCBExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl));
+    mpCBFull->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl));
+
+    // Disable restart btn until some checkbox is active
+    mpBtnRestart->Disable();
 }
 
 SafeModeDialog::~SafeModeDialog()
@@ -94,4 +101,10 @@ IMPL_LINK(SafeModeDialog, BtnHdl, Button*, pBtn, void)
     }
 }
 
+IMPL_LINK(SafeModeDialog, CheckBoxHdl, CheckBox&, /*pCheckBox*/, void)
+{
+    bool bEnable = mpCBCustomizations->IsChecked() || 
mpCBExtensions->IsChecked() || mpCBFull->IsChecked();
+    mpBtnRestart->Enable(bEnable);
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/SafeModeDialog.hxx 
b/svx/source/dialog/SafeModeDialog.hxx
index 44e6b18..dd0036e 100644
--- a/svx/source/dialog/SafeModeDialog.hxx
+++ b/svx/source/dialog/SafeModeDialog.hxx
@@ -41,6 +41,7 @@ private:
     static void terminateOffice();
     static void applyChanges();
 
+    DECL_LINK(CheckBoxHdl, CheckBox&, void);
     DECL_LINK(BtnHdl, Button*, void);
 };
 
commit 9e30dcd46d2ad31be6a9dcafaa6505e8301b8694
Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
Date:   Wed Oct 12 13:26:10 2016 +0200

    SafeModeDialog: Handle restart button event
    
    Change-Id: I6b55f79ea153aaeb8b67879bdafb6774fd91455c

diff --git a/svx/source/dialog/SafeModeDialog.cxx 
b/svx/source/dialog/SafeModeDialog.cxx
index 9358177..46e9d2f 100644
--- a/svx/source/dialog/SafeModeDialog.cxx
+++ b/svx/source/dialog/SafeModeDialog.cxx
@@ -17,6 +17,8 @@
 
 #include <com/sun/star/frame/Desktop.hpp>
 #include <com/sun/star/frame/XDesktop2.hpp>
+#include <com/sun/star/task/OfficeRestartManager.hpp>
+#include <com/sun/star/task/XInteractionHandler.hpp>
 
 using namespace css;
 
@@ -66,6 +68,15 @@ void SafeModeDialog::terminateOffice()
     xDesktop->terminate();
 }
 
+void SafeModeDialog::applyChanges()
+{
+    // TODO: Apply apply changes
+
+    // Then restart
+    
css::task::OfficeRestartManager::get(comphelper::getProcessComponentContext())->requestRestart(
+        css::uno::Reference< css::task::XInteractionHandler >());
+}
+
 IMPL_LINK(SafeModeDialog, BtnHdl, Button*, pBtn, void)
 {
     if (pBtn == mpBtnContinue.get())
@@ -79,6 +90,7 @@ IMPL_LINK(SafeModeDialog, BtnHdl, Button*, pBtn, void)
     else if (pBtn == mpBtnRestart.get())
     {
         Close();
+        applyChanges();
     }
 }
 
diff --git a/svx/source/dialog/SafeModeDialog.hxx 
b/svx/source/dialog/SafeModeDialog.hxx
index d91b50d..44e6b18 100644
--- a/svx/source/dialog/SafeModeDialog.hxx
+++ b/svx/source/dialog/SafeModeDialog.hxx
@@ -39,6 +39,7 @@ private:
     VclPtr<CheckBox> mpCBFull;
 
     static void terminateOffice();
+    static void applyChanges();
 
     DECL_LINK(BtnHdl, Button*, void);
 };
commit d1f01dd44813af7a10523b4d4a5171bcb12a8f5d
Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
Date:   Wed Oct 12 13:01:15 2016 +0200

    SafeModeDialog: Handle quit button event
    
    Change-Id: Id24e9cb526bc0143a663e8d39a5dda59f929f8bf

diff --git a/svx/source/dialog/SafeModeDialog.cxx 
b/svx/source/dialog/SafeModeDialog.cxx
index 549a62f..9358177 100644
--- a/svx/source/dialog/SafeModeDialog.cxx
+++ b/svx/source/dialog/SafeModeDialog.cxx
@@ -12,8 +12,14 @@
 #include <config_folders.h>
 #include <rtl/bootstrap.hxx>
 #include <osl/file.hxx>
+#include <comphelper/processfactory.hxx>
 #include <sfx2/safemode.hxx>
 
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XDesktop2.hpp>
+
+using namespace css;
+
 SafeModeDialog::SafeModeDialog(vcl::Window* pParent):
     Dialog(pParent, "SafeModeDialog", "svx/ui/safemodedialog.ui")
 {
@@ -54,6 +60,12 @@ bool SafeModeDialog::Close()
     return Dialog::Close();
 }
 
+void SafeModeDialog::terminateOffice()
+{
+    uno::Reference<frame::XDesktop2> xDesktop = frame::Desktop::create( 
comphelper::getProcessComponentContext() );
+    xDesktop->terminate();
+}
+
 IMPL_LINK(SafeModeDialog, BtnHdl, Button*, pBtn, void)
 {
     if (pBtn == mpBtnContinue.get())
@@ -62,7 +74,7 @@ IMPL_LINK(SafeModeDialog, BtnHdl, Button*, pBtn, void)
     }
     else if (pBtn == mpBtnQuit.get())
     {
-        Close();
+        terminateOffice();
     }
     else if (pBtn == mpBtnRestart.get())
     {
diff --git a/svx/source/dialog/SafeModeDialog.hxx 
b/svx/source/dialog/SafeModeDialog.hxx
index 41acc1f..d91b50d 100644
--- a/svx/source/dialog/SafeModeDialog.hxx
+++ b/svx/source/dialog/SafeModeDialog.hxx
@@ -38,6 +38,8 @@ private:
     VclPtr<CheckBox> mpCBCustomizations;
     VclPtr<CheckBox> mpCBFull;
 
+    static void terminateOffice();
+
     DECL_LINK(BtnHdl, Button*, void);
 };
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to