<table><tr><td style="">leinir retitled this revision from "[WIP] Bring KNewStuffQuick to feature parity with KNewStuff(Widgets)" to "Bring KNewStuffQuick to feature parity with KNewStuff(Widgets)".<br />leinir edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-ng2r4l3fdoalird/">(Show Details)</a><br />leinir edited the test plan for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-oo6cznhl3r4qmrs/">(Show Details)</a><br />leinir added reviewers: KNewStuff, VDG, Frameworks.
</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/D21721">View Revision</a></tr></table><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">As the title suggests, this is very much WIP. Feel free to test things out, and indeed point out issues, but as with all WIPs it's entirely possible those are already known. (this includes things like "there is no test plan"</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Implement a new set of Qt Quick components</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">"there are no reviewers",</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">aimed at bringing the KNewStuffQuick submodule up to feature parity with the original QWidget based versions.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">or "this is just a list of individual commit messages and not a good summary" ;) )<br />
<br />
Basic KNewStuffQuick dialog for testing purposes<br />
<br />
Actually return the number of comments,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">This also introduces the ability for KNewStuff to handle comments.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">not the rating<br />
<br />
Change the install overwrite question to YesNo</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The principal components are:</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">It was previously a very uninformative question,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **Button** A button which, when clicked, opens up a dialog with a Page as its base.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">so rewording</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Equivalent to the old Button widget.</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">it to a YesNo question,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **Dialog** A dialog (QtQuick Dialogs based) with a Page as its base.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">with more verbosit</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Equivalent to the old DownloadDialog (though the intention in especially Kirigami based applications would be to use a Page directl</span>y, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">seems reasonable,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">rather than opening a dialog).</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">given this is potentially destructive.<br />
<br />
Add a QuestionListener for KNewStuffQuick<br />
<br />
This was promised in the documentation already</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **DialogContents** The contents of the above dialog. Equivalent to the old DownloadWidget</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">and missing,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">though the same caveats apply as above.</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">which is a bit silly. Let's just implement that ;)<br />
<br />
Add the Question enums to its metaobject<br />
<br />
Expose method to get the row of a specific EntryInternal<br />
<br />
Add the QtQuick QuestionAsker component<br />
<br />
A component used to forward questions from KNewStuff's</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **DownloadItemsSheet** A sheet (Kirigami.OverlaySheet based) which shows the available installable items in a KNewStuff Entry, for use when there is more than one option.</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">engine to the UI,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **EntryDetails** A Page (org.kde.kcm SimpleKCM based) which shows the details for a single Entry.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">similar to how</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Equivalent to</span> the <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">KNewStuff::WidgetQuestionListener</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">details view in the old DownloadDialog.</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">class works.<br />
<br />
Slightly modified GridDelegate,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **Page** A Page (org.kde.kcm GridViewKCM based) which allows the management of KNewStuff entries.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">to allow for a tile style view<br />
<br />
Based on the KCM GridDelegate<br />
<br />
Add the Ratings component from Discover<br />
<br />
Should this perhaps be in a more centrally usable location?</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Functionally equivalent to the old DownloadDialog (and intended to be used directly as a page, rather than through the Dialog,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Seems</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">though this also exists for ease of porting and integration).</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">like something we'd probably want to be using in more locations,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **QuestionAsker** A component which forwards questions from the engine to the UI. This was supposed to be there from the start, but ended up missing in the initial version of KNewStuffQuick</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">for a more consistent look when ratings are involved...<br />
<br />
Add a model exposing categories metadata to QtQuick<br />
<br />
A model to care for the comments for a single EntryInternal<br />
<br />
This is a step along the way to add comment support to KNewStuff<br />
<br />
Actually build the CommentsModel<br />
<br />
Implement support for Attica's comments support in KNSCore::Provider<br />
<br />
Add some getters to KNSCore::Engine (name, search fields, and comments)<br />
<br />
Expose the various new functionality in KNSCore::Engine<br />
<br />
This includes the name, categories, and filter and sort options<br />
<br />
Add Comments,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">* **Author** A component without visual representation which provides access to named authors on an OCS server.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">adoption and full installation support to Quick ItemsModel<br />
<br />
Actually build and expose our various new classes in KNewStuffQuick</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">This is intended for ease of using OCS Person information in applications (such as about dialogues and the like).</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Add a screenshots display component</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">KNewStuffCore also received a couple of new <br />
<br />
Further, the NewStuffList and NewStuffItem components have received considerable attention and are now much more stable and capable (including the missing QuestionAsker functionality, which resulted in things like "this download file already exists" type situations not being handled, which could yield a hung application. However</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">based heavily on Discover's<br />
<br />
Very basic (for now) comment delegate</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">as these components were only ever really used by Peruse, it seems like this was less of an issue)</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">A Kirigami.ScrollablePage for showing an entry's comments<br />
<br />
A Kirigami.OverlaySheet for picking a specific DownloadItem to install</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">{F7285027}<br />
The test tool</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Add a component for viewing an Entry's details (KCM.SimpleKCM based)<br />
<br />
Add a Download</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">{F7284969}<br />
The </span>Dialog<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);"> equivalent to KNewStuffQuick</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">This page is partly based on design work found on:</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">{F7285030}</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">https://phabricator.kde.org/D20693#455565<br />
and partly on discussions with the VDG. The BigPreview delegate</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Detail view for one entry<br />
<br />
{F7285032}</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">specifically was envisioned by Andy Betts</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The comments display for the entry shown above</span><br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Add the new components to the qmldir</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Note on patch scope and intentions: This does not replace the old QWidget versions, and does not attempt to replace those with the new versions here (as discussed with @ngraham). The intention is to bring the components up to (and past) what the original QWidget versions are able to do, and at a later point switch the implementations of those widgets to using the new components, in a way which causes the least amount of impact.</span></div></div></div><br /><div><strong>CHANGES TO TEST PLAN</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Use the new dialog test tool to interact with the KNewStuffQuick components<br />
<br />
Once built and installed, this tool can be invoked (for example by pointing it at the look and feel config) by doing so:<br />
<br />
QT_LOGGING_RULES="org.kde.knewstuff*=true" ./bin/khotnewstuff-dialog /usr/share/knsrcfiles/lookandfeel.knsrc<br />
<br />
You can also simply launch it and then pick a knsrc file using the test tool's file picker.</span></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/D21721">https://phabricator.kde.org/D21721</a></div></div><br /><div><strong>To: </strong>leinir, KNewStuff, VDG, Frameworks<br /><strong>Cc: </strong>anthonyfieroni, pino, ngraham, kde-frameworks-devel, LeGast00n, GB_2, michaelh, bruns<br /></div>