<table><tr><td style="">leinir 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/D28701">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/D28701#649012" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D28701#649012</a>, <a href="https://phabricator.kde.org/p/ngraham/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@ngraham</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>This has fixed the issues I was seeing with installation and uninstallation, nice! However I'm not seeing a very long hang when installing certain global themes--for example Sweet KDE and Layan Look and Feel Theme. It does ultimately work, but the dialog freezes for multiple minutes before finally becoming interactive again.</p></div>
</blockquote>

<p>That freeze really is amazingly annoying, and i'm afraid the only reasonable way to fix that is to move the installer into its own thread... which /should/ work ok, but i'm super scared of threads at the best of times ;) Needs must, though.</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D28701#inline-164583">View Inline</a><span style="color: #4b4d51; font-weight: bold;">ngraham</span> wrote in <span style="color: #4b4d51; font-weight: bold;">installation.cpp:105</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">Oof.</p>

<p style="padding: 0; margin: 8px;">Is there really no way around this? I mean, it did more or less work before the new QtQuick dialog was rolled out.</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Going by the code (in kpackagetool and here), i don't see how it could've really ever worked the way it looked before - i feel like what happened previously was that it /looked/ like it sort of worked, because installation did, but uninstallation never worked...</p>

<p style="padding: 0; margin: 8px;">The extreme case described in this comment is just that, though - it turns out that unless you clean your tmp dir regularly, you're likely to actually have those downloaded files available, which will cause the items to remain marked as installed, which in turn allows the fallback path in the uninstall step below here to kick in, which will both remove the downloaded file, and also (if the file is identified as a kpackage and we can do a reverse lookup match on an installed kpackage with that type and name) remove that package with kpackage. So... there's a lot of bits in here to try and ensure people won't notice that everything really was very badly broken with kpackages previously, and that it now just sort of works :)</p>

<p style="padding: 0; margin: 8px;">Further, a detail i noticed earlier, is that the uninstall call would just outright mark the entry you asked to uninstall as deleted, whether or not that was actually successful (which incidentally may happen and is there to allow some manual cleaning up if they've just deleted stuff underneath kns). I've moved that around just a touch, so that it doesn't happen if a kpackage failed to be uninstalled.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R304 KNewStuff</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D28701">https://phabricator.kde.org/D28701</a></div></div><br /><div><strong>To: </strong>leinir, Plasma, KNewStuff, Frameworks, ngraham, mart, davidedmundson<br /><strong>Cc: </strong>ngraham, kde-frameworks-devel, LeGast00n, cblack, michaelh, bruns<br /></div>