KoFilter::ConversionStatus MagickExport::convert(const QCString& from, const QCString& to) { kdDebug(41008) << "magick export! From: " << from << ", To: " << to << "\n"; if (from != "application/x-krita") return KoFilter::NotImplemented; // XXX: Add dialog about flattening layers here KisDoc *output = dynamic_cast<KisDoc*>(m_chain->inputDocument()); QString filename = m_chain->outputFile(); if (!output) return KoFilter::CreationError; if (filename.isEmpty()) return KoFilter::FileNotFound; KURL url; url.setPath(filename); KisImageSP img = output->currentImage(); KisImageMagickConverter ib(output, output->undoAdapter()); KisPaintDeviceSP pd = new KisPaintDevice(*img->projection()); KisPaintLayerSP l = new KisPaintLayer(img, "projection", OPACITY_OPAQUE, pd); vKisAnnotationSP_it beginIt = img->beginAnnotations(); vKisAnnotationSP_it endIt = img->endAnnotations(); if (ib.buildFile(url, l, beginIt, endIt) == KisImageBuilder_RESULT_OK) { return KoFilter::OK; } return KoFilter::InternalError; }