From 944575769f9dc93073f1504ce7b93408aefa43c2 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Thu, 1 Jul 2010 06:39:16 +0000
Subject: [PATCH] Fix for FileLoader, catch exception when passed FileHandler
 throws exception

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2488 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/gui/src/file_loader.cc | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/modules/gui/src/file_loader.cc b/modules/gui/src/file_loader.cc
index 31636340e..f8e611f9f 100644
--- a/modules/gui/src/file_loader.cc
+++ b/modules/gui/src/file_loader.cc
@@ -135,21 +135,26 @@ void FileLoader::AddToScene(const QString& filename, gfx::GfxObjP obj)
 gfx::GfxObjP FileLoader::NoHandlerFound(const QString& filename)
 {
   FileTypeDialog dialog(filename);
-  if(dialog.exec()){
-    if(dialog.GetEntityHandler()){
-      return TryLoadEntity(filename, dialog.GetEntityHandler());
-    }
-    if(dialog.GetSequenceHandler()){
-      return TryLoadAlignment(filename, dialog.GetSequenceHandler());
-    }
-    if(dialog.GetSurfaceHandler()){
-      return TryLoadSurface(filename,dialog.GetSurfaceHandler());
-    }
-#if OST_IMG_ENABLED
-    if(dialog.GetMapHandler()){
-      return TryLoadMap(filename,dialog.GetMapHandler());
+  try{
+    if(dialog.exec()){
+      if(dialog.GetEntityHandler()){
+        return TryLoadEntity(filename, dialog.GetEntityHandler());
+      }
+      if(dialog.GetSequenceHandler()){
+        return TryLoadAlignment(filename, dialog.GetSequenceHandler());
+      }
+      if(dialog.GetSurfaceHandler()){
+        return TryLoadSurface(filename,dialog.GetSurfaceHandler());
+      }
+  #if OST_IMG_ENABLED
+      if(dialog.GetMapHandler()){
+        return TryLoadMap(filename,dialog.GetMapHandler());
+      }
+  #endif
     }
-#endif
+  }
+  catch (io::IOException& e) {
+    FileLoader::HandleError(e,IO_LOADING,filename);
   }
   return gfx::GfxObjP();
 }
-- 
GitLab