[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