Changeset 1754
- Timestamp:
- 01/13/10 19:14:50 (2 years ago)
- Files:
-
- branches/qt_gui/src/info/lib/info_handle.cc (modified) (1 diff)
- branches/qt_gui/src/info/lib/info_handle.hh (modified) (1 diff)
- branches/qt_gui/src/info/lib/info_impl.cc (modified) (1 diff)
- branches/qt_gui/src/info/lib/info_impl.hh (modified) (1 diff)
- branches/qt_gui/src/info/lib/info_item.cc (modified) (1 diff)
- branches/qt_gui/src/info/lib/info_item.hh (modified) (1 diff)
- branches/qt_gui/src/info/pymod/wrap_info.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/qt_gui/src/info/lib/info_handle.cc
r1610 r1754 29 29 return InfoHandle(RootPtr(new detail::InfoImpl())); 30 30 } 31 InfoHandle CreateInfo(const string& dtdfile)31 InfoHandle CreateInfo(const string& text) 32 32 { 33 return InfoHandle(RootPtr(new detail::InfoImpl(true, dtdfile)));33 return InfoHandle(RootPtr(new detail::InfoImpl(true,text))); 34 34 } 35 35 branches/qt_gui/src/info/lib/info_handle.hh
r948 r1754 45 45 class DLLEXPORT InfoHandle { 46 46 friend InfoHandle CreateInfo(); 47 friend InfoHandle CreateInfo(const string& );47 friend InfoHandle CreateInfo(const string& text); 48 48 friend InfoHandle LoadInfo(const string&); 49 49 branches/qt_gui/src/info/lib/info_impl.cc
r1610 r1754 75 75 } 76 76 77 InfoImpl::InfoImpl(bool dummy,const string& dtdfile):77 InfoImpl::InfoImpl(bool dummy,const string& text): 78 78 document_("EMDataInfo"), 79 79 def_list_() 80 80 { 81 QFile file(QS(dtdfile)); 82 if (!document_.setContent(&file)) { 83 file.close(); 81 if (!document_.setContent(QString::fromStdString(text))) { 84 82 throw(InfoError("QDomDocument.setContent failed")); 85 83 } 86 file.close();87 84 } 88 85 branches/qt_gui/src/info/lib/info_impl.hh
r1610 r1754 113 113 InfoImpl(); 114 114 InfoImpl(const string& file); 115 InfoImpl(bool dummy,const string& dtdfile);115 InfoImpl(bool dummy,const string& text); 116 116 117 117 RootPtr Copy() const; branches/qt_gui/src/info/lib/info_item.cc
r1677 r1754 201 201 } 202 202 203 double RetrieveFloatInfoItem(InfoGroup ig, const InfoPath& path, double def) 204 { 205 if(ig.HasItem(path)) { 206 return ig.GetItem(path).AsFloat(); 207 } 208 ig.RetrieveItem(path).SetFloat(def); 209 return def; 210 } 211 212 int RetrieveIntInfoItem(InfoGroup ig, const InfoPath& path, int def) 213 { 214 if(ig.HasItem(path)) { 215 return ig.GetItem(path).AsInt(); 216 } 217 ig.RetrieveItem(path).SetInt(def); 218 return def; 219 } 220 221 bool RetrieveBoolInfoItem(InfoGroup ig, const InfoPath& path, bool def) 222 { 223 if(ig.HasItem(path)) { 224 return ig.GetItem(path).AsBool(); 225 } 226 ig.RetrieveItem(path).SetBool(def); 227 return def; 228 } 229 230 geom::Vec3 RetrieveVectorInfoItem(InfoGroup ig, const InfoPath& path, const geom::Vec3& def) 231 { 232 if(ig.HasItem(path)) { 233 return ig.GetItem(path).AsVector(); 234 } 235 ig.RetrieveItem(path).SetVector(def); 236 return def; 237 } 238 239 string RetrieveStringInfoItem(InfoGroup ig, const InfoPath& path, const string& def) 240 { 241 if(ig.HasItem(path)) { 242 return ig.GetItem(path).GetValue(); 243 } 244 ig.RetrieveItem(path).SetValue(def); 245 return def; 246 } 247 203 248 void SetFloatInfoItem(InfoGroup ig, const InfoPath& path, double val) 204 249 { branches/qt_gui/src/info/lib/info_item.hh
r1677 r1754 124 124 DLLEXPORT string GetStringInfoItem(const InfoGroup& ig, const InfoPath& path, const string& def); 125 125 126 // these convenience functions will create the InfoItem if not already present 127 DLLEXPORT double RetrieveFloatInfoItem(InfoGroup ig, const InfoPath& path, double def); 128 DLLEXPORT int RetrieveIntInfoItem(InfoGroup ig, const InfoPath& path, int def); 129 DLLEXPORT bool RetrieveBoolInfoItem(InfoGroup ig, const InfoPath& path, bool def); 130 DLLEXPORT geom::Vec3 RetrieveVectorInfoItem(InfoGroup ig, const InfoPath& path, const geom::Vec3& def); 131 DLLEXPORT string RetrieveStringInfoItem(InfoGroup ig, const InfoPath& path, const string& def); 132 126 133 DLLEXPORT void SetFloatInfoItem(InfoGroup ig, const InfoPath& path, double val); 127 134 DLLEXPORT void SetIntInfoItem(InfoGroup ig, const InfoPath& path, int val); branches/qt_gui/src/info/pymod/wrap_info.cc
r1744 r1754 54 54 g->Apply(v,b); 55 55 } 56 57 58 struct InfoVisitorWrap : InfoVisitor, wrapper<InfoVisitor> 59 { 60 void VisitItem(InfoItem& item) 61 { 62 if (override VisitItemOverride = get_override("VisitItem")) 63 VisitItemOverride(item); 64 InfoVisitor::VisitItem(item); 65 } 66 67 bool VisitGroup(InfoGroup& group) 68 { 69 if (override VisitGroupOverride = get_override("VisitGroup")) 70 return VisitGroupOverride(group); 71 return InfoVisitor::VisitGroup(group); 72 } 73 74 void VisitGroupFinish(InfoGroup& group) 75 { 76 if (override VisitGroupFinishOverride = get_override("VisitGroupFinish")) 77 VisitGroupFinishOverride(group); 78 InfoVisitor::VisitGroupFinish(group); 79 } 80 81 void VisitItemDefault(InfoItem& item) 82 { 83 InfoVisitor::VisitItem(item); 84 } 85 bool VisitGroupDefault(InfoGroup& group) 86 { 87 return InfoVisitor::VisitGroup(group); 88 } 89 void VisitGroupFinishDefault(InfoGroup& group) 90 { 91 InfoVisitor::VisitGroupFinish(group); 92 } 93 94 }; 56 95 57 96 } … … 148 187 def("GetStringInfoItem",GetStringInfoItem); 149 188 189 def("RetrieveFloatInfoItem",RetrieveFloatInfoItem); 190 def("RetrieveIntInfoItem",RetrieveIntInfoItem); 191 def("RetrieveBoolInfoItem",RetrieveBoolInfoItem); 192 def("RetrieveVectorInfoItem",RetrieveVectorInfoItem); 193 def("RetrieveStringInfoItem",RetrieveStringInfoItem); 194 150 195 def("SetFloatInfoItem",SetFloatInfoItem); 151 196 def("SetIntInfoItem",SetIntInfoItem); … … 156 201 implicitly_convertible<string,InfoPath>(); 157 202 158 class_<InfoVisitor>("InfoVisitor",no_init) 203 class_<InfoVisitorWrap, boost::noncopyable>("InfoVisitor",init<>()) 204 .def("VisitItem", &InfoVisitor::VisitItem, &InfoVisitorWrap::VisitItemDefault) 205 .def("VisitItem", &InfoVisitor::VisitGroup, &InfoVisitorWrap::VisitGroupDefault) 206 .def("VisitItem", &InfoVisitor::VisitGroupFinish, &InfoVisitorWrap::VisitGroupFinishDefault) 159 207 ; 160 208
