On Thursday, January 10, 2013 04:49:15 Aleix Pol wrote:
> Good stuff, I'd say it's really important, I'm really sad for not having
> found the time to push it further.

that's why there are many of us, of course. :)

no one person can do more than one person can do. but together we somehow 
manage to usually do more than we could have individually ;)
 
> Looking forward to your progress, maybe it would be interesting to see what
> you exactly have in mind there?

sure... i'm taking this in steps:

1: refactor internals (and don't care about breaking the UI in the process)
        * the runner manager is held by the QML UI not the krunner C++ code
        * API for the C++ to communicate with the QML (class: InterfaceApi)
        * KRunnerDialog becomes a Plasma::Dialog
        * load QML from Plasma::Packages

in this first step the following regressions have been incurred:

* configuration UI is gone
* user switching no longer implemented
* global shortcuts for single runners not registered
* dbus call to list available single runners removed (not sure if this will 
come back or not)
* positioning and resizing is a bit funky

2. build a minimal ugly UI in QML for purely testing purposes

3. address problems shown by these changes
        * RunnerModel needs changes for use here
                * able to pre-load the runners, so we don't get a delay on UI 
show
                * able to control the session setup / teardown (right now it is 
per 
search; for krunner, it should be per window show/hide)
                * ??
        * Plasma::Dialog's performance
                * moving is no longer smooth
                * resizing is a bit broken (doesn't center properly)

4. implement a new UI for user switching
        * dedicated UI for user switching
        * perhaps grey out screen with kwin effect, ala shutdown/logout dialog
        * show all running sessions + button to start a new one
        * perhaps a full screen wide strip with this UI centered in it (see 
attached horrible drawing. done in krita! :)

5. implement an improved config UI
        * use QML rather than the KPlugin QWidget list
        * integrate per-runner help with this list
        * provide a way to switch between different QML UI packages if more 
than 
one is installed

6. create a usable QML UI with an emphasis on elegance. hopefully this will be 
a visual and functional upgrade over the existing UI. it needs to:
        * allow queries
        * provide UI to access the task manager and configuration
        * a gorgeous delegate
                * supports keyboard nav, including between per-match actions
                * sorting perference? (e.g. by rank (default), or by runner?)
                * uses same components / presentation as used in similar lists 
elsewhere in Plasma Desktop
        * perhaps show favourite / recent searches on show?

7. improve the search speed enablers
        * better favourite matches algorithm
        * better autocompletion suggestion method

that's where i'm at right now :) some of the steps can easily be done in 
parallel, too. e.g. #4, the switch user UI doesn't rely on any other step and 
could be done by anyone feeling like it at any time :)

-- 
Aaron J. Seigo

<<attachment: fast_user_switching.png>>

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to