From 011f88737854bc25ebc4ef2c86ca222c563fc1d5 Mon Sep 17 00:00:00 2001 From: Andreas Schenk <andreas_schenk@hms.harvard.edu> Date: Fri, 13 May 2011 23:34:38 -0400 Subject: [PATCH] added GetComment to InfoHandle and InfoGroup --- modules/info/pymod/wrap_info.cc | 2 ++ modules/info/src/info_group.cc | 5 +++++ modules/info/src/info_group.hh | 4 ++++ modules/info/src/info_impl.cc | 10 ++++++++++ modules/info/src/info_impl.hh | 2 ++ modules/info/src/info_item.cc | 5 +++++ modules/info/src/info_item.hh | 2 ++ 7 files changed, 30 insertions(+) diff --git a/modules/info/pymod/wrap_info.cc b/modules/info/pymod/wrap_info.cc index 5aabfe3eb..223dbe1a9 100644 --- a/modules/info/pymod/wrap_info.cc +++ b/modules/info/pymod/wrap_info.cc @@ -199,6 +199,7 @@ BOOST_PYTHON_MODULE(_ost_info) .def("SetBool",&InfoItem::SetBool) .def("SetVector",&InfoItem::SetVector) .add_property("attribute",&InfoItem::GetAttribute,&InfoItem::SetAttribute) + .def("GetComment",&InfoItem::GetComment) ; class_<InfoGroupList>("InfoGroupList", no_init) .def(vector_indexing_suite<InfoGroupList>()) @@ -237,6 +238,7 @@ BOOST_PYTHON_MODULE(_ost_info) .def("Apply",info_group_apply2a) .def("Apply",info_group_apply2b) .def("GetTextData",&InfoGroup::GetTextData) + .def("GetComment",&InfoGroup::GetComment) .def("GetPath",&InfoGroup::GetPath) ; diff --git a/modules/info/src/info_group.cc b/modules/info/src/info_group.cc index 883c80d48..2ed933084 100644 --- a/modules/info/src/info_group.cc +++ b/modules/info/src/info_group.cc @@ -418,6 +418,11 @@ void InfoGroup::SetTextData(const String& td) impl_->SetTextData(td); } +String InfoGroup::GetComment() const +{ + return impl_->GetComment(); +} + bool InfoGroup::operator==(const InfoGroup& ref) const { return *impl_ == *ref.impl_; diff --git a/modules/info/src/info_group.hh b/modules/info/src/info_group.hh index 5d703c6c5..d0823edf8 100644 --- a/modules/info/src/info_group.hh +++ b/modules/info/src/info_group.hh @@ -90,6 +90,10 @@ public: String GetTextData() const; void SetTextData(const String& td); + //! get comment just above item + String GetComment() const; + + //! Apply visitor /*! descends through all items and subgroups diff --git a/modules/info/src/info_impl.cc b/modules/info/src/info_impl.cc index 7bc6d9cc3..0f6415504 100644 --- a/modules/info/src/info_impl.cc +++ b/modules/info/src/info_impl.cc @@ -361,6 +361,16 @@ void EleImpl::SetTextData(const String& td) } } + +String EleImpl::GetComment() const +{ + QDomNode previous=ele_.previousSibling(); + if(previous.isComment()){ + return previous.toComment().data().toStdString(); + } + return String(); +} + Type EleImpl::GetType() const { return type_; diff --git a/modules/info/src/info_impl.hh b/modules/info/src/info_impl.hh index 62c0357b3..fd84d96ed 100644 --- a/modules/info/src/info_impl.hh +++ b/modules/info/src/info_impl.hh @@ -74,6 +74,8 @@ public: String GetTextData() const; void SetTextData(const String& td); + String GetComment() const; + /// \brief get sub elements with specified element name /// /// does not throw. returns empty list if not elements have been found diff --git a/modules/info/src/info_item.cc b/modules/info/src/info_item.cc index f57b53e13..d3317eb00 100644 --- a/modules/info/src/info_item.cc +++ b/modules/info/src/info_item.cc @@ -177,6 +177,11 @@ bool InfoItem::operator!=(const InfoItem& rhs) const return !this->operator==(rhs); } +String InfoItem::GetComment() const +{ + return impl_->GetComment(); +} + Real GetFloatInfoItem(const InfoGroup& ig, const InfoPath& path, Real def) { if(ig.HasItem(path)) { diff --git a/modules/info/src/info_item.hh b/modules/info/src/info_item.hh index b32bee40b..9036727c5 100644 --- a/modules/info/src/info_item.hh +++ b/modules/info/src/info_item.hh @@ -107,6 +107,8 @@ public: bool HasAttribute(const String& name) const; //! remove attribute of given name void RemoveAttribute(const String& name); + //! get comment just above item + String GetComment() const; //! returns a list with all attribute names std::vector<String> GetAttributeList() const; -- GitLab