Hello,

 could somebody review the attached patch for bnc#689116? When e.g. Writer is 
not installed (which can happen with split rpms) and one tries to open a text 
document, LO simply quits without saying anything. Guessing from the 
surrounding code it's correct, but I'd prefer it to be checked as I have no 
clue about LO UI string handling or error handling (and I bow to the 
creativitity of whoever has created this complex error handling system).

-- 
 Lubos Lunak
 l.lu...@suse.cz
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
index 868dfc1..b4186d3 100644
--- a/uui/source/iahndl.cxx
+++ b/uui/source/iahndl.cxx
@@ -67,6 +67,7 @@
 #include "com/sun/star/ucb/XInteractionReplaceExistingData.hpp"
 #include "com/sun/star/ucb/XInteractionSupplyName.hpp"
 #include "com/sun/star/xforms/InvalidDataOnSubmitException.hpp"
+#include "com/sun/star/loader/CannotActivateFactoryException.hpp"
 
 #include "osl/conditn.hxx"
 #include "tools/rcid.h" // RSC_STRING
@@ -857,6 +858,23 @@ UUIInteractionHelper::handleRequest_impl(
             return true;
         }
 
+        loader::CannotActivateFactoryException aCannotActivateFactoryException;
+        if (aAnyRequest >>= aCannotActivateFactoryException)
+        {
+            ErrCode nErrorCode = ERRCODE_UUI_CANNOT_ACTIVATE_FACTORY;
+            std::vector< rtl::OUString > aArguments;
+            aArguments.push_back( aCannotActivateFactoryException.Message );
+
+            handleErrorHandlerRequest( task::InteractionClassification_ERROR,
+                                       nErrorCode,
+                                       aArguments,
+                                       rRequest->getContinuations(),
+                                       bObtainErrorStringOnly,
+                                       bHasErrorString,
+                                       rErrorString );
+            return true;
+        }
+
 
         ///////////////////////////////////////////////////////////////////
         // Handle requests which do not have a plain string representation.
diff --git a/uui/source/ids.hrc b/uui/source/ids.hrc
index 23e377f..4f7918b 100755
--- a/uui/source/ids.hrc
+++ b/uui/source/ids.hrc
@@ -160,6 +160,7 @@
 #define ERRCODE_UUI_LOCKING_LOCKED_SELF                         (ERRCODE_AREA_UUI + 60)
 #define ERRCODE_UUI_LOCKING_NOT_LOCKED                          (ERRCODE_AREA_UUI + 61)
 #define ERRCODE_UUI_LOCKING_LOCK_EXPIRED                        (ERRCODE_AREA_UUI + 62)
+#define ERRCODE_UUI_CANNOT_ACTIVATE_FACTORY                     (ERRCODE_AREA_UUI + 63)
 
 #define ERRCODE_AREA_UUI_UNKNOWNAUTH    25000
 #define SSLWARN_TYPE_DOMAINMISMATCH     10
diff --git a/uui/source/ids.src b/uui/source/ids.src
index efff262..45bbeca 100644
--- a/uui/source/ids.src
+++ b/uui/source/ids.src
@@ -403,6 +403,11 @@ Resource RID_UUI_ERRHDL
         Text [ en-US ] = "Security Warning: Server Certificate Invalid";
     };
 
+    String (ERRCODE_UUI_CANNOT_ACTIVATE_FACTORY & ERRCODE_RES_MASK)
+    {
+        Text [ en-US ] = "Component cannot be loaded, possibly broken or incomplete installation.\nFull error message:\n\n $(ARG1).";
+    };
+
 
 };
 
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to