Review Request: taskmanager library: Manual Sorting Fix

Christian Mollekopf chrigi_1 at fastmail.fm
Sat Oct 17 18:57:29 CEST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/1526/
-----------------------------------------------------------

(Updated 2009-10-17 16:57:29.802942)


Review request for Plasma, Aaron Seigo and Marco Martin.


Changes
-------

This patch is a refactoring of taskbar library.
Currently one rootGroup is used as library representation of the visualization.

For manual grouping/sorting the tasks are remembered to restore the old grouping/sorting after a desktop change.

The patch uses another approach, by creating a rootGroup for each desktop (and later also screen).
This allows us to remove all the code which was used to store the grouping/sorting (which was also rather messy IMHO), since no reevaluation is done when we return to the old desktop.
The only change to the library user is:
Instead that all tasks are removed when the desktop changes, the rootGroup changes.
The patch includes this fix for the tasks plasmoid, which is afaik the only user of the library so far.


The patch is not yet completely clean, but works basically (Screen handling is not yet implemented).
Please tell me if you are all fine with this approach.

I will send a cleaned up version within the next days...


Summary
-------

this fixes the manual sorting strategy, which is broken atm if the desktop is changed.

Since the manual sorting strategy relies on AbstractGroupableItem pointer not to change, we cannot remove it from the bookkeeping in case it returns (after a desktop change for instance).
I don't know if this is acceptable because this results in the item never being removed from the itemList until the groupmanager instance is deleted (lifetime of the applet which created the instance).

Another option would be to identify tasks and groups by WId, which is a bit more complicated, but if you think it would be better/cleaner, i could supply a patch.


This addresses bug 200255.
    https://bugs.kde.org/show_bug.cgi?id=200255


Diffs (updated)
-----

  /trunk/KDE/kdebase/workspace/libs/taskmanager/abstractgroupableitem.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/abstractgroupingstrategy.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/abstractgroupingstrategy.cpp 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/abstractsortingstrategy.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/abstractsortingstrategy.cpp 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/groupmanager.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/groupmanager.cpp 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/strategies/manualgroupingstrategy.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/strategies/manualgroupingstrategy.cpp 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/strategies/manualsortingstrategy.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/strategies/manualsortingstrategy.cpp 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/taskgroup.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/taskgroup.cpp 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/taskitem.h 1034424 
  /trunk/KDE/kdebase/workspace/libs/taskmanager/taskitem.cpp 1034424 
  /trunk/KDE/kdebase/workspace/plasma/desktop/applets/tasks/tasks.h 1034424 
  /trunk/KDE/kdebase/workspace/plasma/desktop/applets/tasks/tasks.cpp 1034424 

Diff: http://reviewboard.kde.org/r/1526/diff


Testing
-------

Tried it, works.


Thanks,

Christian



More information about the Plasma-devel mailing list