Discussion for libtaskmanager internals
Michail Vourlakos
mvourlakos at gmail.com
Fri Aug 5 09:12:54 UTC 2016
Hello everybody,
I am implementing an alternative task manager for plasma (in mac way of
animating) and I am using the new libtaskmanager. I have reached in a
situation which I need to discuss with you what I have understood and
why I probably hit a wall in my use case.
The use case is that the alternative task manager let's call it (Now
Dock), is only a list of icons (like icon tasks) grouped based on the
application name with no different instances per window, everything is
grouped in the same icon either a launcher or a window.
I use the TaskModel provided from libtaskmanager and a situation appears
when a new application window is added which troubles me a lot.
The tasks follow an appearance path which is the following:
Launcher(if exists) -> StartUp -> Window
------
Discussion: 1
there are removals and adds in the TaskModel for each step of the
previous task and trying to create logical animations for the previous
path is a mess.
e.g. There is a Firefox launcher with no windows appearing at all, when
the first Firefox is appearing then the launcher item in the model is
removed and a startup item in the model is added, after a while the
startup item in the model is removed and the window item is added (all
of them in them position), this is (2 removals and 2 adds).
Is this the intended behavior?
I believe that a more friendly approach is needed in my use case for
example instead of 2 removals and 2 adds just an update in the values.
The launcher is already there, so updating its state to startup and then
to a window would be enough.
The same adds and removals are also appearing even when there is no
launcher for an application. A startup item is added in the model then
after a while is removed and then in the same position a window appears.
This creates a very messy effect to the eye. Adding
item(Firefox-startup), after a while a second item(Firefox - window),
and then removing the first item(startup) and the second item(window)
taking its position.
---
Discussion: 2
Another important aspect in the TasksModel which bothers me is that each
item in the model does not have the same pair values. for example a
startup item does not have an "IsWindow" value, qml triggers "undefined"
for property "IsWindow" in its case and this is a way to ckeck its
existence, not by true or false but from the property's existence.
Is this also the intended behavior?
I usually when I create ListModels I try the items to have the same pair
of values like a database, in order to be more developer friendly when
they are used in the delegates.
---
Discussion: 3
What I am proposing is that there shouldnt be adds and removals from
startup to window, only updates. The same is when there is a launcher,
only updates. I believe adds and removals should be only for new items,
for example when windows are not grouped together or are not grouped
with their launcher. I dont consider a startup different in the model
from the window or at least there should be a choice for the developer
if he wants to have two different items in the model for startup and window.
thank you a lot in advance,
michail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160805/f6012e00/attachment.html>
More information about the Plasma-devel
mailing list