Changeset 104 for cpp/gdk/multiparamload.cpp
- Timestamp:
- 07/23/13 18:15:30 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/gdk/multiparamload.cpp
r81 r104 19 19 breakcond=OnError; 20 20 emptyparam.setParamTab(empty_paramtab); 21 } 22 23 int MultiParamLoader::findObject(const ExtObject &o) 24 { 25 for(int i=0;i<objects.size();i++) 26 if ((*objects(i))==o) 27 return i; 28 return -1; 29 } 30 31 void MultiParamLoader::removeObject(const ExtObject &o) 32 { 33 int i=findObject(o); 34 if (i>=0) 35 { 36 delete objects(i); 37 objects-=i; 38 } 39 } 40 41 void MultiParamLoader::clearObjects() 42 { 43 FOREACH(ExtObject*,o,objects) 44 delete o; 45 objects.clear(); 21 46 } 22 47 … … 102 127 while (!finished()) 103 128 { 104 if ((status==BeforeObject) || ((status==BeforeUnknown)&&lastclass)) 105 { 106 lastclass->load(file); 129 if ((status==BeforeObject) || ((status==BeforeUnknown) && !lastobject.isEmpty())) 130 { 131 Param tmp_param; 132 ParamInterface *pi=lastobject.getParamInterface(tmp_param); 133 pi->load(file); 107 134 if ((status!=Finished) && maybeBreak(AfterObject)) 108 135 break; … … 155 182 lastunknown=0; 156 183 lastunknown.append(t,linlen-1); 157 last class=0;158 FOREACH( ParamInterface*,pi,params)159 { 160 if (!strcmp( pi->getName(),lastunknown)) { lastclass=pi; break;}161 } 162 if ( lastclass)184 lastobject.setEmpty(); 185 FOREACH(ExtObject*,o,objects) 186 { 187 if (!strcmp(o->interfaceName(),lastunknown)) {lastobject=*o; break;} 188 } 189 if (!lastobject.isEmpty()) 163 190 { 164 191 if (maybeBreak(BeforeObject)) … … 244 271 } 245 272 246 int MultiParamLoader::loadObjectNow(ParamInterface *pi) 247 { 273 int MultiParamLoader::loadObjectNow(const ExtObject& o) 274 { 275 Param tmp_param; 276 ParamInterface *pi=o.getParamInterface(tmp_param); 248 277 pi->load(file); 249 278 status=AfterObject;
Note: See TracChangeset
for help on using the changeset viewer.