<table><tr><td style="">kossebau created this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7580" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>The KTextEditor preview plugin* repeatedly feeds new<br />
versions to the same kpart instance, to allow instant<br />
preview of changes. To avoid stressing of the filesystem<br />
the stream API of the kpart is used if available.<br />
*<a href="https://frinring.wordpress.com/2017/08/21/look-what-you-have-donewwdo/" class="remarkup-link" target="_blank" rel="noreferrer">https://frinring.wordpress.com/2017/08/21/look-what-you-have-donewwdo/</a></p>

<p>This patch adds support for the stream API.<br />
Additionally it remembers the view state on closing an url,<br />
and if the same url is load again, the view state is restored.<br />
The latter allows continuous display of the same, but<br />
updated file as e.g. happening with the preview plugin.</p>

<p>Open questions:<br />
a) use of the streaming API matching intentions?<br />
b) Restoring of view state overlaps with support in browser history,</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">for which there is the KParts::OpenUrlArguments property of ReadOnlyPart.
That one only supports x/y offset, so how would zoom and other custom
state properties be save and retrieved again, if they should?</pre></div>

<p>This patch should help to solve this questions in general, so it is<br />
known what to do for other kparts.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Editing SVG files in Kate/Kdevelop using the preview plugin* will<br />
no longer reset the offset to 0,0 each time the view is updated on<br />
changes, also is the filesystem no longer used on updates.</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">kde:scratch/kossebau/ktexteditorpreviewplugin</li>
</ul></div></div><br /><div><strong>REPOSITORY</strong><div><div>R383 SVGPart</div></div></div><br /><div><strong>BRANCH</strong><div><div>supportstreamandreload</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7580" rel="noreferrer">https://phabricator.kde.org/D7580</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>svgpart.cpp<br />
svgpart.h</div></div></div><br /><div><strong>To: </strong>kossebau, Frameworks, dfaure<br /></div>