Beispiel #1
0
void XmlDocVisitor::visitPre(DocImage *img)
{
  if (m_hide) return;

  QCString baseName=img->name();
  int i;
  if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
  {
    baseName=baseName.right(baseName.length()-i-1);
  }
  visitPreStart(m_t, "image", FALSE, this, img->children(), baseName, TRUE, img->type(), img->width(), img->height());

  // copy the image to the output dir
  FileDef *fd;
  bool ambig;
  if ((fd=findFileDef(Doxygen::imageNameDict,img->name(),ambig)))
  {
    QFile inImage(fd->absFilePath());
    QFile outImage(Config_getString(XML_OUTPUT)+"/"+baseName.data());
    if (inImage.open(IO_ReadOnly))
    {
      if (outImage.open(IO_WriteOnly))
      {
        char *buffer = new char[inImage.size()];
        inImage.readBlock(buffer,inImage.size());
        outImage.writeBlock(buffer,inImage.size());
        outImage.flush();
        delete[] buffer;
      }
    }
  }
}