krunner qml

Aaron J. Seigo aseigo at kde.org
Thu Jan 10 11:57:50 UTC 2013


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fast_user_switching.png
Type: image/png
Size: 37502 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20130110/4658d0ca/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20130110/4658d0ca/attachment-0001.sig>


More information about the Plasma-devel mailing list