<table><tr><td style="">dfaure requested changes to this revision.<br />dfaure added a comment.<br />This revision now requires changes to proceed.
</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/D6856" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>The URL changes twice because you make it change twice ;)</p>

<p>But that can lead to the application updating stuff twice, which doesn't seem very optimal. (actions getting disabled and then re-enabled, title bar flickering, stuff like that).</p>

<p>Ideally it should change only once, either from oldURL to newURL, or from oldURL to QUrl() if loading failed.</p>

<p>This might require a special bool checked by closeUrl(), since we can't just split closeUrl (because it's public *and* virtual - bad design practice - I was young).</p>

<p>(if it wasn't virtual, then moving the code into a closeUrlImpl and having the public closeUrl() do closeUrlImpl()+setUrl(QUrl()) would be the best solution, but we can't do that since openUrl has to call the virtual closeUrl, not just closeUrlImpl. So I can't think of another solution than a bool member set by openUrl and checked by closeUrl to skip the setUrl(QUrl()) until after we try to open the new URL).</p></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D6856" rel="noreferrer">https://phabricator.kde.org/D6856</a></div></div><br /><div><strong>To: </strong>elvisangelaccio, dfaure, KTextEditor, Kate, KDevelop<br /><strong>Cc: </strong>cullmann, Frameworks<br /></div>