From 78bb8a028232bad051c57de738752bf9baefe1e3 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 14 Dec 2021 11:44:02 +0100 Subject: [PATCH] Points: implement helper method to reduce code duplication --- src/Mod/Points/App/AppPointsPy.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Mod/Points/App/AppPointsPy.cpp b/src/Mod/Points/App/AppPointsPy.cpp index 57c1b9050c..4f0d37492c 100644 --- a/src/Mod/Points/App/AppPointsPy.cpp +++ b/src/Mod/Points/App/AppPointsPy.cpp @@ -67,6 +67,16 @@ public: virtual ~Module() {} private: + std::tuple readE57Settings() const + { + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Points/E57"); + bool useColor = hGrp->GetBool("UseColor", true); + bool checkState = hGrp->GetBool("CheckInvalidState", true); + float minDistance = hGrp->GetFloat("MinDistance", -1.); + + return std::make_tuple(useColor, checkState, minDistance); + } Py::Object open(const Py::Tuple& args) { char* Name; @@ -88,12 +98,8 @@ private: reader.reset(new AscReader); } else if (file.hasExtension("e57")) { - Base::Reference hGrp = App::GetApplication().GetUserParameter() - .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Points/E57"); - bool useColor = hGrp->GetBool("UseColor", true); - bool checkState = hGrp->GetBool("CheckInvalidState", true); - float minDistance = hGrp->GetFloat("MinDistance", -1.); - reader.reset(new E57Reader(useColor, checkState, minDistance)); + auto setting = readE57Settings(); + reader.reset(new E57Reader(std::get<0>(setting), std::get<1>(setting), std::get<2>(setting))); } else if (file.hasExtension("ply")) { reader.reset(new PlyReader); @@ -208,12 +214,8 @@ private: reader.reset(new AscReader); } else if (file.hasExtension("e57")) { - Base::Reference hGrp = App::GetApplication().GetUserParameter() - .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Points/E57"); - bool useColor = hGrp->GetBool("UseColor", true); - bool checkState = hGrp->GetBool("CheckInvalidState", true); - float minDistance = hGrp->GetFloat("MinDistance", -1.); - reader.reset(new E57Reader(useColor, checkState, minDistance)); + auto setting = readE57Settings(); + reader.reset(new E57Reader(std::get<0>(setting), std::get<1>(setting), std::get<2>(setting))); } else if (file.hasExtension("ply")) { reader.reset(new PlyReader);