Blob Blame History Raw
--- 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();