OSDN Git Service

オブジェクトリロード時にオブジェクトツリーの順序を維持するように修正
authorqw_fuku <fkhideaki@gmail.com>
Sun, 11 Sep 2016 12:34:07 +0000 (21:34 +0900)
committerqw_fuku <fkhideaki@gmail.com>
Sun, 11 Sep 2016 12:34:07 +0000 (21:34 +0900)
Src/LibQtGeoViewerCore/SceneMain.cpp

index ed031f7..bfa455b 100644 (file)
@@ -412,22 +412,28 @@ bool SceneMain::ReloadObject(GeomObject* obj)
        geom::GeomFileFormat fmt = obj->m_FileFormat;
        const std::string filename = obj->m_FilePath;
 
+       std::auto_ptr<GeomFileReader> reader;
+       reader.reset(GeomReaderBuilder::Create(fmt));
+       if (reader.get() == NULL)
+               return false;
+
+       GeomObject* geom = reader->LoadGeom(*this, filename);
+       if (geom == NULL)
+               return false;
+
        boost::ptr_vector<GeomObject>::iterator i;
+
        i = m_Objects.begin();
        i += idx;
        m_Objects.erase(i);
 
-       m_Sels.ClearSelect();
-
-       std::auto_ptr<GeomFileReader> reader;
-       reader.reset(GeomReaderBuilder::Create(fmt));
-       if (reader.get() == NULL)
-               return false;
+       i = m_Objects.begin();
+       i += idx;
+       m_Objects.insert(i, geom);
 
        RefreshObjectIndex();
-
-       if (!reader->Load(*this, filename))
-               return false;
+       UpdateTransform();
+       ReportDoneEditGeometry();
 
        UpdateCrossSectionIfRequire(false);