diff --git a/src/common/filter_parameter/TODO.txt b/src/common/filter_parameter/TODO.txt index b08be56ce..fb4c28738 100644 --- a/src/common/filter_parameter/TODO.txt +++ b/src/common/filter_parameter/TODO.txt @@ -1,3 +1,7 @@ -RichBool constructor - remove unused parameter -RichInt " " " " -RichFloat " " " " +Flying pointers to remove: + meshlab/mainwindow_init.cpp + meshlab/customDialog.cpp + meshlab/filterScriptDialog.cpp + meshlabserver/mainserver.cpp + + diff --git a/src/common/filter_parameter/rich_parameter_set.cpp b/src/common/filter_parameter/rich_parameter_set.cpp index c487e29df..e0324f566 100644 --- a/src/common/filter_parameter/rich_parameter_set.cpp +++ b/src/common/filter_parameter/rich_parameter_set.cpp @@ -106,11 +106,9 @@ RichParameterSet& RichParameterSet::copy( const RichParameterSet& rps ) if (this != &rps) { clear(); - RichParameterCopyConstructor copyvisitor; for(int ii = 0;ii < rps.paramList.size();++ii) { - rps.paramList.at(ii)->accept(copyvisitor); - paramList.push_back(copyvisitor.lastCreated); + paramList.push_back(rps.paramList.at(ii)->clone()); } } return (*this); @@ -121,11 +119,9 @@ RichParameterSet::RichParameterSet( const RichParameterSet& rps ) { clear(); - RichParameterCopyConstructor copyvisitor; for(int ii = 0;ii < rps.paramList.size();++ii) { - rps.paramList.at(ii)->accept(copyvisitor); - paramList.push_back(copyvisitor.lastCreated); + paramList.push_back(rps.paramList.at(ii)->clone()); } } @@ -148,11 +144,9 @@ void RichParameterSet::clear() RichParameterSet& RichParameterSet::join( const RichParameterSet& rps ) { - RichParameterCopyConstructor copyvisitor; for(int ii = 0;ii < rps.paramList.size();++ii) { - rps.paramList.at(ii)->accept(copyvisitor); - paramList.push_back(copyvisitor.lastCreated); + paramList.push_back(rps.paramList.at(ii)->clone()); } return (*this); } diff --git a/src/common/filter_parameter/visitor.cpp b/src/common/filter_parameter/visitor.cpp index 3068ceec2..f4127da79 100644 --- a/src/common/filter_parameter/visitor.cpp +++ b/src/common/filter_parameter/visitor.cpp @@ -1,86 +1,6 @@ #include "visitor.h" #include "rich_parameter.h" -void RichParameterCopyConstructor::visit( RichBool& pd ) -{ - lastCreated = new RichBool(pd); -} - -void RichParameterCopyConstructor::visit( RichInt& pd ) -{ - lastCreated = new RichInt(pd); -} - -void RichParameterCopyConstructor::visit( RichFloat& pd ) -{ - lastCreated = new RichFloat(pd); -} - -void RichParameterCopyConstructor::visit( RichString& pd ) -{ - lastCreated = new RichString(pd); -} - -void RichParameterCopyConstructor::visit( RichMatrix44f& pd ) -{ - lastCreated = new RichMatrix44f(pd); -} - -void RichParameterCopyConstructor::visit( RichPoint3f& pd ) -{ - lastCreated = new RichPoint3f(pd); -} - -void RichParameterCopyConstructor::visit( RichShotf& pd ) -{ - lastCreated = new RichShotf(pd); -} - -void RichParameterCopyConstructor::visit( RichColor& pd ) -{ - lastCreated = new RichColor(pd); -} - - -void RichParameterCopyConstructor::visit( RichAbsPerc& pd ) -{ - lastCreated = new RichAbsPerc(pd); -} - -void RichParameterCopyConstructor::visit( RichEnum& pd ) -{ - lastCreated = new RichEnum(pd); -} - -//void RichParameterCopyConstructor::visit( RichFloatList& /*pd*/ ) -//{ -// /*lastCreated = new FloatListWidget(par,&pd);*/ -//} - -void RichParameterCopyConstructor::visit( RichDynamicFloat& pd ) -{ - lastCreated = new RichDynamicFloat(pd); -} - -void RichParameterCopyConstructor::visit( RichOpenFile& pd ) -{ - lastCreated = new RichOpenFile(pd); -} - -void RichParameterCopyConstructor::visit( RichSaveFile& pd ) -{ - lastCreated = new RichSaveFile(pd); -} - -void RichParameterCopyConstructor::visit( RichMesh& pd ) -{ - lastCreated = new RichMesh(pd); -// if (pd.val != NULL) -// lastCreated = new RichMesh(pd.name(),pd.value().getMesh(),pd.value().getMesh(),pd.meshdoc,pd.fieldDescription(),pd.toolTip()); -// else -// lastCreated = new RichMesh(pd.name(),pd.meshindex); -} - void RichParameterXMLVisitor::fillRichParameterAttribute(const QString& type, const QString& name, const QString& desc, const QString& tooltip) { parElem = docdom.createElement("Param"); diff --git a/src/common/filter_parameter/visitor.h b/src/common/filter_parameter/visitor.h index b66c0ba1e..426f2be05 100644 --- a/src/common/filter_parameter/visitor.h +++ b/src/common/filter_parameter/visitor.h @@ -68,35 +68,6 @@ public: virtual ~Visitor() {} }; -class RichParameterCopyConstructor : public Visitor -{ -public: - RichParameterCopyConstructor() : lastCreated(nullptr){} - - void visit(RichBool& pd); - void visit(RichInt& pd); - void visit(RichFloat& pd); - void visit(RichString& pd); - void visit(RichMatrix44f& pd); - void visit(RichPoint3f& pd); - void visit(RichShotf& pd); - void visit(RichColor& pd); - void visit(RichAbsPerc& pd); - - void visit(RichEnum& pd); - //void visit(RichFloatList& pd); - - void visit(RichDynamicFloat& pd); - - void visit(RichOpenFile& pd); - void visit(RichSaveFile& pd); - void visit(RichMesh& pd); - - ~RichParameterCopyConstructor() {} - - RichParameter* lastCreated; -}; - class RichParameterValueToStringVisitor : public Visitor { public: diff --git a/src/meshlab/customDialog.cpp b/src/meshlab/customDialog.cpp index 89208a86d..bdefcaa19 100644 --- a/src/meshlab/customDialog.cpp +++ b/src/meshlab/customDialog.cpp @@ -131,10 +131,8 @@ SettingDialog::SettingDialog( RichParameter* currentPar, RichParameter* defaultP dialoglayout->addWidget(applybut,1,3); dialoglayout->addWidget(closebut,1,4); - RichParameterCopyConstructor cp; RichParameterSet tmpParSet; - curPar->accept(cp); - tmppar = cp.lastCreated; + tmppar = curPar->clone(); tmpParSet.addParam(tmppar); frame.loadFrameContent(tmpParSet); dialoglayout->addWidget(&frame,0,0,1,5); diff --git a/src/meshlab/filterScriptDialog.cpp b/src/meshlab/filterScriptDialog.cpp index cc03758e5..7d9258d18 100644 --- a/src/meshlab/filterScriptDialog.cpp +++ b/src/meshlab/filterScriptDialog.cpp @@ -224,11 +224,9 @@ void FilterScriptDialog::editOldParameters( const int row ) if(newParameterSet.paramList.size() == oldParameterSet.paramList.size()) { //now set values to be the old values - RichParameterCopyConstructor cc; for(int i = 0; i < newParameterSet.paramList.size(); i++) { - oldParameterSet.paramList[i]->accept(cc); - newParameterSet.paramList[i]->value() = cc.lastCreated->value(); + newParameterSet.paramList[i]->value().set(oldParameterSet.paramList[i]->value()); } } else qDebug() << "the size of the given list is not the same as the filter suggests it should be. your filter script may be out of date, or there is a bug in the filter script class"; diff --git a/src/meshlab/mainwindow_Init.cpp b/src/meshlab/mainwindow_Init.cpp index 0033c41d0..85461dfd6 100644 --- a/src/meshlab/mainwindow_Init.cpp +++ b/src/meshlab/mainwindow_Init.cpp @@ -901,17 +901,16 @@ void MainWindow::loadMeshLabSettings() if (!currentGlobalParams.hasParameter(defaultGlobalParams.paramList.at(ii)->name())) { qDebug("Warning! a default param was not found in the saved settings. This should happen only on the first run..."); - RichParameterCopyConstructor v; - defaultGlobalParams.paramList.at(ii)->accept(v); - currentGlobalParams.paramList.push_back(v.lastCreated); + RichParameter* v = defaultGlobalParams.paramList.at(ii)->clone(); + currentGlobalParams.paramList.push_back(v); QDomDocument doc("MeshLabSettings"); RichParameterXMLVisitor vxml(doc); - v.lastCreated->accept(vxml); + v->accept(vxml); doc.appendChild(vxml.parElem); QString docstring = doc.toString(); QSettings setting; - setting.setValue(v.lastCreated->name(), QVariant(docstring)); + setting.setValue(v->name(), QVariant(docstring)); } } diff --git a/src/meshlabserver/mainserver.cpp b/src/meshlabserver/mainserver.cpp index 25b9c89a9..19891831b 100644 --- a/src/meshlabserver/mainserver.cpp +++ b/src/meshlabserver/mainserver.cpp @@ -609,11 +609,9 @@ public: for(int i = 0; i < required.paramList.size(); i++) { - RichParameterCopyConstructor v; if (!parameterSet.hasParameter(required.paramList[i]->name())) { - required.paramList[i]->accept(v); - parameterSet.addParam(v.lastCreated); + parameterSet.addParam(required.paramList[i]->clone()); } assert(parameterSet.paramList.size() == required.paramList.size()); RichParameter* parameter = parameterSet.paramList[i];