17 #include <keduvocdocument.h>
18 #include <keduvockvtml2writer.h>
20 #include <KStandardDirs>
23 #include <KFileDialog>
24 #include <KMessageBox>
27 #include <libxml/xmlmemory.h>
28 #include <libxml/debugXML.h>
29 #include <libxml/HTMLtree.h>
30 #include <libxml/xmlIO.h>
31 #include <libxml/xinclude.h>
32 #include <libxml/catalog.h>
33 #include <libxslt/xslt.h>
34 #include <libxslt/xsltInternals.h>
35 #include <libxslt/transform.h>
36 #include <libxslt/xsltutils.h>
43 ui =
new Ui::ExportOptions();
44 ui->setupUi(mainWidget());
46 setCaption(i18n(
"Export"));
49 void ExportDialog::accept()
53 if (ui->csvRadio->isChecked()) {
56 QStringList defaultFilters = KEduVocDocument::pattern(KEduVocDocument::Writing).split(
'\n');
57 QString filter = defaultFilters.filter(
"csv").join(
"\n");
58 KUrl filename = getFileName(filter);
59 if(filename != KUrl()) {
66 if (ui->flashCardRadio->isChecked()) {
67 xslFile = KStandardDirs::locate(
"data",
"parley/xslt/flashcards.xsl");
69 xslFile = KStandardDirs::locate(
"data",
"parley/xslt/table.xsl");
72 QString filter =
"*.html|" + i18n(
"HTML document");
73 KUrl filename = getFileName(filter);
74 if(filename == KUrl()) {
78 kDebug() <<
"XSLT starting";
80 xsltStylesheetPtr cur = NULL;
83 xmlSubstituteEntitiesDefault(1);
84 xmlLoadExtDtdDefaultValue = 1;
85 cur = xsltParseStylesheetFile((
const xmlChar*) xslFile.toLatin1().constData());
87 doc = xmlParseDoc( (
const xmlChar*) m_doc->
document()->toByteArray(m_doc->
document()->generator()).constData() );
89 res = xsltApplyStylesheet(cur, doc, 0);
90 FILE* result = fopen(QFile::encodeName(filename.toLocalFile()).constData(),
"w");
91 if ( result != NULL) {
92 xsltSaveResultToFile(result, res, cur);
95 KMessageBox::error(
this, i18n(
"Could not write to file \"%1\"", filename.toLocalFile()));
98 xsltFreeStylesheet(cur);
102 xsltCleanupGlobals();
105 kDebug() <<
"XSLT finished";
108 KUrl ExportDialog::getFileName(
const QString& filter)
110 return KFileDialog::getSaveUrl((m_doc->
document()->url().fileName() == i18n(
"Untitled")) ?
"": m_doc->
document()->url().toLocalFile(),
111 filter, m_parent, i18n(
"Export As"), KFileDialog::ConfirmOverwrite );
114 #include "exportdialog.moc"
KEduVocDocument * document()
ExportDialog(ParleyDocument *doc, QWidget *parent=0)
void saveAs(KUrl file=KUrl())