26#include <tqtextcodec.h>
28#include <tqfileinfo.h>
29#include <tqtextstream.h>
32#include <KoFilterChain.h>
33#include <kgenericfactory.h>
35#include <KWEFStructures.h>
36#include <KWEFBaseWorker.h>
37#include <KWEFKWordLeader.h>
42typedef KGenericFactory<WMLExport, KoFilter> WMLExportFactory;
43K_EXPORT_COMPONENT_FACTORY( libwmlexport, WMLExportFactory(
"kofficefilters" ) )
49 virtual ~WMLWorker(
void) { }
50 virtual bool doOpenFile(
const TQString& filenameOut,
const TQString& to);
51 virtual bool doCloseFile(
void);
52 virtual bool doOpenDocument(
void);
53 virtual bool doCloseDocument(
void);
54 virtual bool doFullParagraph(
const TQString& paraText,
const LayoutData& layout,
55 const ValueListFormatData& paraFormatDataList);
59 bool m_bold, m_italic, m_underline;
62bool WMLWorker::doOpenFile(
const TQString& filenameOut,
const TQString& )
64 filename = filenameOut;
68bool WMLWorker::doCloseFile(
void)
70 TQFile out( filename );
71 if( !out.open( IO_WriteOnly ) )
74 stream.setDevice( &out );
79bool WMLWorker::doOpenDocument(
void)
81 result =
"<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"\n";
82 result +=
" \"http://www.wapforum.org/DTD/wml_1.1.xml\" >\n";
83 result +=
"<!-- Created using KWord, see www.trinitydesktop.org -->\n";
87 m_bold = m_italic = m_underline =
false;
92bool WMLWorker::doCloseDocument(
void)
94 result +=
"</card>\n";
99bool WMLWorker::doFullParagraph(
const TQString& paraText,
100 const LayoutData& layout,
const ValueListFormatData& paraFormatDataList)
103 TQString text = paraText;
105 ValueListFormatData::ConstIterator it;
106 for( it = paraFormatDataList.begin(); it!=paraFormatDataList.end(); ++it )
108 const FormatData& formatData = *it;
111 if( formatData.id == 1 )
113 TQString partialText;
114 partialText = text.mid( formatData.pos, formatData.len );
117 partialText = KWEFUtil::EscapeSgmlText( NULL, partialText,
true,
true );
120 m_bold = formatData.text.weight >= 75;
121 m_italic = formatData.text.italic;
124 if( m_bold ) partialText =
"<b>" + partialText +
"</b>";
125 if( m_italic ) partialText =
"<i>" + partialText +
"</i>";
126 if( m_underline ) partialText =
"<u>" + partialText +
"</u>";
129 wmlText += partialText;
134 TQString align = layout.
alignment.lower();
135 if( ( align!=
"left" ) && ( align!=
"right" ) && ( align!=
"center" ) )
138 result +=
"<p align=\"" + align +
"\">" + wmlText +
"</p>\n";
143WMLExport::WMLExport( KoFilter *,
const char *,
const TQStringList& ):
148KoFilter::ConversionStatus WMLExport::convert(
const TQCString& from,
149 const TQCString& to )
152 if( to!=
"text/vnd.wap.wml" || from !=
"application/x-kword" )
153 return KoFilter::NotImplemented;
155 WMLWorker* worker =
new WMLWorker();
156 KWEFKWordLeader* leader =
new KWEFKWordLeader( worker );
158 KoFilter::ConversionStatus result;
159 result = leader->convert( m_chain, from, to );
167#include "wmlexport.moc"
Base worker of the libexport system.
TQString alignment
left, right, center, justify
bool underline
Any underline? (If true, we do not know if simple or double or what else).