<table><tr><td style="">cullmann added a comment.
</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/D20722">View Revision</a></tr></table><br /><div><div><p>I would propose this fix:</p>

<p>diff --git a/kate/kateviewspace.cpp b/kate/kateviewspace.cpp<br />
index 2081ff478..94d9e11a2 100644</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">a/kate/kateviewspace.cpp</li>
</ul>

<p>+++ b/kate/kateviewspace.cpp<br />
@@ -707,16 +707,12 @@ void KateViewSpace::restoreConfig(KateViewManager *viewMan, const KConfigBase *c</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);">// restore Document lru list so that all tabs from the last session reappear
const QStringList lruList = group.readEntry("Documents", QStringList());
for (int i = 0; i < lruList.size(); ++i) {</pre></div>

<p>+        <em> ignore non-existing documents and documents we already added to the LRU list<br />
+        </em> no wild m_lruDocList modifications to keep list + tabs in sync even for restore</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);">auto doc = KateApp::self()->documentManager()->findDocument(QUrl(lruList[i]));</pre></div>

<ul class="remarkup-list">
<li class="remarkup-list-item">if (doc) {</li>
<li class="remarkup-list-item">const int index = m_lruDocList.indexOf(doc);</li>
<li class="remarkup-list-item">if (index < 0) {</li>
<li class="remarkup-list-item">registerDocument(doc);</li>
<li class="remarkup-list-item">Q_ASSERT(m_lruDocList.contains(doc));</li>
<li class="remarkup-list-item">} else {</li>
<li class="remarkup-list-item">m_lruDocList.removeAt(index);</li>
<li class="remarkup-list-item">m_lruDocList.append(doc);</li>
<li class="remarkup-list-item">}</li>
</ul>

<p>+        if (doc && !m_lruDocList.contains(doc)) {<br />
+            registerDocument(doc);<br />
+            Q_ASSERT(m_lruDocList.contains(doc));</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);">    }
}</pre></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R40 Kate</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D20722">https://phabricator.kde.org/D20722</a></div></div><br /><div><strong>To: </strong>loh.tar, Kate, dhaumann<br /><strong>Cc: </strong>cullmann, kwrite-devel, Kate, domson, michaelh, ngraham, demsking, sars, dhaumann<br /></div>