From 3fd2941c09c9b131197bf5d97fdbab2ff84d3bd9 Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Mon, 31 May 2021 18:10:26 +0200 Subject: [PATCH] better load/save raster management --- src/common/utilities/load_save.cpp | 11 ++--------- src/common/utilities/load_save.h | 2 +- src/meshlab/mainwindow_RunTime.cpp | 6 ++++-- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/common/utilities/load_save.cpp b/src/common/utilities/load_save.cpp index 7e3297f7a..a619e360b 100644 --- a/src/common/utilities/load_save.cpp +++ b/src/common/utilities/load_save.cpp @@ -181,7 +181,7 @@ void reloadMesh( loadMesh(filename, ioPlugin, prePar, meshList, masks, cb); } -void loadRaster(const QString& filename, MeshDocument& md, vcg::CallBackPos* cb) +void loadRaster(const QString& filename, RasterModel& rm, vcg::CallBackPos* cb) { QFileInfo fi(filename); QString extension = fi.suffix(); @@ -193,14 +193,7 @@ void loadRaster(const QString& filename, MeshDocument& md, vcg::CallBackPos* cb) "Raster " + filename + " cannot be opened. Your MeshLab version " "has not plugin to read " + extension + " file format."); - RasterModel *rm = md.addNewRaster(); - try { - ioPlugin->openRaster(extension, filename, *rm, cb); - } - catch(const MLException& e){ - md.delRaster(rm); - throw e; - } + ioPlugin->openRaster(extension, filename, rm, cb); } } diff --git a/src/common/utilities/load_save.h b/src/common/utilities/load_save.h index 7d9128aa6..0daf6b024 100644 --- a/src/common/utilities/load_save.h +++ b/src/common/utilities/load_save.h @@ -54,7 +54,7 @@ void reloadMesh( void loadRaster( const QString& filename, - MeshDocument& md, + RasterModel& rm, vcg::CallBackPos *cb); } diff --git a/src/meshlab/mainwindow_RunTime.cpp b/src/meshlab/mainwindow_RunTime.cpp index 54bdab3d9..1138670a9 100644 --- a/src/meshlab/mainwindow_RunTime.cpp +++ b/src/meshlab/mainwindow_RunTime.cpp @@ -2125,11 +2125,12 @@ bool MainWindow::importRaster(const QString& fileImg) allFileTime.start(); for(const QString& fileName : fileNameList) { - + RasterModel *rm = nullptr; try { QElapsedTimer t; t.start(); - meshlab::loadRaster(fileName, *meshDoc(), QCallBack); + rm = meshDoc()->addNewRaster(); + meshlab::loadRaster(fileName, *rm, QCallBack); GLA()->Logf(0, "Opened raster %s in %i msec", qUtf8Printable(fileName), t.elapsed()); GLA()->resetTrackBall(); GLA()->fov = meshDoc()->rm()->shot.GetFovFromFocal(); @@ -2140,6 +2141,7 @@ bool MainWindow::importRaster(const QString& fileImg) GLA()->Logf(0,"All files opened in %i msec",allFileTime.elapsed()); } catch(const MLException& e){ + meshDoc()->delRaster(rm); QMessageBox::warning( this, tr("Opening Failure"),