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