Salome HOME
Updated copyright comment
[modules/shaper.git] / src / FiltersPlugin / FiltersPlugin_OnLine.cpp
index d2e4384320237f5a635ad7d221fe6b2bfb27b53d..99fc3e2e1d78b04b118bebc6cec284bfc833fe92 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -31,7 +31,10 @@ static void convertToLines(const AttributeSelectionListPtr& theSelected,
                            std::list<GeomLinePtr>& theLines)
 {
   for (int i = 0; i < theSelected->size(); i++) {
-    GeomShapePtr aCurShape = theSelected->value(i)->value();
+    AttributeSelectionPtr aSel = theSelected->value(i);
+    GeomShapePtr aCurShape = aSel->value();
+    if (!aCurShape)
+      aCurShape = aSel->context()->shape();
     if (aCurShape && aCurShape->isEdge()) {
       GeomLinePtr aLine = aCurShape->edge()->line();
       if (aLine)
@@ -79,20 +82,9 @@ bool FiltersPlugin_OnLine::isOk(const GeomShapePtr& theShape, const ResultPtr&,
   return false;
 }
 
-static std::string XMLRepresentation =
-"<filter id = \"OnLine\">"
-" <multi_selector id=\"OnLine__OnLine\""
-"   label=\"Lines:\""
-"   tooltip=\"Select vertices or segments.\""
-"   type_choice=\"edges\">"
-"   <validator id=\"GeomValidators_ShapeType\" parameters=\"line\"/>"
-" </multi_selector>"
-"</filter>";
-
-
 std::string FiltersPlugin_OnLine::xmlRepresentation() const
 {
-  return XMLRepresentation;
+  return xmlFromFile("filter-OnLine.xml");
 }
 
 void FiltersPlugin_OnLine::initAttributes(ModelAPI_FiltersArgs& theArguments)