[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request: taskmanager library: Manual Sorting Fix
From:       "Christian Mollekopf" <chrigi_1 () fastmail ! fm>
Date:       2009-10-17 16:57:29
Message-ID: 20091017165729.10842.85191 () localhost
[Download RAW message or body]


-----------------------------------------------------------
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

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic