<table><tr><td style="">dkurz 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/D2599" rel="noreferrer">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D2599#48516" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;" rel="noreferrer">D2599#48516</a>, <a href="https://phabricator.kde.org/p/mlaurent/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;" rel="noreferrer">@mlaurent</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>It doesn't work when I implemented it.</p></div>
</blockquote>

<p>Sorry, I don't understand what you mean by that. I tested my implementation: In KMail's main widget, I tried various non-empty quick search texts and cleared the line edit again, and the selection state was correctly restored every time. It is not restored to the pre-quicksearch state when I click on one of the folders in the narrowed-down folder list, but I think that's intended behaviour. Please feel free to test it yourself, it works like a charm.</p>

<p>Maybe you hit some upstream bug when you tried to fix it. As I wrote, the api docs state explicitly that we should not keep a persistent pointer to savers on the heap. Also, a grep on the PIM code base reveals that restoring is always done as I suggest in this patch, with the single exception of todoview.cpp in the eventviews module:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="console" 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);"><span style="color: #000080">$ grep -Rn "new \(Akonadi::\)\?ETMViewStateSaver\>" .</span>
<span style="color: #808080">./eventviews/src/todo/todoview.cpp:1224:    mTreeStateRestorer = new Akonadi::ETMViewStateSaver();</span>
<span style="color: #808080">./messagelib/messagelist/src/pane.cpp:1121:                    ETMViewStateSaver *saver = new ETMViewStateSaver;</span>
<span style="color: #808080">./messagelib/messagelist/src/pane.cpp:1125:                        ETMViewStateSaver *saver = new ETMViewStateSaver;</span>
<span style="color: #808080">./mailcommon/src/folder/foldertreewidget.cpp:168:        auto saver = new Akonadi::ETMViewStateSaver;</span>
<span style="color: #808080">./kdepim/kaddressbook/src/mainwidget.cpp:424:        Akonadi::ETMViewStateSaver *saver = new Akonadi::ETMViewStateSaver;</span>
<span style="color: #808080">./kdepim/kaddressbook/src/mainwidget.cpp:433:        Akonadi::ETMViewStateSaver *saver = new Akonadi::ETMViewStateSaver;</span>
<span style="color: #808080">./kdepim/kaddressbook/src/mainwidget.cpp:442:        Akonadi::ETMViewStateSaver *saver = new Akonadi::ETMViewStateSaver;</span>
<span style="color: #808080">./kdepim/kmail/src/kmmainwidget.cpp:354:    ETMViewStateSaver *saver = new ETMViewStateSaver;</span>
<span style="color: #808080">./kdepim/korganizer/src/akonadicollectionview.cpp:225:        treeStateRestorer = new Akonadi::ETMViewStateSaver(); // not a leak</span>
<span style="color: #808080">./kdepim-addons/examples/apps/etm_usage/unreadmailsincollectionswidget.cpp:161:    ETMViewStateSaver *restorer = new ETMViewStateSaver;</span></pre></div>

<p>But maybe I just misunderstood your meaning.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rMAILCOMMON PIM: Common Mail Support</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D2599" rel="noreferrer">https://phabricator.kde.org/D2599</a></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>dkurz, KDE PIM<br /><strong>Cc: </strong>mlaurent, kde-pim, spencerb, dvasin, winterz, smartins, vkrause, knauss, dvratil<br /></div>