| 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: filereturn 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__, 268, __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__, 282, __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__,322) : 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 |