Changeset View
Changeset View
Standalone View
Standalone View
src/readonlypart.cpp
Show First 20 Lines • Show All 131 Lines • ▼ Show 20 Line(s) | 129 | { | |||
---|---|---|---|---|---|
132 | if (!url.isValid()) { | 132 | if (!url.isValid()) { | ||
133 | return false; | 133 | return false; | ||
134 | } | 134 | } | ||
135 | if (d->m_bAutoDetectedMime) { | 135 | if (d->m_bAutoDetectedMime) { | ||
136 | d->m_arguments.setMimeType(QString()); | 136 | d->m_arguments.setMimeType(QString()); | ||
137 | d->m_bAutoDetectedMime = false; | 137 | d->m_bAutoDetectedMime = false; | ||
138 | } | 138 | } | ||
139 | OpenUrlArguments args = d->m_arguments; | 139 | OpenUrlArguments args = d->m_arguments; | ||
140 | if (!closeUrl()) { | 140 | d->m_closeUrlFromOpenUrl = true; | ||
141 | const bool closed = closeUrl(); | ||||
142 | d->m_closeUrlFromOpenUrl = false; | ||||
143 | if (!closed) { | ||||
141 | return false; | 144 | return false; | ||
142 | } | 145 | } | ||
143 | d->m_arguments = args; | 146 | d->m_arguments = args; | ||
144 | setUrl(url); | 147 | setUrl(url); | ||
145 | 148 | | |||
146 | d->m_file.clear(); | 149 | d->m_file.clear(); | ||
147 | 150 | | |||
148 | if (d->m_url.isLocalFile()) { | 151 | if (d->m_url.isLocalFile()) { | ||
▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Line(s) | 229 | { | |||
233 | } | 236 | } | ||
234 | if (d->m_job) { | 237 | if (d->m_job) { | ||
235 | //qDebug() << "Aborting job" << d->m_job; | 238 | //qDebug() << "Aborting job" << d->m_job; | ||
236 | d->m_job->kill(); | 239 | d->m_job->kill(); | ||
237 | d->m_job = nullptr; | 240 | d->m_job = nullptr; | ||
238 | } | 241 | } | ||
239 | } | 242 | } | ||
240 | 243 | | |||
241 | bool ReadOnlyPart::closeUrl() | 244 | bool ReadOnlyPart::closeUrl() | ||
dfaure: I'm not sure about that TODO, it would be a horrendous porting trap (closeUrl not called… | |||||
242 | { | 245 | { | ||
243 | Q_D(ReadOnlyPart); | 246 | Q_D(ReadOnlyPart); | ||
244 | 247 | | |||
245 | abortLoad(); //just in case | 248 | abortLoad(); //just in case | ||
246 | 249 | | |||
247 | d->m_arguments = KParts::OpenUrlArguments(); | 250 | d->m_arguments = KParts::OpenUrlArguments(); | ||
251 | if (!d->m_closeUrlFromOpenUrl) { | ||||
252 | setUrl(QUrl()); | ||||
253 | } | ||||
248 | 254 | | |||
249 | if (d->m_bTemp) { | 255 | if (d->m_bTemp) { | ||
250 | QFile::remove(d->m_file); | 256 | QFile::remove(d->m_file); | ||
251 | d->m_bTemp = false; | 257 | d->m_bTemp = false; | ||
252 | } | 258 | } | ||
253 | // It always succeeds for a read-only part, | 259 | // It always succeeds for a read-only part, | ||
254 | // but the return value exists for reimplementations | 260 | // but the return value exists for reimplementations | ||
255 | // (e.g. pressing cancel for a modified read-write part) | 261 | // (e.g. pressing cancel for a modified read-write part) | ||
▲ Show 20 Lines • Show All 107 Lines • Show Last 20 Lines |
I'm not sure about that TODO, it would be a horrendous porting trap (closeUrl not called anymore, no way to detect it unless override was used)
I was commenting on the problem with this design, but I don't think we should actually change it, the bool works.