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





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

Reply via email to