Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/text/qtextdocumentwriter.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||
2 | - | |||||||||||||||||||
3 | - | |||||||||||||||||||
4 | - | |||||||||||||||||||
5 | - | |||||||||||||||||||
6 | - | |||||||||||||||||||
7 | - | |||||||||||||||||||
8 | class QTextDocumentWriterPrivate | - | ||||||||||||||||||
9 | { | - | ||||||||||||||||||
10 | public: | - | ||||||||||||||||||
11 | QTextDocumentWriterPrivate(QTextDocumentWriter* qq); | - | ||||||||||||||||||
12 | - | |||||||||||||||||||
13 | - | |||||||||||||||||||
14 | QByteArray format; | - | ||||||||||||||||||
15 | QIODevice *device; | - | ||||||||||||||||||
16 | bool deleteDevice; | - | ||||||||||||||||||
17 | - | |||||||||||||||||||
18 | QTextCodec *codec; | - | ||||||||||||||||||
19 | - | |||||||||||||||||||
20 | - | |||||||||||||||||||
21 | QTextDocumentWriter *q; | - | ||||||||||||||||||
22 | }; | - | ||||||||||||||||||
23 | QTextDocumentWriterPrivate::QTextDocumentWriterPrivate(QTextDocumentWriter *qq) | - | ||||||||||||||||||
24 | : device(0), | - | ||||||||||||||||||
25 | deleteDevice(false), | - | ||||||||||||||||||
26 | - | |||||||||||||||||||
27 | codec(QTextCodec::codecForName("utf-8")), | - | ||||||||||||||||||
28 | - | |||||||||||||||||||
29 | q(qq) | - | ||||||||||||||||||
30 | { | - | ||||||||||||||||||
31 | } never executed: end of block | 0 | ||||||||||||||||||
32 | - | |||||||||||||||||||
33 | - | |||||||||||||||||||
34 | - | |||||||||||||||||||
35 | - | |||||||||||||||||||
36 | - | |||||||||||||||||||
37 | - | |||||||||||||||||||
38 | QTextDocumentWriter::QTextDocumentWriter() | - | ||||||||||||||||||
39 | : d(new QTextDocumentWriterPrivate(this)) | - | ||||||||||||||||||
40 | { | - | ||||||||||||||||||
41 | } never executed: end of block | 0 | ||||||||||||||||||
42 | - | |||||||||||||||||||
43 | - | |||||||||||||||||||
44 | - | |||||||||||||||||||
45 | - | |||||||||||||||||||
46 | - | |||||||||||||||||||
47 | QTextDocumentWriter::QTextDocumentWriter(QIODevice *device, const QByteArray &format) | - | ||||||||||||||||||
48 | : d(new QTextDocumentWriterPrivate(this)) | - | ||||||||||||||||||
49 | { | - | ||||||||||||||||||
50 | d->device = device; | - | ||||||||||||||||||
51 | d->format = format; | - | ||||||||||||||||||
52 | } never executed: end of block | 0 | ||||||||||||||||||
53 | - | |||||||||||||||||||
54 | - | |||||||||||||||||||
55 | - | |||||||||||||||||||
56 | - | |||||||||||||||||||
57 | - | |||||||||||||||||||
58 | - | |||||||||||||||||||
59 | - | |||||||||||||||||||
60 | QTextDocumentWriter::QTextDocumentWriter(const QString &fileName, const QByteArray &format) | - | ||||||||||||||||||
61 | : d(new QTextDocumentWriterPrivate(this)) | - | ||||||||||||||||||
62 | { | - | ||||||||||||||||||
63 | QFile *file = new QFile(fileName); | - | ||||||||||||||||||
64 | d->device = file; | - | ||||||||||||||||||
65 | d->deleteDevice = true; | - | ||||||||||||||||||
66 | d->format = format; | - | ||||||||||||||||||
67 | } never executed: end of block | 0 | ||||||||||||||||||
68 | - | |||||||||||||||||||
69 | - | |||||||||||||||||||
70 | - | |||||||||||||||||||
71 | - | |||||||||||||||||||
72 | QTextDocumentWriter::~QTextDocumentWriter() | - | ||||||||||||||||||
73 | { | - | ||||||||||||||||||
74 | if (d->deleteDevice
| 0 | ||||||||||||||||||
75 | delete d->device; never executed: delete d->device; | 0 | ||||||||||||||||||
76 | delete d; | - | ||||||||||||||||||
77 | } never executed: end of block | 0 | ||||||||||||||||||
78 | void QTextDocumentWriter::setFormat (const QByteArray &format) | - | ||||||||||||||||||
79 | { | - | ||||||||||||||||||
80 | d->format = format; | - | ||||||||||||||||||
81 | } never executed: end of block | 0 | ||||||||||||||||||
82 | - | |||||||||||||||||||
83 | - | |||||||||||||||||||
84 | - | |||||||||||||||||||
85 | - | |||||||||||||||||||
86 | - | |||||||||||||||||||
87 | - | |||||||||||||||||||
88 | QByteArray QTextDocumentWriter::format () const | - | ||||||||||||||||||
89 | { | - | ||||||||||||||||||
90 | return never executed: d->format;return d->format; never executed: return d->format; | 0 | ||||||||||||||||||
91 | } | - | ||||||||||||||||||
92 | void QTextDocumentWriter::setDevice (QIODevice *device) | - | ||||||||||||||||||
93 | { | - | ||||||||||||||||||
94 | if (d->device
| 0 | ||||||||||||||||||
95 | delete d->device; never executed: delete d->device; | 0 | ||||||||||||||||||
96 | - | |||||||||||||||||||
97 | d->device = device; | - | ||||||||||||||||||
98 | d->deleteDevice = false; | - | ||||||||||||||||||
99 | } never executed: end of block | 0 | ||||||||||||||||||
100 | - | |||||||||||||||||||
101 | - | |||||||||||||||||||
102 | - | |||||||||||||||||||
103 | - | |||||||||||||||||||
104 | - | |||||||||||||||||||
105 | QIODevice *QTextDocumentWriter::device () const | - | ||||||||||||||||||
106 | { | - | ||||||||||||||||||
107 | return never executed: d->device;return d->device; never executed: return d->device; | 0 | ||||||||||||||||||
108 | } | - | ||||||||||||||||||
109 | void QTextDocumentWriter::setFileName (const QString &fileName) | - | ||||||||||||||||||
110 | { | - | ||||||||||||||||||
111 | setDevice(new QFile(fileName)); | - | ||||||||||||||||||
112 | d->deleteDevice = true; | - | ||||||||||||||||||
113 | } never executed: end of block | 0 | ||||||||||||||||||
114 | QString QTextDocumentWriter::fileName () const | - | ||||||||||||||||||
115 | { | - | ||||||||||||||||||
116 | QFile *file = qobject_cast<QFile *>(d->device); | - | ||||||||||||||||||
117 | return never executed: file ? file->fileName() : QString();return file ? file->fileName() : QString(); never executed: return file ? file->fileName() : QString(); | 0 | ||||||||||||||||||
118 | } | - | ||||||||||||||||||
119 | - | |||||||||||||||||||
120 | - | |||||||||||||||||||
121 | - | |||||||||||||||||||
122 | - | |||||||||||||||||||
123 | - | |||||||||||||||||||
124 | bool QTextDocumentWriter::write(const QTextDocument *document) | - | ||||||||||||||||||
125 | { | - | ||||||||||||||||||
126 | QByteArray suffix; | - | ||||||||||||||||||
127 | - | |||||||||||||||||||
128 | if (d->device
| 0 | ||||||||||||||||||
129 | - | |||||||||||||||||||
130 | - | |||||||||||||||||||
131 | if (QFile *file = qobject_cast<QFile *>(d->device)
| 0 | ||||||||||||||||||
132 | suffix = QFileInfo(file->fileName()).suffix().toLower().toLatin1(); never executed: suffix = QFileInfo(file->fileName()).suffix().toLower().toLatin1(); | 0 | ||||||||||||||||||
133 | } never executed: end of block | 0 | ||||||||||||||||||
134 | - | |||||||||||||||||||
135 | QByteArray format = !d->format.isEmpty()
| 0 | ||||||||||||||||||
136 | - | |||||||||||||||||||
137 | - | |||||||||||||||||||
138 | if (format == "odf"
| 0 | ||||||||||||||||||
139 | QTextOdfWriter writer(*document, d->device); | - | ||||||||||||||||||
140 | - | |||||||||||||||||||
141 | writer.setCodec(d->codec); | - | ||||||||||||||||||
142 | - | |||||||||||||||||||
143 | return never executed: writer.writeAll();return writer.writeAll(); never executed: return writer.writeAll(); | 0 | ||||||||||||||||||
144 | } | - | ||||||||||||||||||
145 | - | |||||||||||||||||||
146 | - | |||||||||||||||||||
147 | - | |||||||||||||||||||
148 | if (format == "html"
| 0 | ||||||||||||||||||
149 | if (!d->device->isWritable()
| 0 | ||||||||||||||||||
150 | QMessageLogger(__FILE__, 274, __PRETTY_FUNCTION__).warning("QTextDocumentWriter::write: the device can not be opened for writing"); | - | ||||||||||||||||||
151 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
152 | } | - | ||||||||||||||||||
153 | QTextStream ts(d->device); | - | ||||||||||||||||||
154 | - | |||||||||||||||||||
155 | ts.setCodec(d->codec); | - | ||||||||||||||||||
156 | ts << document->toHtml(d->codec->name()); | - | ||||||||||||||||||
157 | - | |||||||||||||||||||
158 | d->device->close(); | - | ||||||||||||||||||
159 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||
160 | } | - | ||||||||||||||||||
161 | - | |||||||||||||||||||
162 | if (format == "txt"
| 0 | ||||||||||||||||||
163 | if (!d->device->isWritable()
| 0 | ||||||||||||||||||
164 | QMessageLogger(__FILE__, 288, __PRETTY_FUNCTION__).warning("QTextDocumentWriter::write: the device can not be opened for writing"); | - | ||||||||||||||||||
165 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
166 | } | - | ||||||||||||||||||
167 | QTextStream ts(d->device); | - | ||||||||||||||||||
168 | - | |||||||||||||||||||
169 | ts.setCodec(d->codec); | - | ||||||||||||||||||
170 | - | |||||||||||||||||||
171 | ts << document->toPlainText(); | - | ||||||||||||||||||
172 | d->device->close(); | - | ||||||||||||||||||
173 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||
174 | } | - | ||||||||||||||||||
175 | - | |||||||||||||||||||
176 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
177 | } | - | ||||||||||||||||||
178 | - | |||||||||||||||||||
179 | - | |||||||||||||||||||
180 | - | |||||||||||||||||||
181 | - | |||||||||||||||||||
182 | - | |||||||||||||||||||
183 | bool QTextDocumentWriter::write(const QTextDocumentFragment &fragment) | - | ||||||||||||||||||
184 | { | - | ||||||||||||||||||
185 | if (fragment.d == 0
| 0 | ||||||||||||||||||
186 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
187 | QTextDocument *doc = fragment.d->doc; | - | ||||||||||||||||||
188 | if (doc
| 0 | ||||||||||||||||||
189 | return never executed: write(doc);return write(doc); never executed: return write(doc); | 0 | ||||||||||||||||||
190 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
191 | } | - | ||||||||||||||||||
192 | void QTextDocumentWriter::setCodec(QTextCodec *codec) | - | ||||||||||||||||||
193 | { | - | ||||||||||||||||||
194 | if (codec == 0
| 0 | ||||||||||||||||||
195 | codec = QTextCodec::codecForName("UTF-8"); never executed: codec = QTextCodec::codecForName("UTF-8"); | 0 | ||||||||||||||||||
196 | ((!(codec)) ? qt_assert("codec",__FILE__,328) : qt_noop()); | - | ||||||||||||||||||
197 | d->codec = codec; | - | ||||||||||||||||||
198 | } never executed: end of block | 0 | ||||||||||||||||||
199 | - | |||||||||||||||||||
200 | - | |||||||||||||||||||
201 | - | |||||||||||||||||||
202 | - | |||||||||||||||||||
203 | - | |||||||||||||||||||
204 | - | |||||||||||||||||||
205 | QTextCodec *QTextDocumentWriter::codec() const | - | ||||||||||||||||||
206 | { | - | ||||||||||||||||||
207 | return never executed: d->codec;return d->codec; never executed: return d->codec; | 0 | ||||||||||||||||||
208 | } | - | ||||||||||||||||||
209 | QList<QByteArray> QTextDocumentWriter::supportedDocumentFormats() | - | ||||||||||||||||||
210 | { | - | ||||||||||||||||||
211 | QList<QByteArray> answer; | - | ||||||||||||||||||
212 | answer << "plaintext"; | - | ||||||||||||||||||
213 | - | |||||||||||||||||||
214 | - | |||||||||||||||||||
215 | answer << "HTML"; | - | ||||||||||||||||||
216 | - | |||||||||||||||||||
217 | - | |||||||||||||||||||
218 | answer << "ODF"; | - | ||||||||||||||||||
219 | - | |||||||||||||||||||
220 | - | |||||||||||||||||||
221 | std::sort(answer.begin(), answer.end()); | - | ||||||||||||||||||
222 | return never executed: answer;return answer; never executed: return answer; | 0 | ||||||||||||||||||
223 | } | - | ||||||||||||||||||
224 | - | |||||||||||||||||||
225 | - | |||||||||||||||||||
Switch to Source code | Preprocessed file |