[dot] The Road to KDE 4: Job Progress Reimagined
Dot Stories
stories at kdenews.org
Tue Jan 23 22:39:53 CET 2007
URL: http://dot.kde.org/1169588301/
From: Troy Unrau <troy.unrau at gmail.com>
Dept: mockups-really-are-useful
Date: Tuesday 23/Jan/2007, @13:38
The Road to KDE 4: Job Progress Reimagined
==========================================
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
[http://www.kde-look.org/content/show.php?content=33673] via
KDE-Look.org [http://www.kde-look.org] has turned into a full-fledged
KDE 4 integration project, thanks to Rafael Fernandez Lopez
[http://ereslibre.livejournal.com/]. 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
[http://www.kde-look.org/usermanager/search.php?username=kiras], used
with permission. Click to see the full-sized mockup.
[http://static.kdenews.org/jr/vol4_mockup.jpg]
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 [http://tw.apinc.org/weblog/2006/08/22] 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.
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.
More information about the dot-stories
mailing list