Commit 552e1c66 authored by Bob Obara's avatar Bob Obara

ENH: Adding Model Entity Centric Attribute View

- Added new ModelEntityAttribute View support (adapted from release branch)
- PersistentObject: added name() method
- atAttribute: now has support for Item::ReferenceType
- Removed old selection manager stuff from qtBaseView
- qtComponentItem: Fixed bug related to extensible items in synopsis method
- Attribute XML Parsers replaced support for model entity items from using reference items to use component items
- Resource:: added a findAs method that can be used to further specialize the results of a query search based on the
container type
- Moved all UI icons into their own directory and removed old qrc file that was redundant
- Fixed potential crash in qtSelectorView when a child view type can not be found
parent 44ff615b
......@@ -69,7 +69,7 @@ public:
}
// NOTE: To rename an attribute use the collection!
const std::string& name() const { return m_name; }
std::string name() const override { return m_name; }
const std::string& type() const;
std::vector<std::string> types() const;
......
......@@ -102,6 +102,9 @@ bool pqSMTKAttributePanel::displayResource(smtk::attribute::CollectionPtr rsrc)
}
m_attrUIMgr = new smtk::extension::qtUIManager(rsrc);
m_attrUIMgr->setSelection(m_seln); // NB: m_seln may be null.
m_attrUIMgr->setSelectionBit(1); // ToDo: should be set by application
smtk::view::ViewPtr view = rsrc ? rsrc->findTopLevelView() : nullptr;
if (view)
{
......@@ -124,7 +127,6 @@ bool pqSMTKAttributePanel::displayResource(smtk::attribute::CollectionPtr rsrc)
}
});
}
// m_attrUIMgr->setSelection(m_seln); // NB: m_seln may be null.
return didDisplay;
}
......
......@@ -18,6 +18,7 @@ set(QAttrLibSrcs
qtGroupView.cxx
qtAttributeView.cxx
qtInstancedView.cxx
qtModelEntityAttributeView.cxx
qtReferenceItem.cxx
qtOperationView.cxx
#qtModelView.cxx
......@@ -76,6 +77,7 @@ set(QAttrLibMocHeaders
qtGroupView.h
qtAttributeView.h
qtInstancedView.h
qtModelEntityAttributeView.h
qtReferenceItem.h
qtReferenceItemData.h
qtOperationView.h
......@@ -120,7 +122,6 @@ qt5_wrap_cpp(MOC_BUILT_SOURCES ${QAttrLibMocHeaders})
qt5_wrap_ui(SMTKQTEXT_UI_BUILT_SOURCES ${QAttrLibUIs})
qt5_add_resources(RCS_RESOURCES
qtDescriptivePhraseModelIcons.qrc
qtEntityItemModelIcons.qrc
qtAttributeIcons.qrc
)
......
......@@ -23,7 +23,7 @@
#include "smtk/attribute/IntItem.h"
#include "smtk/attribute/MeshItem.h"
#include "smtk/attribute/MeshSelectionItem.h"
#include "smtk/attribute/ModelEntityItem.h"
#include "smtk/attribute/ReferenceItem.h"
#include "smtk/attribute/ValueItem.h"
#include "smtk/attribute/VoidItem.h"
......@@ -241,6 +241,10 @@ qtItem* qtAttribute::createItem(
aItem = qtAttribute::s_factory->createComponentItemWidget(
smtk::dynamic_pointer_cast<ComponentItem>(item), pW, bview, enVectorItemOrient);
break;
/* case smtk::attribute::Item::ReferenceType:
aItem = qtAttribute::s_factory->createReferenceItemWidget(
smtk::dynamic_pointer_cast<ReferenceItem>(item), pW, bview, enVectorItemOrient);
*/ break;
default:
//m_errorStatus << "Error: Unsupported Item Type: " <<
// smtk::attribute::Item::type2String(item->type()) << "\n";
......
<RCC>
<qresource prefix="/icons/attribute">
<file>edit.png</file>
<file>expand-up.png</file>
<file>expand-down.png</file>
<file>lock.png</file>
<file>minus.png</file>
<file>plus.png</file>
<file>selLinkIn.png</file>
<file>clearLinkIn.png</file>
<file>growcell32.png</file>
<file>growplus32.png</file>
<file>growminus32.png</file>
<file>cancel32.png</file>
<file>growaccept24.png</file>
<file>edgesplit.png</file>
<file>function.png</file>
<file alias = "edit.png">icons/edit.png</file>
<file alias = "expand-up.png">icons/expand-up.png</file>
<file alias = "expand-down.png">icons/expand-down.png</file>
<file alais = "lock.png">icons/lock.png</file>
<file alias = "minus.png">icons/minus.png</file>
<file alias = "plus.png">icons/plus.png</file>
<file alias = "selLinkIn.png">icons/selLinkIn.png</file>
<file alias = " clearLinkIn.png">icons/clearLinkIn.png</file>
<file alias = "growcell32.png">icons/growcell32.png</file>
<file alias = "growplus32.png">icons/growplus32.png</file>
<file alias = "growminus32.png">icons/growminus32.png</file>
<file alias = "cancel32.png">icons/cancel32.png</file>
<file alias = "growaccept24.png">icons/growaccept24.png</file>
<file alias = "edgesplit.png">icons/edgesplit.png</file>
<file alias = "function.png">icons/function.png</file>
</qresource>
</RCC>
......@@ -107,3 +107,12 @@ qtItem* qtAttributeItemWidgetFactory::createComponentItemWidget(
{
return new qtComponentItem(smtk::dynamic_pointer_cast<ComponentItem>(item), p, bview, orient);
}
/**\brief Create a widget that illustrates an item whose value is an array of resource components.
*
*/
/*qtItem* qtAttributeItemWidgetFactory::createReferenceItemWidget(
ReferenceItemPtr item, QWidget* p, qtBaseView* bview, Qt::Orientation orient)
{
return new qtReferenceItem(smtk::dynamic_pointer_cast<ReferenceItem>(item), p, bview, orient);
}
*/
......@@ -59,7 +59,9 @@ public:
attribute::DateTimeItemPtr item, QWidget* p, qtBaseView* bview, Qt::Orientation orient);
virtual qtItem* createComponentItemWidget(
attribute::ComponentItemPtr item, QWidget* p, qtBaseView* bview, Qt::Orientation orient);
};
/* virtual qtItem* createReferenceItemWidget(
attribute::ReferenceItemPtr item, QWidget* p, qtBaseView* bview, Qt::Orientation orient);
*/};
} // namespace extension
} // namespace smtk
......
......@@ -63,9 +63,13 @@ smtk::view::PhraseModelPtr qtComponentItem::createPhraseModel() const
phraseModel->root()->findDelegate()->setModel(phraseModel);
auto def = std::dynamic_pointer_cast<const smtk::attribute::ComponentItemDefinition>(
this->getObject()->definition());
std::cerr << "Address of " << def->name() << "( " << def << ") \n";
std::static_pointer_cast<smtk::view::ComponentPhraseModel>(phraseModel)
->setComponentFilters(def->acceptableEntries());
// ToDo: need to be aware of resource links!
phraseModel->addSource(this->uiManager()->resourceManager(), nullptr);
return phraseModel;
}
......@@ -95,8 +99,15 @@ std::string qtComponentItem::synopsis(bool& ok) const
return "uninitialized item";
}
static const std::size_t numRequired = item->numberOfRequiredValues();
static const std::size_t maxAllowed = item->maxNumberOfValues();
if (m_p->m_members.size())
{
auto foo = m_p->m_members.begin()->first;
std::cerr << "Number of Components = " << m_p->m_members.size() << std::endl;
std::cerr << "Type of Component is : " << typeid(foo.get()).name() << " its value is "
<< foo.get() << std::endl;
}
std::size_t numRequired = item->numberOfRequiredValues();
std::size_t maxAllowed = (item->isExtensible() ? item->maxNumberOfValues() : numRequired);
std::ostringstream label;
std::size_t numSel = 0;
for (auto entry : m_p->m_members)
......@@ -109,12 +120,10 @@ std::string qtComponentItem::synopsis(bool& ok) const
ok = true;
if (numRequired < 2 && maxAllowed == 1)
{
auto ment = std::dynamic_pointer_cast<smtk::model::Entity>(m_p->m_members.empty()
? smtk::resource::PersistentObjectPtr()
: m_p->m_members.begin()->first);
label << (numSel == 1
? (ment ? ment->referenceAs<smtk::model::EntityRef>().name() : "TODO (report item name)")
: (numSel > 0 ? "too many" : "(none)"));
auto ment = (m_p->m_members.empty() ? smtk::resource::PersistentObjectPtr()
: m_p->m_members.begin()->first);
label << (numSel == 1 ? (ment ? ment->name() : "NULL!!")
: (numSel > 0 ? "too many" : "(none)"));
ok = numSel >= numRequired && numSel <= maxAllowed;
}
else
......
<RCC>
<qresource prefix="/icons/entityTypes">
<file>cell_01_b.png</file>
<file>cell_01_w.png</file>
<file>cell_02_b.png</file>
<file>cell_02_w.png</file>
<file>cell_04_b.png</file>
<file>cell_04_w.png</file>
<file>cell_08_b.png</file>
<file>cell_08_w.png</file>
<file>generic_entity.png</file>
<file>cell_04.png</file>
<file>model.png</file>
<file>group.png</file>
<file>aux_geom.png</file>
<file alias = "cell_01_b.png">icons/cell_01_b.png</file>
<file alias = "cell_01_w.png">icons/cell_01_w.png</file>
<file alias = "cell_02_b.png">icons/cell_02_b.png</file>
<file alias = "cell_02_w.png">icons/cell_02_w.png</file>
<file alias = "cell_04_b.png">icons/cell_04_b.png</file>
<file alias = "cell_04_w.png">icons/cell_04_w.png</file>
<file alias = "cell_08_b.png">icons/cell_08_b.png</file>
<file alias = "cell_08_w.png">icons/cell_08_w.png</file>
<file alias = "generic_entity.png">icons/generic_entity.png</file>
<file alias = "cell_04.png">icons/cell_04.png</file>
<file alias = "model.png">icons/model.png</file>
<file alias = "group.png">icons/group.png</file>
<file alias = "aux_geom.png">icons/aux_geom.png</file>
</qresource>
<qresource prefix="/icons/display">
<file>eyeball.png</file>
<file>eyeballClosed.png</file>
<file>selected.png</file>
<file>unselected.png</file>
<file alias = "eyeball.png">icons/eyeball.png</file>
<file alias = "eyeballClosed.png">icons/eyeballClosed.png</file>
<file alias = "selected.png">icons/selected.png</file>
<file alias = "unselected.png">icons/unselected.png</file>
</qresource>
</RCC>
<RCC>
<qresource prefix="/icons/entityTypes">
<file>cell_01_b.png</file>
<file>cell_01_w.png</file>
<file>cell_02_b.png</file>
<file>cell_02_w.png</file>
<file>cell_04_b.png</file>
<file>cell_04_w.png</file>
<file>cell_08_b.png</file>
<file>cell_08_w.png</file>
<file>generic_entity.png</file>
<file>cell_04.png</file>
<file>model.png</file>
<file>group.png</file>
<file>aux_geom.png</file>
</qresource>
<qresource prefix="/icons/display">
<file>eyeball.png</file>
<file>eyeballClosed.png</file>
</qresource>
</RCC>
This diff is collapsed.
//=========================================================================
// Copyright (c) Kitware, Inc.
// All rights reserved.
// See LICENSE.txt for details.
//
// This software is distributed WITHOUT ANY WARRANTY; without even
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE. See the above copyright notice for more information.
//=========================================================================
// .NAME qtModelEntityAttributeView - the UI components for Attribute Section
// .SECTION Description
// .SECTION See Also
// qtSection
#ifndef __smtk_extension_qtModelEntityAttributeView_h
#define __smtk_extension_qtModelEntityAttributeView_h
#include "smtk/extension/qt/Exports.h"
#include "smtk/extension/qt/qtBaseView.h"
#include <QMap>
#include <QModelIndex>
#include <QStyledItemDelegate>
class qtModelEntityAttributeViewInternals;
class QTableWidgetItem;
class QKeyEvent;
class QStandardItem;
class QTableWidget;
/**\brief Provides the QT UI for a Model Entity Attribute View.
*
* A Model Entity Attribute View is similar to an Attribute View in that it used to create and delete attributes.
* However, unlike the Attribute View, an attribute is associated to only one model entity. All appropriate
* model entities are listed in the first column of a table and their corresponding attributes (by type) are listed in
* the second column.
*
* The structure of the Model Entity Attribute View has the following Top-Level view attributes in additon to
* those that Attribute Views have:
*
* - Type = "ModelEntity"
* - Col1Header - The name to be used as the column 1 header if the attribute
* does not exist "Model Entity" is displayed
* - Col2Header - The name to be used as the column 2 header if the attribute
* does not exist "Type" is displayed
* - NoValueLabel - The label to be used to indicate that a model entity does not have an appropriate attribute associated with it
*
* \sa qtAttributeView
*/
namespace smtk
{
namespace extension
{
class SMTKQTEXT_EXPORT qtModelEntityAttributeView : public qtBaseView
{
Q_OBJECT
public:
static qtBaseView* createViewWidget(const ViewInfo& info);
qtModelEntityAttributeView(const ViewInfo& info);
virtual ~qtModelEntityAttributeView();
const QMap<QString, QList<smtk::attribute::DefinitionPtr> >& attDefinitionMap() const;
void updateModelEntities();
QTableWidgetItem* getSelectedItem();
/**\brief method used to update the view when the selected row of the table widget is changed
* broadcastSelecxted indicates if the view should notify the Selection Manager that a model entity
has been selected - when the row changed is initiated by the Selection Manager this is set to false */
void showCurrentRow(bool broadcastSelected);
/**\brief method used when model entities are selected via the Selection System */
void updateSelectedModelEntity(const std::string& selSource, smtk::view::SelectionPtr p);
public slots:
void onShowCategory() override;
void showAdvanceLevelOverlay(bool show) override;
/**\brief slot called when the user changes the type of attribute assigned to the model entity*/
void cellChanged(int row, int column);
/**\brief slot called when model information is changed */
void updateModelAssociation() override;
/**\brief slot called when the user selects a row of the table */
void selectedRowChanged();
signals:
protected:
void buildUI() override;
void createWidget() override;
void displayAttribute(smtk::attribute::AttributePtr att);
virtual void getAllDefinitions();
protected slots:
void selectionMade();
private:
qtModelEntityAttributeViewInternals* Internals;
}; // class
class qModelEntityAttributeViewComboBoxItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
qModelEntityAttributeViewComboBoxItemDelegate(const QStringList& vals, QObject* parent = 0);
~qModelEntityAttributeViewComboBoxItemDelegate();
virtual QWidget* createEditor(
QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
virtual void setEditorData(QWidget* editor, const QModelIndex& index) const;
virtual void setModelData(
QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
signals:
void choiceMade();
protected:
QStringList m_values;
};
}; // namespace attribute
}; // namespace smtk
#endif
......@@ -210,9 +210,10 @@ bool qtSelectorView::createChildren()
if (qtView)
{
this->addChildView(qtView, static_cast<int>(enumIndex));
// Should this view be visible?
qtView->widget()->setVisible(
hasDefaultIndex && (defaultIndex == static_cast<int>(enumIndex)));
}
// Should this view be visible?
qtView->widget()->setVisible(hasDefaultIndex && (defaultIndex == static_cast<int>(enumIndex)));
}
return true;
}
......
......@@ -17,6 +17,7 @@
#include "smtk/extension/qt/qtInputsItem.h"
#include "smtk/extension/qt/qtInstancedView.h"
#include "smtk/extension/qt/qtItem.h"
#include "smtk/extension/qt/qtModelEntityAttributeView.h"
#include "smtk/extension/qt/qtModelView.h"
#include "smtk/extension/qt/qtOperationView.h"
#include "smtk/extension/qt/qtSMTKUtilities.h"
......@@ -102,6 +103,7 @@ qtUIManager::qtUIManager(smtk::attribute::CollectionPtr collection)
this->registerViewConstructor("Selector", qtSelectorView::createViewWidget);
this->registerViewConstructor("SimpleExpression", qtSimpleExpressionView::createViewWidget);
this->registerViewConstructor("Category", qtCategorySelectorView::createViewWidget);
this->registerViewConstructor("ModelEntity", qtModelEntityAttributeView::createViewWidget);
// register view constructors coming from plugins.
qtSMTKUtilities::updateViewConstructors(this);
......
......@@ -62,6 +62,8 @@ public:
smtk::attribute::CollectionPtr attCollection() const { return m_AttCollection; }
smtk::resource::ManagerPtr resourceManager() const { return m_AttCollection->manager(); }
void setActiveModelView(smtk::extension::qtModelView*);
smtk::extension::qtModelView* activeModelView();
......@@ -137,8 +139,17 @@ public:
virtual int getWidthOfItemsMaxLabel(
const QList<smtk::attribute::ItemDefinitionPtr>& itemDefs, const QFont& font);
//Mechanism for creating new GUI view based on registered factory functions
qtBaseView* createView(const ViewInfo& info);
// Methods for dealing with selection process
smtk::view::SelectionPtr selection() const { return m_selection; }
void setSelection(smtk::view::SelectionPtr newSel) { m_selection = newSel; }
int selectionBit() const { return m_selectionBit; }
void setSelectionBit(int val) { m_selectionBit = val; }
#ifdef _WIN32
#define LINE_BREAKER_STRING "\n";
#else
......@@ -159,7 +170,7 @@ signals:
void viewUIChanged(smtk::extension::qtBaseView*, smtk::attribute::ItemPtr);
void refreshEntityItems();
friend class qtRootView;
friend class qtBaseView;
friend class qtAssociationWidget;
protected:
......@@ -195,6 +206,9 @@ private:
const QList<smtk::attribute::ItemDefinitionPtr>& itemDefs, std::string& labelText);
std::map<std::string, widgetConstructor> m_constructors;
smtk::view::SelectionPtr m_selection;
int m_selectionBit;
}; // class
//A sublcass of QTextEdit to give initial sizehint
......
......@@ -836,9 +836,9 @@ void XmlDocV1Parser::processDefinition(xml_node& defNode, smtk::attribute::Defin
node, smtk::dynamic_pointer_cast<smtk::attribute::StringItemDefinition>(idef));
break;
case smtk::attribute::Item::ModelEntityType:
idef = def->addItemDefinition<smtk::attribute::ReferenceItemDefinition>(itemName);
idef = def->addItemDefinition<smtk::attribute::ComponentItemDefinition>(itemName);
this->processModelEntityDef(
node, smtk::dynamic_pointer_cast<smtk::attribute::ReferenceItemDefinition>(idef));
node, smtk::dynamic_pointer_cast<smtk::attribute::ComponentItemDefinition>(idef));
break;
case smtk::attribute::Item::VoidType:
idef = def->addItemDefinition<smtk::attribute::VoidItemDefinition>(itemName);
......@@ -978,7 +978,7 @@ void XmlDocV1Parser::processStringDef(pugi::xml_node& node, attribute::StringIte
}
void XmlDocV1Parser::processModelEntityDef(
pugi::xml_node& node, attribute::ReferenceItemDefinitionPtr idef)
pugi::xml_node& node, attribute::ComponentItemDefinitionPtr idef)
{
xml_node labels, mmask, child;
xml_attribute xatt;
......@@ -988,6 +988,8 @@ void XmlDocV1Parser::processModelEntityDef(
if (mmask)
{
idef->setAcceptsEntries("smtk::model::Manager", mmask.text().as_string(), true);
std::cerr << "Mem Mask of " << idef->name() << "( " << idef << ") is "
<< mmask.text().as_string() << "\n";
}
xatt = node.attribute("NumberOfRequiredValues");
......@@ -1259,10 +1261,10 @@ void XmlDocV1Parser::processValueDef(pugi::xml_node& node, attribute::ValueItemD
}
break;
case smtk::attribute::Item::ModelEntityType:
if ((cidef = idef->addItemDefinition<smtk::attribute::ReferenceItemDefinition>(citemName)))
if ((cidef = idef->addItemDefinition<smtk::attribute::ComponentItemDefinition>(citemName)))
{
this->processModelEntityDef(
cinode, smtk::dynamic_pointer_cast<smtk::attribute::ReferenceItemDefinition>(cidef));
cinode, smtk::dynamic_pointer_cast<smtk::attribute::ComponentItemDefinition>(cidef));
}
else
{
......@@ -1627,7 +1629,7 @@ void XmlDocV1Parser::processGroupDef(pugi::xml_node& node, attribute::GroupItemD
child, smtk::dynamic_pointer_cast<smtk::attribute::StringItemDefinition>(idef));
break;
case smtk::attribute::Item::ModelEntityType:
idef = def->addItemDefinition<smtk::attribute::ReferenceItemDefinition>(itemName);
idef = def->addItemDefinition<smtk::attribute::ComponentItemDefinition>(itemName);
if (!idef)
{
smtkErrorMacro(m_logger, "Failed to create Model Entity Item definition Type: "
......@@ -1635,7 +1637,7 @@ void XmlDocV1Parser::processGroupDef(pugi::xml_node& node, attribute::GroupItemD
continue;
}
this->processModelEntityDef(
child, smtk::dynamic_pointer_cast<smtk::attribute::ReferenceItemDefinition>(idef));
child, smtk::dynamic_pointer_cast<smtk::attribute::ComponentItemDefinition>(idef));
break;
case smtk::attribute::Item::VoidType:
idef = def->addItemDefinition<smtk::attribute::VoidItemDefinition>(itemName);
......@@ -1917,7 +1919,7 @@ void XmlDocV1Parser::processItem(xml_node& node, smtk::attribute::ItemPtr item)
break;
case smtk::attribute::Item::ModelEntityType:
this->processModelEntityItem(
node, smtk::dynamic_pointer_cast<smtk::attribute::ReferenceItem>(item));
node, smtk::dynamic_pointer_cast<smtk::attribute::ComponentItem>(item));
break;
case smtk::attribute::Item::MeshSelectionType:
this->processMeshSelectionItem(
......@@ -2239,7 +2241,7 @@ void XmlDocV1Parser::processStringItem(pugi::xml_node& node, attribute::StringIt
node, item, m_collection, m_itemExpressionInfo, m_logger);
}
void XmlDocV1Parser::processModelEntityItem(pugi::xml_node& node, attribute::ReferenceItemPtr item)
void XmlDocV1Parser::processModelEntityItem(pugi::xml_node& node, attribute::ComponentItemPtr item)
{
(void)node;
smtkWarningMacro(m_logger, "All Model Entity Items will be ignored for Attribute Version 1 Format"
......
......@@ -101,9 +101,9 @@ protected:
void processStringItem(pugi::xml_node& node, smtk::attribute::StringItemPtr item);
virtual void processStringDef(
pugi::xml_node& node, smtk::attribute::StringItemDefinitionPtr idef);
virtual void processModelEntityItem(pugi::xml_node& node, smtk::attribute::ReferenceItemPtr item);
virtual void processModelEntityItem(pugi::xml_node& node, smtk::attribute::ComponentItemPtr item);
void processModelEntityDef(
pugi::xml_node& node, smtk::attribute::ReferenceItemDefinitionPtr idef);
pugi::xml_node& node, smtk::attribute::ComponentItemDefinitionPtr idef);
virtual void processMeshEntityItem(pugi::xml_node& node, attribute::MeshItemPtr item);
virtual void processMeshEntityDef(
pugi::xml_node& node, smtk::attribute::MeshItemDefinitionPtr idef);
......
......@@ -13,6 +13,7 @@
#include "cJSON.h"
#include "pugixml/src/pugixml.cpp"
#include "smtk/attribute/Attribute.h"
#include "smtk/attribute/ComponentItem.h"
#include "smtk/attribute/Definition.h"
#include "smtk/attribute/DirectoryItem.h"
#include "smtk/attribute/DirectoryItemDefinition.h"
......@@ -22,8 +23,6 @@
#include "smtk/attribute/MeshItemDefinition.h"
#include "smtk/attribute/MeshSelectionItem.h"
#include "smtk/attribute/MeshSelectionItemDefinition.h"
#include "smtk/attribute/ReferenceItem.h"
// #include "smtk/attribute/ModelEntityItem.h"
#include "smtk/attribute/StringItemDefinition.h"
#include "smtk/mesh/core/Collection.h"
#include "smtk/mesh/core/Manager.h"
......@@ -337,7 +336,7 @@ void XmlDocV2Parser::processDirectoryItem(pugi::xml_node& node, attribute::Direc
}
}
void XmlDocV2Parser::processModelEntityItem(pugi::xml_node& node, attribute::ReferenceItemPtr item)
void XmlDocV2Parser::processModelEntityItem(pugi::xml_node& node, attribute::ComponentItemPtr item)
{
xml_attribute xatt;
xml_node valsNode;
......
......@@ -42,7 +42,7 @@ protected:
void processFileDef(pugi::xml_node& node, smtk::attribute::FileItemDefinitionPtr idef) override;
void processModelInfo(pugi::xml_node& root) override;
void processModelEntityItem(
pugi::xml_node& node, smtk::attribute::ReferenceItemPtr item) override;
pugi::xml_node& node, smtk::attribute::ComponentItemPtr item) override;
void processMeshSelectionItem(
pugi::xml_node& node, attribute::MeshSelectionItemPtr idef) override;
void processMeshSelectionDef(
......
......@@ -190,7 +190,7 @@ bool Collection::isModified() const
return this->interface()->isModified();
}
const std::string& Collection::name() const
std::string Collection::name() const
{
return m_name;
}
......
......@@ -123,7 +123,7 @@ public:
bool isModified() const;
//get the name of a mesh collection
const std::string& name() const;
std::string name() const override;
void name(const std::string& n);
std::shared_ptr<smtk::mesh::Manager> manager() const;
......
......@@ -81,7 +81,7 @@ PySharedPtrClass< smtk::mesh::Collection > pybind11_init_smtk_mesh_Collection(py
.def("meshes", (smtk::mesh::MeshSet (smtk::mesh::Collection::*)(::smtk::mesh::Dirichlet const &) const) &smtk::mesh::Collection::meshes, py::arg("d"))
.def("meshes", (smtk::mesh::MeshSet (smtk::mesh::Collection::*)(::smtk::mesh::Neumann const &) const) &smtk::mesh::Collection::meshes, py::arg("n"))
.def("meshes", (smtk::mesh::MeshSet (smtk::mesh::Collection::*)(::std::string const &) const) &smtk::mesh::Collection::meshes, py::arg("name"))
.def("name", (std::string const & (smtk::mesh::Collection::*)() const) &smtk::mesh::Collection::name)
.def("name", (std::string (smtk::mesh::Collection::*)() const) &smtk::mesh::Collection::name)
.def("name", (void (smtk::mesh::Collection::*)(::std::string const &)) &smtk::mesh::Collection::name, py::arg("n"))
.def("neumannMeshes", &smtk::mesh::Collection::neumannMeshes, py::arg("n"))
.def("neumanns", &smtk::mesh::Collection::neumanns)
......