Fix #1203 by catching the boost exception thrown on error
authorSoeren Apel <soeren@apelpie.net>
Sat, 26 May 2018 18:49:37 +0000 (20:49 +0200)
committerSoeren Apel <soeren@apelpie.net>
Sat, 26 May 2018 18:49:37 +0000 (20:49 +0200)
pv/views/trace/view.cpp

index 861eac0..8eb3b8d 100644 (file)
@@ -367,10 +367,13 @@ void View::restore_settings(QSettings &settings)
                stringstream ss;
                ss << settings.value("ruler_shift").toString().toStdString();
 
-               boost::archive::text_iarchive ia(ss);
-               ia >> boost::serialization::make_nvp("ruler_shift", shift);
-
-               ruler_shift_ = shift;
+               try {
+                       boost::archive::text_iarchive ia(ss);
+                       ia >> boost::serialization::make_nvp("ruler_shift", shift);
+                       ruler_shift_ = shift;
+               } catch (boost::archive::archive_exception) {
+                       qDebug() << "Could not restore the view ruler shift";
+               }
        }
 
        if (settings.contains("offset")) {
@@ -378,11 +381,14 @@ void View::restore_settings(QSettings &settings)
                stringstream ss;
                ss << settings.value("offset").toString().toStdString();
 
-               boost::archive::text_iarchive ia(ss);
-               ia >> boost::serialization::make_nvp("offset", offset);
-
-               // This also updates ruler_offset_
-               set_offset(offset);
+               try {
+                       boost::archive::text_iarchive ia(ss);
+                       ia >> boost::serialization::make_nvp("offset", offset);
+                       // This also updates ruler_offset_
+                       set_offset(offset);
+               } catch (boost::archive::archive_exception) {
+                       qDebug() << "Could not restore the view offset";
+               }
        }
 
        if (settings.contains("splitter_state"))