<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><font size="+1">Hello everybody,</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1">I use the TaskModel provided from libtaskmanager
and a situation appears when a new application window is added
which troubles me a lot.</font></p>
<p><font size="+1">The tasks follow an appearance path which is the
following:</font></p>
<p><font size="+1">Launcher(if exists) -> StartUp -> Window</font></p>
<p><font size="+1">------<br>
</font></p>
<p><font size="+1">Discussion: 1<br>
</font></p>
<p><font size="+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.</font></p>
<p><font size="+1">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). <br>
</font></p>
<p><font size="+1">Is this the intended behavior?</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1">---<br>
</font></p>
<p><font size="+1">Discussion: 2</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1">Is this also the intended behavior?</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1">---</font></p>
<p><font size="+1">Discussion: 3</font></p>
<p><font size="+1">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.</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1">thank you a lot in advance,</font></p>
<p><font size="+1">michail<br>
</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1"><br>
</font></p>
<p><font size="+1"><br>
</font></p>
</body>
</html>