Description: This is a modified version of the default task list plasmoid from KDE 4.3 beta. It has a new configuration option "Show vertically" and shows tasks 90 degree rotated when in a vertical panel. This way it fits as much text as in a horizontal panel. In horizontal panels it is displayed normally. Tasks are rotated -90 degrees in panels on the left and 90 degrees in panels on the right (see screenshots). Grouped tasks are also rotated.
Hope you like it. Comments are appreciated :-)
I didn't change much in the default tasks plasmoid, just added a few lines. Added an offscreen pixmap to draw the tasks normally and then draw them 90 degree rotated to screen. And I swapped the width/height of the preferred size of the tasks.
I have this error with make:
[ 71%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/taskitemlayout.o
[ 85%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/abstracttaskitem.o
[100%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/taskgroupitem.o
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp: In member function ‘virtual void TaskGroupItem::updateToolTip()’:
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:276: erreur: ‘class Plasma::ToolTipContent’ has no member named ‘setWindowsToPreview’
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp: In member function ‘void TaskGroupItem::popupMenu()’:
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:582: erreur: ‘class Plasma::Dialog’ has no member named ‘animatedHide’
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:582: erreur: ‘locationToInverseDirection’ is not a member of ‘Plasma’
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:595: erreur: ‘class Plasma::Dialog’ has no member named ‘animatedShow’
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp: In member function ‘virtual bool TaskGroupItem::eventFilter(QObject*, QEvent*)’:
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:611: erreur: ‘class Plasma::Dialog’ has no member named ‘animatedHide’
.../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:611: erreur: ‘locationToInverseDirection’ is not a member of ‘Plasma’
make[2]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/taskgroupitem.o] Erreur 1
make[1]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/all] Erreur 2
make: *** [all] Erreur 2
I have Mandriva 2009.1 with Kde 4.2.4
On Fedora 11, KDE 4.3.1
When I compile, I get:
abstracttaskitem.h:127: error: ‘AbstractItemPtr’ in namespace ‘TaskManager’ does not name a type
I succeed to compile by changing each "AbstractItemPtr" by "AbstractGroupableItem *"
It compiles and runs.
Hoping this can help other people (or used to patch the release ?)
I get a similar error running 'make'
[ 85%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/abstracttaskitem.o
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp: In member function ‘virtual void AbstractTaskItem::hoverLeaveEvent(QGraphicsSceneHoverEvent*)’:
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:307: error: ‘Atom’ was not declared in this scope
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:307: error: expected `;' before ‘atom’
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:308: error: ‘atom’ was not declared in this scope
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:308: error: ‘XDeleteProperty’ was not declared in this scope
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp: In member function ‘virtual void AbstractTaskItem::timerEvent(QTimerEvent*)’:
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:442: error: ‘Atom’ was not declared in this scope
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:442: error: expected `;' before ‘atom’
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:443: error: ‘atom’ was not declared in this scope
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:443: error: ‘PropModeReplace’ was not declared in this scope
/home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:444: error: ‘XChangeProperty’ was not declared in this scope
make[2]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/abstracttaskitem.o] Error 1
make[1]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/all] Error 2
make: *** [all] Error 2
Any suggestions to correct errors would be helpful
KDE 4.3 Kubuntu
Hm.. for me it builds fine, but I'm using gcc 4.3.2. As the previous commentator mentioned this problem seems to arise when using gcc 4.4 (default in kubuntu 9.04 I think). Did you try his fix? If not, try to add this line to the beginning of abstracttaskitem.cpp: "#include <X11/Xlib.h>". Hope that fixes it. If not, I could insert my changes to a new version of the default KDE tasks plasmoid..
...to have options.
Working fine with the Kubuntu 9.10 (alpha-1) / KDE 4.2.85.
When building there was an error: "abstracttaskitem.cpp:307: error: ‘Atom’ was not declared in this scope". That was fixed by "#include <X11/Xlib.h>" at the abstracttaskitem.cpp.
Maybe it is the GCC 4.4: http://www.cyrius.com/journal/gcc/gcc-4.4-include
Thank you of the fine plasmoid !
You could try it out with the 4.3 beta 1, that should work.
I also thought about integrating this idea with vertical plasma panels, so that all plasmoids in vertical panels are rotated automatically. Maybe it's worth adding a config option in the panel controller (and maybe only shown when the panel is vertical)?
Ratings & Comments
11 Comments
I have this error with make: [ 71%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/taskitemlayout.o [ 85%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/abstracttaskitem.o [100%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/taskgroupitem.o .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp: In member function ‘virtual void TaskGroupItem::updateToolTip()’: .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:276: erreur: ‘class Plasma::ToolTipContent’ has no member named ‘setWindowsToPreview’ .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp: In member function ‘void TaskGroupItem::popupMenu()’: .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:582: erreur: ‘class Plasma::Dialog’ has no member named ‘animatedHide’ .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:582: erreur: ‘locationToInverseDirection’ is not a member of ‘Plasma’ .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:595: erreur: ‘class Plasma::Dialog’ has no member named ‘animatedShow’ .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp: In member function ‘virtual bool TaskGroupItem::eventFilter(QObject*, QEvent*)’: .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:611: erreur: ‘class Plasma::Dialog’ has no member named ‘animatedHide’ .../Task-Rotated-In-Vertical-Panels-0.1/taskgroupitem.cpp:611: erreur: ‘locationToInverseDirection’ is not a member of ‘Plasma’ make[2]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/taskgroupitem.o] Erreur 1 make[1]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/all] Erreur 2 make: *** [all] Erreur 2 I have Mandriva 2009.1 with Kde 4.2.4
On Fedora 11, KDE 4.3.1 When I compile, I get: abstracttaskitem.h:127: error: ‘AbstractItemPtr’ in namespace ‘TaskManager’ does not name a type I succeed to compile by changing each "AbstractItemPtr" by "AbstractGroupableItem *" It compiles and runs. Hoping this can help other people (or used to patch the release ?)
It might be a good idea to also release this as a patch that people can apply to the source of the original task manager.
Great work! But doesn't seem to work in kde 4.3. no tasks are shown. could you update it for kde 4.3?
I get a similar error running 'make' [ 85%] Building CXX object CMakeFiles/plasma_applet_tasks_vertical.dir/abstracttaskitem.o /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp: In member function ‘virtual void AbstractTaskItem::hoverLeaveEvent(QGraphicsSceneHoverEvent*)’: /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:307: error: ‘Atom’ was not declared in this scope /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:307: error: expected `;' before ‘atom’ /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:308: error: ‘atom’ was not declared in this scope /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:308: error: ‘XDeleteProperty’ was not declared in this scope /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp: In member function ‘virtual void AbstractTaskItem::timerEvent(QTimerEvent*)’: /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:442: error: ‘Atom’ was not declared in this scope /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:442: error: expected `;' before ‘atom’ /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:443: error: ‘atom’ was not declared in this scope /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:443: error: ‘PropModeReplace’ was not declared in this scope /home/ian/Downloads/105287-tasks_vertical/abstracttaskitem.cpp:444: error: ‘XChangeProperty’ was not declared in this scope make[2]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/abstracttaskitem.o] Error 1 make[1]: *** [CMakeFiles/plasma_applet_tasks_vertical.dir/all] Error 2 make: *** [all] Error 2 Any suggestions to correct errors would be helpful KDE 4.3 Kubuntu
Hm.. for me it builds fine, but I'm using gcc 4.3.2. As the previous commentator mentioned this problem seems to arise when using gcc 4.4 (default in kubuntu 9.04 I think). Did you try his fix? If not, try to add this line to the beginning of abstracttaskitem.cpp: "#include <X11/Xlib.h>". Hope that fixes it. If not, I could insert my changes to a new version of the default KDE tasks plasmoid..
...to have options. Working fine with the Kubuntu 9.10 (alpha-1) / KDE 4.2.85. When building there was an error: "abstracttaskitem.cpp:307: error: ‘Atom’ was not declared in this scope". That was fixed by "#include <X11/Xlib.h>" at the abstracttaskitem.cpp. Maybe it is the GCC 4.4: http://www.cyrius.com/journal/gcc/gcc-4.4-include Thank you of the fine plasmoid !
I personally very like the idea, but unfortunately I was not able to install it on my KDE4.2 :/
You could try it out with the 4.3 beta 1, that should work. I also thought about integrating this idea with vertical plasma panels, so that all plasmoids in vertical panels are rotated automatically. Maybe it's worth adding a config option in the panel controller (and maybe only shown when the panel is vertical)?
Well that was definetly worth mentioning /sarcasm
It is interesting, but I prefer a vertical task bar where each item is an icon with text under it, not at right and not rotated.