[KDE Dot News]
 faq
 flatforty
 contribute
 subscribe
 configure
 search
 rdf

 main


  The Road to KDE 4: Job Progress Reimagined
KDE Public Relations and Marketing Posted by Troy Unrau on Tuesday 23/Jan/2007, @13:38
from the mockups-really-are-useful dept.
Have you ever had your taskbar filled with 10 applications all doing something that involved waiting for a task to finish? Document Printing Progress, a K3b CD burning dialogue, Audio Encoding via KAudioCreator, File Transfers in Konqueror, Kopete, KTorrent, checking email in KMail... The new Jobs support in KDE 4 will unify the display of progress for these tasks, making it easy to see and manage what is happening on your system. Read on for details.

Picture it as a cross between the Firefox download manager and the KDE printer queue, except that there is no real restriction on what type of jobs can be monitored. The way it works is that each KDE 4 app that has a progress dialog adds a flag for something called an Observer. Then, a separate application can observe any running Jobs, displaying progress and even adding certain actions (like "Cancel Download") which can be submitted back to the application that actually has the progress dialog. So the applications like K3b, which already have very good progress reporting, will not lose their existing dialogs, but rather additionally permit this new applet to observe its progress so that all the progress bars can be pulled into a convenient place.

What started as a mocked up KDE 4 Improvement via KDE-Look.org has turned into a full-fledged KDE 4 integration project, thanks to Rafael Fernandez Lopez. And there's been a lot of progress to the point where applications are already being adapted to the new infrastructure. Last Tuesday's "Binary Incompatible Changes" day saw much of the changes officially committed to the KDE 4 repository.

Below is the original mock up, done by KDE user and KDE-look.org contributor kiras, used with permission. Click to see the full-sized mockup.

mockup from kde-look.org by kiras, with permission

Please keep in mind that the above is a mockup, and does not necessarily reflect the ultimate look-and-feel goals of KDE 4, Plasma or Konqueror.

Currently, it is being prototyped as a standard system tray applet (similar to the printer queue in KDE 3.5.5) which would allow interoperability with GNOME's tray implementation as well. However, at this point only KDE applications can be observed, so monitoring download progress from Firefox for instance, is not currently supported. That is not to say it cannot be made to happen in the future since progress is observed using the standard D-Bus interprocess communication architecture. There are intentions to collaborate with the GNOME project's Mathusalem team, a project of similar scope as this one.

Here is a screenshot of the current appearance of the monitoring application as it would appear when clicking on the tray applet. As you can see, it's already looking very useful.

uiserver screenshot, KDE 4

As you can see, the Kopete buttons are mostly just placeholders at the moment, and only exist for testing purposes. However, when you click on one of those buttons, it actually sends a signal back to Kopete, and Kopete itself pops up that smaller dialog you see.

The Konqueror download progress bars you see being monitored represent an actual file download in progress. They continue even after Konqueror is closed. Useful action buttons like "Abort Download" are in the works.

If you'd like to get involved in KDE 4 development, adding support for the new KJobs progress monitoring is a fairly easy entry point to KDE programming. It takes only a few lines of code to adapt an application to display progress, and a few more lines to make the action buttons useful.

This new progress monitoring technology will be able to be integrated into Konqueror (like in the mockup), desktop applets, and anything else that uses D-Bus. I can even imagine a small web-app that lets you monitor progress remotely...

Rafael's goal after the initial implementation is completed is to add persistence, such that when a job is complete, it would optionally stay listed until closed by the user. He is also looking for feedback on this tool and its implementation for future improvements.

Look forward to more feature articles showcasing more great technologies for KDE 4.

A quick note on methodology: I make sure to use the KDE defaults for all of my screenshots, even if it's ugly, since then you can get a better sense of progress as KDE 4 evolves and grows from week to week. As a rule, all of the features I've demonstrated so far are publicly available in SVN, and anyone can reproduce my results. In today's article, I had to uncomment a single line of code to enable this in-development feature, which is an exception to my normal rules. Additionally, the Kopete progress support is not yet in the official KDE SVN repository, but Rafael uses it to test features.


<  |  >

 

  Related Links
 ·   Articles on KDE Public Relations and Marketing
 ·   Also by Troy Unrau
 ·   Contact author

Thread Threshold:

The Fine Print: The following comments are owned by whomever posted them.
( Reply )

Over 40 comments listed. Printing out index only.
Now we just need the plasmoid
by tikal26 on Tuesday 23/Jan/2007, @13:58
ok so this is great I begin looking foward tot he day when things like this would start poping up. I guess all that we need now is the bar plasmoid and some polish to make it great.
[ Reply To This | View ]
Digg this
by Tsiolkovsky on Tuesday 23/Jan/2007, @14:49
Help spread the news about this great feature by digging here:
http://digg.com/software/The_Road_to_KDE_4_Job_Progress_Reimagined_Screenshots
[ Reply To This | View ]
Original Idea
by Marc on Tuesday 23/Jan/2007, @14:54
I saw this idea by Amaury Chamayou on the old kde-artists forum.

Do someone know where all these beautiful mockups are gone ?
[ Reply To This | View ]
Tanks for this series
by stepan on Tuesday 23/Jan/2007, @15:01
I really like this KDE4 series, it's brilliant.
Tanks
[ Reply To This | View ]
IF we had more developers
by chri on Tuesday 23/Jan/2007, @16:38
KDE 4 would already have been released !
[ Reply To This | View ]
Thanks
by Daniel on Tuesday 23/Jan/2007, @16:40
Thanks a lot! This series definitely has me psyched!
[ Reply To This | View ]
please no vertical running text
by cies on Tuesday 23/Jan/2007, @17:02
vertial running text is a design flaw in many case; allthough we can do it quite easily with oure strong qt backend i argue against all its use (in horzontal languages).

there are about 3 words we can easily read vertical:

B
A
R

,

H
O
T
E
L

and

S
E
X


the others take significantly more time to recognise.

(ok i understand that my examples are not exactly fit for use in this arguement :-/ sorry, i hope you get my point though...)
[ Reply To This | View ]
Queued tasks
by Leo S on Tuesday 23/Jan/2007, @18:30
In many programs there is the concept of queued tasks, (downloading usually) and in others, it would be really useful to have this feature. The one that I run into time and time again is copying a file on the local hard drive.

Suppose I need to copy two large files to different locations on the same physical hard drive. They each have different start and destination locations. In konqueror (and any file manager) I can copy one, and it starts copying at a decent speed. Then I copy the next one and both slow down by an order of magnitude because now the disk is thrashing back and forth doing two transfers. If each transfer on its own would have taken 2 min, I would now be waiting probably 30 min for both of them to complete.

What we really need is a way to queue file transfer operations for media that has issues with two operations at the same time. HTTP downloads can already do this, if you start more downloads than the server will allow from your IP, then some of them will not start until the others finish.

I guess implementing this is more in the scope of konqueror, and not this job manager.
[ Reply To This | View ]
The taskbar!
by Luke on Tuesday 23/Jan/2007, @21:21
It'd be great if the taskbar were updated to take advantage of this so that each application could display at least one progress bar there, and maybe a mouseover would show you all of the progress bars for that application, as well as let you select the the one to be always displayed.

While I'm asking, it'd be nice to see progress bars in the tab bar for every page that is loading :)
[ Reply To This | View ]
Thank you all guys
by Rafael Fernández López on Wednesday 24/Jan/2007, @00:39
Hi,

I just want to thank you all your feedback. I am really glad to see people in general like what is going on at KDE trunk, and for KDE 4 series in general.

* The plasmoid is the idea. When plasmoids specification are available, I'd like to write some kind of plasmoid for this, or maybe move what I have right now there, we will see. But I think you can bet for a plasmoid about jobs.

* The queuing. Well, it can be implemented in the kuiserver, and I really think it would make sense here. I think it is really possible, and that I'm going to improve it to let you have an option for "Queue transfer jobs as they arrive", with the possibility to "Resume" the one that you want if you want to have some jobs on parallel.

I really appreciate all your opinions and ideas.

Thank you all again,
Rafael Fernández López.
[ Reply To This | View ]
Konqueror
by Martin on Wednesday 24/Jan/2007, @01:26
Will we also see the lower part of the screenshot implemented, where Konqueror implements its own observer to show download progress in-place?
[ Reply To This | View ]
This is great!
by Kevin Colyer on Wednesday 24/Jan/2007, @01:50
This is good news - I like this idea very much. It answers that question why do I have so many progress dialogs floating all over my desktop. I often need to know how a print job is progressing, how a file transfer is going. Having it all in one place will be so much clearer for me and new users. Ever seen a newbie look for info on a print job on any OS let alone KDE?

Will it be easy to make hooks for CLI apps? I guess with Dbus it could be. I would love a hook to rsync so I can see how a my home brewed backup is going!
[ Reply To This | View ]
ideas
by me on Wednesday 24/Jan/2007, @01:56
It would be great if you could pause a job, reboot and continue it later (session management

This might not be the uiserver's responsibility, but when copying a lot of files, is it possible to FIRST ask for confirmations for all to-be-copied files (do you really want to overwrite etc.) and THEN start copying? That way, I can leave the computer and be sure its done when I come back!

The copying-two-files-at-the-same-time-becomes-too-slow-problem is even worse when you're reading them from a cd/dvd!
[ Reply To This | View ]
KDE4 looks incredible
by Stromek on Wednesday 24/Jan/2007, @02:02
I cannot wait for the beta/RC and release. It is so wonderful, it is going to be so biiiiig improvement to desktop experience.

I wish all the people to use KDE desktop!
[ Reply To This | View ]
Programmer queston
by Diederik van der Boor on Wednesday 24/Jan/2007, @02:50
When I see examples like today at PlanetKDE (http://www.ereslibre.es/?p=11), I get a bit annoyed to see such generic name as "Observer" being used for this. How about a name like JobObserver or KJob::Observer?
[ Reply To This | View ]
This is very good
by ra1n on Wednesday 24/Jan/2007, @04:00
I like this, it's not a new concept, you can see this in beos tracker and mac os finder, but limited to file transfers, now a good point would be interoperability, like you said there are already some talks with gnome folks, but I think that a further step would be some kind of freedesktop job queue with common API that can be implemented in every DE, so if I run kde and want to run gftp for example I could see gftp's jobs run in kde tasks.
[ Reply To This | View ]
"Cancel" will finally mean something
by oldschool on Wednesday 24/Jan/2007, @05:30
It seems this is a great use of multi threading - being able to cancel a long operation. Most Qt3 and KDE3 apps, even if they have a cancel button your are at the mercy of the event loop before if and when it decides to accept the cancel callback.

I think this will go along way in making KDE 4 more user friendly. May I suggest that it be designed to not only work with DBus for interprocess communications but internal to the app itself. The goal being to make it simpler for programmers to do multi threading for simple thins like a "cancel" operation

Way to go Rafael
[ Reply To This | View ]
does it integrate with virtual desktops?
by testerus on Wednesday 24/Jan/2007, @05:48
How is this supposed to work with multiple desktops? Is it going to be like the taskbar: "Show progress information from all desktops", "Group similar jobs", etc.?
[ Reply To This | View ]
The looks of the mockup are great.
by Tom Corbin on Wednesday 24/Jan/2007, @07:49
Is that an existing look or something planned or just blue sky?
[ Reply To This | View ]
This is great!!
by kwilliam on Wednesday 24/Jan/2007, @08:03
I loved the mockup screenshot when I first saw it on KDE-look.org. I am totally excited to see that this awesome screenshot transforming into actual code! It's also bolstered my confidence that Konqueror will include improvements from some of the KDE4 mockups on KDE-look.org.

This progress applet will be so cool! A huge THANKS to all the KDE4 developers out there!
[ Reply To This | View ]
mockup
by vicko on Wednesday 24/Jan/2007, @12:29
http://www.kde-look.org/content/show.php?content=36385

http://www.kde-look.org/content/show.php?content=28476
[ Reply To This | View ]
Job Progress Applet
by Alex on Wednesday 24/Jan/2007, @13:28
Um, I'd like to point out that some apps, like KTorrent may have multiple tasks waiting to finish... Are we going to have drop-down lists of subtasks for each app? and display an 'overall progress' bar at the top of the list when it's collapsed? Just an idea for making the app useful for one more potential user.
[ Reply To This | View ]
I think...
by David on Wednesday 24/Jan/2007, @15:22
that the main panel buttons should reflect this. Whereas the windows taskbar buttons flash blue when the window wants attention, we could turn those buttons into miniature progress bars that would scroll their text.
[ Reply To This | View ]
What about YOU?
by great on Thursday 25/Jan/2007, @05:48
Hey user, ever thought abiut your role in this story? Your are not a programmer and you have no idea what you can do?
You can contribute in many ways by donations and thinks like that. Help the developers to cover their affords and give them something since they have spended a lot for you. They need money for meetings, textbooks, travel cost, ... . KDE is a community project ... and you are the community! Here is how you can support KDE:
http://www.kde.org/support/

But what do I see here?
http://www.kde.org/support/donations.php
What do I have to read? Last donation on Nov 28, 2006? Oh dear, isn'that poor? Remember, some little helps if a lot of people help a little! ;)
[ Reply To This | View ]
Really nice thought
by Georg Grabler on Thursday 25/Jan/2007, @08:13
I'm working daily with kde / kate to work off my development tasks. Though, it sounds very interesting, but the possibility to suppress those other windows from even opening would be worth a thought.
I'm thinking on developing on a machine with kate, code being on another machine (compilefarm / testing), connecting by fish. By opening thos files, a hundret and three dialogs open which i don't really want to see.
I'm aware that this is not what this interface is supposed to do, but still worth the tought.

The folding idea on subtasks sounds interesting, like "program groups", as application you see on the right side on the screenshot (processing x tasks and on a closer look the list).

Besides all those other projects i work on i could even imagine on getting my hands on this, since it could be a important feature for daily work, to see status of downloads copies transfers cd buring or ripping collected, without openeing one after the other application just to take a short look.

Kind regards,
Georg
[ Reply To This | View ]
new GUI
by Anton on Saturday 27/Jan/2007, @04:05
All of those improvements are good but I think it will be too hard to release on the current system. When I look at the mockup I understand that something looking like this is unreal without HTML+CSS-like technology. I think the better GUI improvement of KDE that can be is an ability to use XML+XSLT+CSS for rendering windows.
[ Reply To This | View ]
KDE4 development
by Pebete on Saturday 27/Jan/2007, @13:28
"If you'd like to get involved in KDE 4 development, adding support for the new KJobs progress monitoring is a fairly easy entry point to KDE programming. It takes only a few lines of code to adapt an application to display progress, and a few more lines to make the action buttons useful."

How can I get involved?
[ Reply To This | View ]
Notifications too?
by Colin on Sunday 28/Jan/2007, @06:46
Its great that we will finally get a unified and tidy way of displaying and keeping task progress together and I'm sure this framework will make lots of developer's lives easier.

I currently use Metamonitor (http://metamonitor.sourceforge.net) for getting notifications of certain events through system logs (such as plugging in USB devices and my backup scripts running, etc). Would it be possible to combine this functionality with this progress manager?

They're both concepts that require a dialog to be shown for a certain period of time, usually near the system tray area for neatness and consistency and may be stacked up with several other dialogs. I also think it would be useful for it to show a recent history of notifications too as you can sometimes miss what these notifications say because of the popup auto-close (which is normally a good feature IMHO). Applications/services such as Kopete and KBluetooth could then use the same framework for their notifications.
[ Reply To This | View ]
One suggestion
by Maciej Cencora on Thursday 01/Feb/2007, @09:44
That's great idea.
But please add an option "Shutdown computer after all jobs are finished" so user could go sleep, not waiting for printing/downloading/file copying being finished :)
Can't wait for KDE 4 release.
[ Reply To This | View ]
I Know this doesn't have anything to do with this
by dan on Thursday 01/Feb/2007, @22:38
But what about doing something about the taskbar hell????

I Believe Steve Jobs got it right with Just showing icons for launchers, and then when you launch them they get an arrow to show they're active, and if you click it it shows the windows. Of course there is expose for kde, and its great, but I think kde guys should try to think something to improve the taskbar hunting hell...
virtual desktops helps... sometimes... sometimes its more dificult to look for each desktop looking for the window you want.

My biggest friend now is expose for kde because the taskbar is so slow to use.

Let's learn from the masters! KOOLDOCK for everyone, or something even better? Some brainstorming in this area is needed!!!!
[ Reply To This | View ]
Window
by Vladsinger on Saturday 09/Jun/2007, @14:30
It would be nice if this could be implemented in a way that looks a bit more like the mockup, with a clean, borderless menu. That would be perfect.
[ Reply To This | View ]
Job inerface for simply playing soundfiles?
by Erik on Friday 24/Aug/2007, @23:10
This job progress interface can also be used to simply play a soundfile from the file manager, without opening a bloated media player with playlists and such, right?

As far as I understand, the interface even supports buttons, such as pause and seek (for example the "Pause" and "Cancel" buttons in the dialog for the download of "install-x86-universal-2005.1.iso" in the screenshot).
[ Reply To This | View ]
Please conserve screen space
by Anders Troberg on Wednesday 19/Sep/2007, @06:26
Looking sweet, and something I have wanted for a long time. However, the mockups, while looking good, do waste a lot of screen space and could be smaller.

Also, without knowing anything about the underlying API's, it would be nice if it was possible to hook into it and listen to the status information. For instance, it would allow such things as adding LED bars on the computer case as status bars. Not only practical, but cooler than a great white shark with shades.
[ Reply To This | View ]
The Fine Print: The previous comments are owned by whomever posted them.
( Reply )

  "Feature freeze: You're allowed to add new bugs, but no new features." -- Richard J. Moore
KDE®, "K Desktop Environment", "KDE Dot News", "got the dot?" and the KDE Logo® are trademarks or registered trademarks of KDE e.V. in the European Union, the United States and other countries. All other trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the poster. The rest: Copyright © 2000-2008 KDE e.V. for The KDE Project. For further information or comments on this site, please contact the Webmaster.
[ home | post article | flat forty | subscribe | search | rdf ]