Some more use of boost::filesystem::path; catch exceptions in OnInit().
authorCarl Hetherington <cth@carlh.net>
Sat, 20 Jul 2013 15:21:42 +0000 (16:21 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 20 Jul 2013 15:21:42 +0000 (16:21 +0100)
src/lib/exceptions.cc
src/lib/exceptions.h
src/tools/dcpomatic.cc

index bc6ac27c872a08c04c4de447a37f6f0cbcaedb0c..8144f41b999690f526db309a4102547f4e69a05c 100644 (file)
 using std::string;
 
 /** @param f File that we were trying to open */
-OpenFileError::OpenFileError (string f)
-       : FileError (String::compose (_("could not open file %1"), f), f)
+OpenFileError::OpenFileError (boost::filesystem::path f)
+       : FileError (String::compose (_("could not open file %1"), f.string()), f)
 {
 
 }
 
 /** @param f File that we were trying to create */
-CreateFileError::CreateFileError (string f)
-       : FileError (String::compose (_("could not create file %1"), f), f)
+CreateFileError::CreateFileError (boost::filesystem::path f)
+       : FileError (String::compose (_("could not create file %1"), f.string()), f)
 {
 
 }
 
-ReadFileError::ReadFileError (string f, int e)
-       : FileError ("", f)
+ReadFileError::ReadFileError (boost::filesystem::path f, int e)
+       : FileError (String::compose (_("could not read from file %1 (%2)"), f.string(), strerror (e)), f)
 {
-       _what = String::compose (_("could not read from file %1 (%2)"), f, strerror (e));
+
 }
 
-WriteFileError::WriteFileError (std::string f, int e)
-       : FileError ("", f)
+WriteFileError::WriteFileError (boost::filesystem::path f, int e)
+       : FileError (String::compose (_("could not write to file %1 (%2)"), f.string(), strerror (e)), f)
 {
-       _what = String::compose (_("could not write to file %1 (%2)"), f, strerror (e));
+       
 }
 
 MissingSettingError::MissingSettingError (string s)
index 6bad7c9245bbb8ae833e4202841a08a3ccfc2896..f587f055fde8fa87fffc5e6f66f69ce9ac8b4365 100644 (file)
@@ -27,6 +27,7 @@
 #include <stdexcept>
 #include <cstring>
 #include <boost/exception/all.hpp>
+#include <boost/filesystem.hpp>
 #include <boost/thread.hpp>
 extern "C" {
 #include <libavutil/pixfmt.h>
@@ -87,7 +88,7 @@ public:
        /** @param m Error message.
         *  @param f Name of the file that this exception concerns.
         */
-       FileError (std::string m, std::string f)
+       FileError (std::string m, boost::filesystem::path f)
                : StringError (m)
                , _file (f)
        {}
@@ -95,13 +96,13 @@ public:
        virtual ~FileError () throw () {}
 
        /** @return name of the file that this exception concerns */
-       std::string file () const {
+       boost::filesystem::path file () const {
                return _file;
        }
 
 private:
        /** name of the file that this exception concerns */
-       std::string _file;
+       boost::filesystem::path _file;
 };
        
 
@@ -112,8 +113,7 @@ class OpenFileError : public FileError
 {
 public:
        /** @param f File that we were trying to open */
-       /* XXX: should be boost::filesystem::path */
-       OpenFileError (std::string f);
+       OpenFileError (boost::filesystem::path f);
 };
 
 /** @class CreateFileError.
@@ -123,7 +123,7 @@ class CreateFileError : public FileError
 {
 public:
        /** @param f File that we were trying to create */
-       CreateFileError (std::string f);
+       CreateFileError (boost::filesystem::path f);
 };
 
 
@@ -136,7 +136,7 @@ public:
        /** @param f File that we were trying to read from.
         *  @param e errno value, or 0.
         */
-       ReadFileError (std::string f, int e = 0);
+       ReadFileError (boost::filesystem::path f, int e = 0);
 };
 
 /** @class WriteFileError.
@@ -148,7 +148,7 @@ public:
        /** @param f File that we were trying to write to.
         *  @param e errno value, or 0.
         */
-       WriteFileError (std::string f, int e);
+       WriteFileError (boost::filesystem::path f, int e);
 };
 
 /** @class SettingError.
index afde7e6c5eb5b0df74d12634728f31773cede09c..e6392f551836d8b6875eb3702a80c799fb3affc4 100644 (file)
@@ -437,6 +437,7 @@ static const wxCmdLineEntryDesc command_line_description[] = {
 class App : public wxApp
 {
        bool OnInit ()
+       try
        {
                if (!wxApp::OnInit()) {
                        return false;
@@ -499,6 +500,10 @@ class App : public wxApp
 
                return true;
        }
+       catch (exception& e)
+       {
+               error_dialog (0, wxString::Format ("DCP-o-matic could not start: %s", e.what ()));
+       }
 
        void OnInitCmdLine (wxCmdLineParser& parser)
        {