--- xdrawchem-1.9.9/xdrawchem/application_ob.cpp.ob 2005-11-30 12:47:14.000000000 +0900
+++ xdrawchem-1.9.9/xdrawchem/application_ob.cpp 2008-05-20 20:50:07.000000000 +0900
@@ -45,23 +45,38 @@
readFilters.append(str1);
writeFilters.append(str1);
- Formatpos pos;
+ int i;
OBFormat* pFormat;
- const char* str=NULL;
- while(OBConversion::GetNextFormat(pos,str,pFormat))
+ vector<string> pFormats=Conv.GetSupportedInputFormat();
+
+ for(i=0; i < pFormats.size(); i++)
{
//std::cout << " " << str << std::endl;
- if((pFormat->Flags() & NOTWRITABLE) && (pFormat->Flags() & NOTREADABLE))
+ pFormat=Conv.FindFormat(pFormats[i].c_str());
+ if(!pFormat) continue;
+ if(pFormat->Flags() & NOTREADABLE)
+ continue;
+ str1 = pFormats[i];
+ myext = str1.left( str1.find(" -- ") );
+ str1.append("(*.");
+ str1.append(myext);
+ str1.append(")");
+ readFilters.append(str1);
+ }
+
+ pFormats=Conv.GetSupportedOutputFormat();
+ for(i=0; i < pFormats.size(); i++)
+ {
+ pFormat=Conv.FindFormat(pFormats[i].c_str());
+ if(!pFormat) continue;
+ if(pFormat->Flags() & NOTWRITABLE)
continue;
- str1 = str;
+ str1 = pFormats[i];
myext = str1.left( str1.find(" -- ") );
str1.append("(*.");
str1.append(myext);
str1.append(")");
- if ( (pFormat->Flags() & NOTREADABLE) == 0 )
- readFilters.append(str1);
- if ( (pFormat->Flags() & NOTWRITABLE) == 0 )
- writeFilters.append(str1);
+ writeFilters.append(str1);
}
filters.sort();