prev
Issue 90
23rd December 2007
by Danny Allen
next


This Week...
Trolltech-sponsored development continues on Phonon backends. Support for saving to remote URL's in Gwenview. A "Now Playing" data engine and applet, and the train clock returns in Plasma. "Switch Tabs on Hover" can now be disabled, and other refinements in Kickoff for KDE 4.0. Work on a debugger (with a SpeedCrunch-inspired interface) for KHTML. Work to support the most recent release of the Flash (version 9) multimedia plugin in Konqueror. SOCKS support in KTorrent. Device handling fixes in KPilot. More work on music services in Amarok 2.0. Further work on the KChart Flake shape in KOffice. More panorama work, amongst other developments in KOffice. Support for the Bonjour protocol in Kopete. Initial import and development of a MS Cabinet format archive reader. The temporarily-named Video Player, formerly-known-as-Codeine, has been finally renamed to Dragon Player.

Kévin Ottens recently did a talk at the FOSS.in 2007 conference titled "KDE/ISI Student Projects: The real story of a few students near Toulouse". Here is a summary of his talk:
Shakespeare says it all...

Two households, both alike in dignity,
In fair Toulouse, where we lay our scene,
From ancient grudge break to new mutiny,
Where student blood makes academic hands unclean.
et caetera

Wait! This time, it has a Happy End(tm) - this time we have Konqui instead of Mercutio!

Introduction
KDE 4 is coming. It will be the next major version of the KDE project, but all this is only possible thanks to its contributors. Many of them started contributing in their free time while still being students. We can get even more students contributing by proposing student projects in universities. I therefore present a collaboration experiment conducted last year near Toulouse, France with the IUP ISI at the Paul Sabatier University.

The ISI is a "Professional Institute" (with the IUP quality label), performing software engineering with a strong focus on project management, development processes, quality assurance, and distributed and real-time systems.

The goals of the KDE/ISI collaboration are to enable students to apply what they learn in class to a dynamic, real-world project, learn new techniques and technologies by themselves, and to experience project management and client relationships "for real".

The collaboration is organised as a group of 6 month projects, with professors acting as the client team, and students acting as the development team. In our first year of the experiment, we proposed projects close to the usual topics: KPlato for project management, and Umbrello for UML modeling. To assist the students, we installed a machine with NX so that they can test applications without needing to install another operating system (some students still don't run Linux!), and so that they do not need to deploy the unstable software on their work computer.

Problems and solutions
The obvious potential problems of the experiment include:
  • Deployment of the development platform
  • No communication with the community
  • Troubles tracking community progress:
    • We began shortly after the "BIC monday" policy within KDE development
  • Visibility of the work done

To mitigate these potential problems, we:
  • Gave technical support during the first weeks (deployment)
  • Allocated KDE mentors before the students started:
    • Jonathan Riddell (Umbrello)
    • Thomas Zander & Will Stephenson (KPlato)
  • Pushed them to contact sysadmin for KDE SVN accounts
  • Let them choose how to work:
    • 3.5 vs trunk?
    • In a specific branch or not?
  • Tracked the commit logs

Umbrello and KPlato defences (evaluation session)

Work officially done in the first year of the experiment:
  • KPlato
    • More views (tasks per resource, metrics and graphs)
    • PERT support (view, editor, critical path)
  • Umbrello
    • Migrated to a sane undo/redo framework
    • Added support for some UML 2.0 primitives:
      • Sequence diagram
      • Activity diagram
"Hidden work" (after the official end of the projects):
  • Umbrello branch merged back on trunk
  • KPlato architecture improvements proposals

How did it work?
What worked well:
  • Interaction with the community
    • Students were shy but felt welcomed
    • Slowly improved their communication
  • Unexpected idea: two Hacking Sessions on Saturdays
    • February and March, the last two months
    • Formed a core team, it's now monthly!
Areas for improvement:
  • Project management
    • Not easy to be process-driven inside the community
    • Professor team should be more pro-active in this area
  • Visibility of third year students work

February and March hacking groups

In the second year of the KDE/ISI collaboration, we modified the rules of the system. The current situation at the IUP ISI is that students can propose as many projects as they want, covering any domain that they want (eg. instant messaging, multimedia, etc).

Some of the students who participated in the first year of the experiment are still active in KDE, and many of them found nice internships thanks to their projects: some of them even spread Free Software at their internship!

In the second year of the collaboration, we also have less constraints on the projects, and with the success of the first year, we can now have more groups (4 teams, a +100% raise!). We have more manpower, thanks to awareness in the KDE community and because students from the first year are willing to help.

Learning from past mistakes
  • Reduce the load on people to allow better scalability
  • Ensure more visibility of student work
  • Avoid the client confusion experienced
    • Professors acted as client, but they didn't have the required "user knowledge"
  • Revised organisation
  • One project manager, who
    • Receives a report from the client at each iteration
    • Discusses the documents and project progress during meetings
    • Proposes ways to improve the project management
  • Technical support
    • Two people per project
    • A group available for daily concerns (mostly on IRC)
    • Available on site once a week
    • Proposes ways to improve application design and code production

Communication processes within the collaboration

This year, we first introduced all the potential projects to the students, and then let them form teams of four students and choose the project they wanted - this gave them experience in conflict resolution! The projects chosen by the teams (see photo below) are:

Teams in the second year of the KDE/ISI collaboration

Toward Free and Open Source World Domination?

Spread outside the IUP ISI?
  • In discussion with a local engineering school for a similar scheme
  • Need to adapt depending on the type of school, their schedule, etc.
Spread outside Toulouse?
  • In my opinion, we must spread these kind of schemes
  • Probably needs to be adapted depending on the culture
  • People willing to replicate in India and other countries?
An important consideration is that, though all that I introduced above is a collaboration with the KDE project, the general ideas can probably be used in other projects. Pick your favorite project - it's all Free Software!

Advice to get you started
  • Build trust
  • Both with students and professors
  • Give the professors guarantees on how to track progress
    • Even if they don't use them
  • Be flexible and committed
  • Be ready to give up on the type of applications chosen
    • At least the first year
    • With success, you can ask for more
  • Be ready to feel alone when supporting the students on the technical side
    • At least the first year
    • With success, you can get more help thanks to new blood

Summary

The Idea
  • Setup Free Software projects as part of a course of study
  • Have groups of students working on a common project
The Outcome
  • Students get a better chance to have an interesting internship/job thanks to Qt & KDE skills
  • More people working on Free Software applications during the project span (6 months!)
  • Addiction: Fresh blood enter the project community!

Thanks
  • To the professors of the IUP ISI, Toulouse for their support of new ideas and for allowing this idea to grow.
  • To the adventurous students for the nice work done (and congrats on your diploma!)

How to help
  • Spread the idea to universities near to you
  • Try to set it up in other universities
    • Feel free to ask for advice or information!
    • If needed I can also discuss with your professor/staff, etc.

It seems no one really noticed, but the buzz rankings of the statistics section of each Digest have been frozen for the last several months (until I was able to move the processing to a different machine). This week I finally had time to do it, and i'm very slightly surprised at the rankings - I must find the secret of Tobias Hunger's power (or adjust the algorithm for "realism")! Also added are the "pillars of KDE 4", such as Plasma and Solid - as you might have guessed, Amarok has finally been dethroned at the top of the "programs" table! See the complete rankings here.

Not too long ago, someone wrote a comment saying that the best way to earn money in Open Source is through donations. I chuckled to myself: since i've had my little, unobtrusive "Make a Donation" button on the left of every Digest page (it's been months), i've received a total of 3 donations. Part of the reason for this is surely that I have never actively promoted it, and that is because I don't do the Digest for monetary gain - and this will continue to be the case for as long as I produce the Digest. However, this week i'm going to do a little experiment!

The laptop I use (my only computer) to produce the Digest is now 4 years old, and it's starting to show its age. This week i'm having a donation drive - I call it "lets-get-dannya-a-new-laptop", and for those with extra money they just don't know what to do with, the solution is right here:
I go into this with no expectations: I already have most of the money towards this goal. And this is really for people with disposable income and who are not already significant contributors to KDE - KDE contributors are already honourary contributors to an even more important goal. For those who can't/don't want to donate, there are other ways to show your appreciation - maybe leave a comment at the Dot, or email me.

Or do all three. Or do neither. Whatever you do, continue enjoying the Digest each week, just as I enjoy bringing it to you!


Statistics
Commits: 2890 by 233 developers, 6667 lines modified, 2241 new files.
Open Bugs: 15224
Open Wishes: 13354
Bugs Opened: 294 in the last 7 days.
Bugs Closed: 303 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
925
/trunk/l10n-kde4
912
/branches/work
214
/trunk/extragear
174
/trunk/playground
145
/trunk/koffice
126
/trunk/www
75
/trunk/l10n-kde3
70
/branches/stable
62
/branches/extragear
58
Lines Developer Commits
187
Erdal Ronahi
150
109
Marcell Lengyel
109
189
Pino Toscano
85
159
Laurent Montel
75
58
Kevin Patrick Scannell
58
144
David Faure
55
53
Marc Mutz
53
99
Andreas Pakulat
51
51
Danny Allen
51
130
Albert Astals Cid
46

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
99.95%
Greek
99.94%
Swedish
99.91%
Japanese
95.03%
German
90.13%
Estonian
89.56%
Spanish
87.66%
Chinese Traditional
85.87%
Polish
85.30%
Low Saxon
84.90%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Leonardo Finetti
39
Luboš Luňák
29
Jason Stubbs
27
Thomas McGuire
26
George Goldberg
25
Aaron J. Seigo
20
Pino Toscano
18
Greg Martyn
13
Tommi Tervo
12
Thomas Friedrichsmeier
10

Program Buzz
Plasma
  10721
Amarok
  7260
K3B
  4110
KMail
  3940
Kopete
  3785
Kate
  3075
Solid
  2527
KDevelop
  2335
SuperKaramba
  2030
Kicker
  1992


Person Buzz
Tobias Hunger
  2800
David Faure
  2440
Allen Winter
  2430
Stephan Kulow
  2185
Stephan Binner
  1309
Adriaan de Groot
  1250
Laurent Montel
  1212
Jonathan Riddell
  1015
Aaron Seigo
  756
Thiago Macieira
  752
Commit Countries

Commit Demographics
Sex
84.0 %       Male
10.8 %       (unknown)
3.87 %       Female
Motivation
47.1 %       (unknown)
39.6 %       Volunteer
11.9 %       Commercial
 
Ages
62.1 %       (unknown)
16.9 %       25 to 34
12.7 %       18 to 24
3.36 %       35 to 44
2.51 %       45 to 54
1.00 %       Under 18


Contents
  Bug Fixes Features Optimise Security Other
Accessibility
Development Tools [*] [*] [*]
Educational [*] [*]
Graphics [*]
KDE-Base [*] [*] [*] [*]
KDE-PIM [*] [*] [*]
Office [*] [*] [*]
Konqueror
Multimedia [*] [*] [*]
Networking Tools [*] [*] [*]
User Interface [*]
Utilities [*] [*]
Games
Other [*]


Bug Fixes
Educational
Jason Harris committed a change to /trunk/KDE/kdeedu/kstars/kstars/kstarsdata.cpp:
Fixing Bug 94895:
The KDE4 codebase is much more efficient in the way it determines whether objects are onscreen, so we can now update the sky more often without stressing the CPU too much.
Bug 94895: Resolution of object's size is bad
Diff Revision 751536

KDE-Base
Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:
fixes for the terminal panel:
* assure that the correct directory is entered when reopening the terminal
* let the terminal be focused also when reopening it
Bug 153785: terminal doesnt start in current directory
Bug 153756: terminal doesnt always start focused
Diffs: 1, 2 Revision 749039

Thomas Zander committed changes in /trunk/KDE/kdebase/apps/konsole/src:
This makes sure that if you create a new tab it will always inherit the current dir, unless the profile you use (either the default using 'new tab' or using a profile specifically) has a directory set. In which case it will go to that dir.
Bug 152449: Using "New Tab" using a profile that has a directory se...
Diffs: 1, 2, 3 Revision 749736

Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src:
Fix the long standing limitation where multiple views on the same terminal session had to be the same size - the size of the smallest view. This means that it is now possible, for example, to have a large view on a session for browsing and examining output and a smaller view on the same session for input.

The underlying terminal does not support the concept of multiple windows, so the size reported to terminal applications is still that of the smallest view. Full-screen applications such as vim and emacs will therefore be the size of the smallest view on all views.

* Add a method in ScreenWindow to set the size of the window (in lines, the number of columns is still ifxed).
* Call this method in TerminalDisplay to set the window size when the widget is resized or when the screen window of a display is initially set.
* Fix ScreenWindow::getImage() and ScreenWindow::getLineProperties() so that they do not attempt to retrieve information about lines beyond the end of the screen.
* Fix ScreenWindow::getLineProperties() to always return result vector of size windowColumns(), though the number of elements copied from the screen may be less.
Diffs: 1, 2, 3 Revision 749874

David Faure committed changes in /trunk/KDE/kdelibs/kdeui/util:
Fix KCursor autohide feature for scrollareas like KTextEdit:
the widget gets key events, the viewport gets mouse events, so we need an event filter on each one.
Bug 153241: Text box mouse cursor hidden
Diffs: 1, 2 Revision 750183

Germain Garand committed a change to /trunk/KDE/kdelibs/khtml/rendering/render_form.cpp:
retrieve the LineEdit's frameWidth from the style rather than from a hardcoded random value.

fix linedits appearing too thin in oxygen style
Bug 153570: Default input field height to small
Diff Revision 750187

Albert Astals Cid committed changes in /trunk/KDE/kdebase/runtime/kcontrol/locale:
allow the languages that don't have systemsettings translations to set the language too.

we need to mantain our own language list instead of using KLocale's because KLocale does not add a language if there is no translation for the current application so it would not be posible to set a language which has no systemsettings/kcontrol module translation

Patch idea suggested by Chusslove tested and approved by him too
Diffs: 1, 2 Revision 750693

Maksim Orlovich committed changes in /trunk/KDE/kdelibs/khtml/ecma/debugger:
- Properly update line numbers in the backtrace data structure all the time, not just when we're entering a context (so if one stops in the middle of something, the lines are actually correct)

- Make the callstack display actually usable, and let is jump around the code.
It doesn't change the context for the variable display. Maybe it should. Maybe it shouldn't. Not sure. But it sounds too much like a feature, so at this point I'll take "no" as the answer.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 751456

Jason Stubbs committed a change to /trunk/KDE/kdebase/workspace/plasma/containments/panel/panel.cpp:
Set the panel's minimum size to its initial size so that removing applets doesn't decrease its size. This should be set to the size that the user wants once user resizing is implemented.
Diff Revision 751541

KDE-PIM
Kevin Krammer committed a change to /trunk/KDE/kdepim/kmail/kmcomposewin.cpp:
- Fix signal/slot connection for on-demand spell checking.
- Forward toggling of continuous spellchecking mode to the editor widget, which unfortunately doesn't work when it is in RichText format input mode.
Diff Revision 749216

Jason vanRijn Kasper committed changes in /branches/KDE/3.5/kdepim/kpilot/lib:
- Woot! Fixing major breakage for funky usb devices. pulled back some removed code from KDE 3.5.6's kpilot for usb workaround code and fit it into the new threaded model. This fixes syncing for me on my Palm Treo 700p.
- Reformatting and cleaning up kpilotdevicelink.cc.
- New Private.h to hold the bits of kpilotdevicelink.cc that should not be exposed via kpilotdevicelink.h. Also, DeviceCommThread extends QObject and QThread, so we need to have automoc run on it.
- Switching from using QCustomEvent to using QEvent for device tickle thread to match what is done in kpilotdevicelink.
Diffs: 1, 2, 3, 4 Revision 749517

Jason vanRijn Kasper committed changes in /trunk/KDE/kdepim/kpilot/lib:
- Bringing changes over from kde3 branch.
- This fixes the Treo 700p (and other devices) by bringing back the pre-device-comm-thread approach, while still maintaining the fixes I brought in with the non-GUI thread for device comm.

Namely, we still use a thread to do all the low-leve comm work, but instead of looping, we allow 2 paths: 1) a timer fires, which means we couldn't re-establish comm, or 2) a QSocketNotifier tells us that there's data available on the HotSync port.
Diffs: 1, 2, 3, 4, 5 Revision 750769

Thomas McGuire committed changes in /trunk/KDE/kdepim/kontact/plugins:
Fix some D-Bus calls to the groupware interface. Untested.
Once the groupware D-Bus stuff has been properly ported, we can use an auto-generated interface for this, so these kind of errors don't happen again.
Bug 154201: DBUS assertion crashes Kontact
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 750997

Thomas McGuire committed changes in /trunk/KDE/kdepim:
Use qint64 instead of size_t for the folder size calculation, otherwise folders >2GB won't show up correctly on 32 Bit systems.

I hope I found all places were the conversion was necessary.
I couldn't really test this, as i don't have a 64 Bit system, but I should work.
Bug 151155: computed size for big mail foders is wrong. It shows 16 777 216,0...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 751020

Multimedia
Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/wikipedia:
fix crap-tastic wiki applet. it's so bad i don't even care anymore, as we need Qt4.4/Webkit for it to actually do anything useful.
Diffs: 1, 2 Revision 751538

Networking Tools
Joris Guisson committed changes in /trunk/extragear/network/ktorrent:
Finished settings dialog revamp :
- DHT and encryption now are on the BitTorrent settings page
- Stats plugin settings have been splitted into two pages

This results in a smaller config dialog, and so 152492 is fixed
Bug 152492: Preferences window in ktorrent is too big and not resizable
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 749053
View Visual Changes (to 4 files)

Michael Zanetti committed changes in /trunk/playground/network/kopete/plugins/otr/src:
removed KDE3-Context Menu as it doesn't work any more and crashes
added one icon to the chatwindow to at least be able to start OTR sessions

Reanimated the KCM Module:
fingerprintstable and own fingerprint combo box work again
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 749808
View Visual Changes (to 1 file)

Office
Boudewijn Rempt committed changes in /trunk/koffice/krita/ui:
Fix loading of .kra images (the imagename was set in the info block and then reset when an empty info block was loaded later on)
Bug 154306: Krita can't open native document created in 1.6
Diffs: 1, 2 Revision 750476

Thomas Zander committed changes in /trunk/koffice/plugins/textshape:
Fix from jakkapun (via Pattara Kiatisevi) for:
fixed the input method issue, added text normalization support

This makes Thai input work properly.
Diffs: 1, 2 Revision 751038

Utilities
Stephen Kelly committed changes in /trunk/KDE/kdeutils/kjots:
Fix dropping a nested book into the root of the bookshelf.
No longer destroying users data. :)
Diffs: 1, 2 Revision 751679

Features
Development Tools
Niccolai Giancarlo committed changes in /trunk/playground/bindings/krossfalcon:
Connect complete. Working on actions and minimal Kross widget interface.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 749024

Dmitry Suzdalev committed changes in /branches/work/kbugbuster-dimsuz/gui:
Moved signals for starting bug query out of server list model to main window - query is started when query item gets selected.

Actually I guess backend API takes some shape, so I can start documenting classes and putting up some kind of DESIGN document with description of how they're connected
Diffs: 1, 2, 3, 4, 5 Revision 750177

Graphics
Aurelien Gateau committed changes in /trunk/KDE/kdegraphics/gwenview:
Implemented support for saving to remote urls
Diffs: 1, 2, 3, 4 Revision 750512

KDE-Base
Sebastian Sauer committed changes in /trunk/KDE/kdebase/workspace/plasmas/kickoff:
Added "Switch Tabs on Hover" option that allows to disable the auto-switching and requires instead a click to switch the tabs.

It does the same like the Kickoff@KDE3 KickoffSwitchTabsOnHover-option, see http://www.kdedevelopers.org/node/2620
Diffs: 1, 2, 3, 4, 5, 6 Revision 749156

Alex Merry committed changes in /trunk/playground/base/plasma/applets:
Add Bill Egert's train clock
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 749163
View Visual Changes (to 3 files)

Sebastian Sauer committed changes in /trunk/KDE/kdebase/workspace/plasmas/kickoff:
Added "Number of visible items" option. This allows users to define the number of items that are visible which is used to define the height of kickoff. Default is 10 atm (probably set it lower to e.g. 8?).
Bug 152052: make kickoff freely resizable
Diffs: 1, 2, 3 Revision 749204

Alex Merry committed changes in /trunk/playground/base/plasma/engines:
A Now Playing engine, initially only giving info for Juk
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 749283

Alex Merry committed changes in /trunk/playground/base/plasma:
We now have a rather crude nowplaying applet for Juk.

I invite anyone who wants to pretty it up.
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 749322

Thierry Bastian committed changes in /trunk/KDE/kdebase/runtime/phonon/ds9:
cleanup, beginning of implementation of dvd, bufferstatus implemented...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 749534

Richard Moe Gustavsen committed changes in /trunk/KDE/kdebase/runtime/phonon/qt7:
Audio effects now work (and swapping them while playing)
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 749621

Luboš Luňák committed a change to /trunk/KDE/kdebase/workspace/kwin/effects/desktopgrid.cpp:
Allow moving of even non-movable windows between virtual desktops using the middle mouse button (and also right button, newly, I guess that one is easier to use).
Bug 153931: workspace grid does not allow to move maximized windows
Diff Revision 749711

Marco Martin committed changes in /trunk/KDE/kdebase/workspace/libs/plasma/widgets:
Now icons can be resized
Bug 152695: Plasma
Bug Icon does not (re)size properly:
Diffs: 1, 2 Revision 750084

Alex Merry committed changes in /trunk/playground/base/plasma/engines/nowplaying:
Now with:
* default do-nothing implementations in Player (was PlayerInfo)
* volume support
* simple command (play/pause/stop/setVolume) support
Diffs: 1, 2, 3, 4, 5, 6 Revision 750097

Maksim Orlovich committed changes in /trunk/KDE/kdelibs/khtml:
- Put in the very basics of exception handling in the debugger, based mostly on the old debugger's code. Still very rough
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 750199

Rafael Fernández López committed changes in /trunk/KDE/kdebase/apps:
Now the konsole part is autodestructed when no tabs do exist. This makes the desired effect on dolphin when typing "exit" on the terminal, the dock will be hidden.
Bug 153648: When the shell exits in the built-in terminal, dolphin starts ano...
Diffs: 1, 2, 3, 4, 5 Revision 750276

Sebastian Trueg committed changes in /trunk/playground/base/nepomuk-kde:
New tag cloud. I put a lot of work into this one and now I am not sure anymore if a simple QLabel + some HTML would not have been enough...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 5 more) Revision 750742

Luboš Luňák committed changes in /branches/KDE/3.5/kdebase/nsplugins:
Support for XEmbed-based plugins and Glib2-based eventloop.
Should make the most recent Flash work, if you get sufficiently lucky and don't run into any of the load of its bugs.

Latest kdelibs/kdeui/qxembed.* needed as well.
Bug 132138: Support Mozilla XEmbed plugins
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 750897

Maksim Orlovich committed changes in /trunk/KDE/kdelibs/khtml/ecma:
Simplify the pausing of CPU guard when blocked in debugger.
The pause/restore API in KJS::Interpreter is too subtle to use sanely in this context. Instead, merely ignore timeouts when blocked, and restart timers when unblocked.

This should eventually be replaced by a proper modality manager, so thinks like alert() work right, too, but I need to think it over some more. It is quite crucial, though, since there are quite some event looprecursion issues ATM.
Diffs: 1, 2, 3 Revision 751011

Chani Armitage committed changes in /trunk/extragear/plasma/applets/twitter:
kwallet support for the twitter plasmoid.
Diffs: 1, 2 Revision 751130

Shawn Starr committed changes in /trunk/KDE/kdebase/workspace/libs/plasma/widgets:
Allow rendering of a specific svg element id. You can still render them all if you don't specify a element name but now you can also use a specific element. Doesn't handle resizing.
Diffs: 1, 2, 3 Revision 751533

Sebastian Kügler committed changes in /trunk/KDE/kdebase/workspace/plasma:
Make battery applet work with multiple batteries. Patch by Maor Vanmak.
Bug 153398: plasma battery applet doesn't display correct battery status
Diffs: 1, 2, 3, 4 Revision 751863

Riccardo Iaconelli committed changes in /trunk/playground/base/plasma/applets/train-clock:
A step forward in making this clock sane and defaultable
Diffs: 1, 2 Revision 751864
View Visual Changes (to 1 file)

KDE-PIM
Thomas McGuire committed changes in /trunk/KDE/kdepim:
Some D-Bus work in KMail:

- Remove the existing org.kde.kmail.kmail/kmailpart/mailcomposer.xml files, and let them be generated at build time instead. This is done by extracting the slots and signals marked with Q_SCRIPTABLE.
I had to adjust the CMake files of all users of the XML files to use the one from the build directory now.

Currently, the XML files are also installed. I am not sure if this is a good idea, as that implies we have to keep some sort of compatibility.

- Fix incorrect D-Bus path and method call in the summary view. Now the generated interface is used instead. Checking the accounts with the sync actions works again now.

- Some DCOP->D-Bus renamings in comments

- Some style fixes around D-Bus related lines

The D-Bus test of KMail and the Kontact KMail summary still work.
This needs the new FindQt4.cmake from kdelibs.
This probably needs a clean build.

I did not touch the groupware interface or the SMIME security config page (which talks to Kleopatra). This is left for KDAB to fix, but it would be nice to contact me before.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 18 more) Revision 750976

Multimedia
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore:
Add a config screen to the Magnatune store service. Initially it just allows configuration of the ( not yet launched by magntune ) membership settings.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 749106
View Visual Changes (to 1 file)

Shane King committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/lastfm:
Basic scrobbler implementation in last.fm service, should basically work if the engine didn't have bugs that caused it to return wrong positions or that tracks aren't finished when they are ...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 749646

Ian Monroe committed changes in /trunk/playground/multimedia/videoplayer/src/app:
VideoWindow's context menu now works correctly, in both full screen mode and normal. The full screen toolbar doesn't work right, which isn't surprising given all the wacky stuff it does, its likely Qt3 dependent.
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 750057

Stanislas Krzywda committed changes in /branches/kscd/isi-kscd/kdemultimedia/kscd:
Add files for the new user interface:
-New button class (play,stop,mute...)
-Svg files in "skin/"
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 65 more) Revision 750220
View Visual Changes (to 45 files)

Shane King committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/lastfm:
A little more work on the last.fm service, some radio support classes started but still incomplete.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 750466

Leo Franchi committed a change to /trunk/extragear/multimedia/amarok/src/context/layouts/ContextLayout.cpp:
completely re-work the layouting code.
this has more bugs (of course) but also more promise.
Diff Revision 750859

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore:
Add buy album option to Magnatune tracks. This time its actually connected from the start
Diffs: 1, 2 Revision 751399

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore:
Make 'buy' option in magnatune tracks and album menu become 'download' if you have a download membership. I cannot fully support free downloading yet untill I get some stuff added on the Magnatune side of things, so the download option stil takes you to the buy dialog
Diffs: 1, 2, 3 Revision 751425

Networking Tools
Joris Guisson committed changes in /trunk/extragear/network/ktorrent:
Changes :
- Added SOCKS support (v4 and v5, note: still need to do authentication for v5)
- Fixed some minor issues here and there
Bug 140772: [enhancement] proxy both tracker and other communications separat...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 749743
View Visual Changes (to 2 files)

Joris Guisson committed changes in /trunk/extragear/network/ktorrent:
Added username password authentication for SOCKS v5
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 749970
View Visual Changes (to 1 file)

Tejas Dinkar committed changes in /trunk/playground/network/kopete/protocols:
Added bonjour protocol for kopete.

Contact Management works. Sending/Receiving Messages doesn't
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 21 more) Revision 751350
View Visual Changes (to 7 files)

Tejas Dinkar committed changes in /trunk/playground/network/kopete/protocols/bonjour:
Added Facility To Compare Incoming Connections To Hostnames Of Contacts

FIXME: This Currently Shows only how many contacts are at given host.
We have to read the first few bytes of the stream to get the username
I'll have to start using libiris after this, I guess
Diffs: 1, 2, 3, 4 Revision 751641

Office
Johannes Simon committed changes in /trunk/koffice/kchart/shape:
Interface changes in the legend tool:
* removed third tab ("Labels") which only contained the font entry. Unified title and label font properties to go along with the ODF standard and to simplify things.
* Changed tab order of legend type tool from data-type to type-data. After adding a diagram the user usually wants to change the type first.
* support for showing/hiding legend frame
* Unified/simplified legend tool widget layout
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 749085

Johannes Simon committed changes in /trunk/koffice/kchart/shape:
* Added a tool to select and modify datasets of the diagram. Now that selecting is implemented, dataset properties editing is to follow.
Note: For diagram types other than bar diagrams, this is still somewhat buggy. Only works for cartesian diagrams atm.
* Added ChartShape::repaint() along the way that doesn't update the entire KDChart::Chart. So it should theoretically be faster than ::update()
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 749178
View Visual Changes (to 1 file)

Johannes Simon committed changes in /trunk/koffice/kchart/shape:
Support for changing the dataset color with the dataset tool.
Diffs: 1, 2, 3, 4, 5 Revision 749238

Boudewijn Rempt committed a change to /trunk/koffice/krita/image/kis_gradient_painter.cc:
Start of making the anti-aliasing of the gradient painter colorspace independent.
It's still buggy and slow, and parts of it should be going into the colorspaces (distance calculation and averaging), but at least this code compiles again.
Diff Revision 749958

Cyrille Berger committed changes in /trunk/koffice/krita/plugins/viewplugins/panorama:
lot of changes that can be summarize in "able to stich more than two images" (modulo a bug in the initialization of the optimization)

In more details :
- matching algorithms based on "groups match", faster and better results
- improvement in the harris detection, remove the threshold (or more like use a smaller value... like 0.0) on cornerness, this increase the number of interest point, and split the layer in zones to increase the distribution on the image
- introduction of the notion of models which are in charge of feeding the optimizer, and then output the transformation that can be feed to the blender - plus countless of changes to remove the limitation to two images
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 14 more) Revision 750055

Carlos Licea committed changes in /trunk/koffice/kpresenter/part:
Added KPrCustomSlideShows which will provide presentations with any order of the slides, i meant... pages ;).
Diffs: 1, 2, 3 Revision 750426

Johannes Simon committed changes in /trunk/koffice/kchart/shape:
Started to merge all three existing tools into one, with an easy-to-use user interface and quicker access to more important settings.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 20 more) Revision 750999
View Visual Changes (to 1 file)

Dag Andersen committed changes in /trunk/koffice/kplato/libs:
Change the Calendar/day viewsChange the Calendar/day views&models to something more promissing.models to something more promising.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 751218

Johannes Simon committed changes in /trunk/koffice/kchart/shape:
More work on the new unified Chart Tool:
* axes titles are now editable
* diagram grid can now be shown/hidden
* gap between bars and datasets can be changed
* legend can be shown/hidden
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 751292
View Visual Changes (to 1 file)

Cyrille Berger committed changes in /trunk/koffice:
load ORA files
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 751358

Cyrille Berger committed changes in /trunk/koffice/krita/plugins/paintops/dynamicbrush:
implement the selection of color in dynamic coloring program
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 751692

Utilities
Brad Hards committed changes in /trunk/playground/libs/kcabinet:
Initial checkin of MS Cabinet file format archive reader

This class subclasses KArchive, and will (in the future :-) allow access to file that are archived in the "Cabinet" file format.

That format is documented, and there are other readers (e.g. cabextract) that handle it.

This still has a long way to go. I'm still struggling with the headers, and haven't yet done any of the decompression stuff.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 40 more) Revision 749553

Brad Hards committed changes in /trunk/playground/libs/kcabinet:
Implement reading of non-compressed files.

I've temporarily borrowed a copy of KLimitedIODevice (from kdelibs/kio/kio), because it isn't public. This won't matter if KCabinet gets merged into kdelibs, but might require some harder thinking if not.
Diffs: 1, 2, 3, 4, 5, 6 Revision 751117

Brad Hards committed changes in /trunk/playground/libs/kcabinet:
Add support for reserved data sections. At this stage we just throw them away, but if they were needed for anything, it wouldn't be hard to make it available.

Also add support for cases where the data is in more than one CFDATA block. We don't yet handle cases where a single file is spread over more than one block.
Diffs: 1, 2, 3 Revision 751519

Brad Hards committed changes in /trunk/playground/libs/kcabinet:
Add support for cabinet files containing compressed data.

This only works for MSZIP format compressed files (using the very handy KFilterDev decompressor, which implements the deflate algorithm).

This change uses code from the KZip file entry class.
Diffs: 1, 2, 3, 4, 5, 6 Revision 751866

Optimise
Development Tools
Thomas McGuire committed a change to /branches/KDE/3.5/kdevelop/parts/fileselector/fileselector_widget.cpp:
Automatically add * wildcards to the start and the end of the filter string of the file selector widget.

This makes filtering easier and faster.
Bug 153729: [PATCH] Automatically add diffs.txt discussion files moreinfo sel...
Diff Revision 750118

Kevin Kofler committed changes in /trunk/KDE/kdesdk/kompare/libdiff2:
put the levenstein table on the stack, not the heap, and hence only allocate mem for it when needed, rather than having 65k*(number of files) allocated all the time.

(forward-port rev 444219 by je4d from 3.5 branch)
Bug 90345: Kompare 3.3 crashes on a big diff file
Diffs: 1, 2 Revision 750441

David Nolden committed changes in /trunk/KDE/kdevplatform:
Profiling has shown that DocumentRange was one of the biggest remaining memory-hogs, especially on 64-bit systems KTextEditor::Range takes much more memory than the actual content because the data is split across multiple separately allocated blocks.

Also, it is inefficient to copy around, and DocumentRanges maintain a hierarchy that isn't needed at all, but also takes a lot of memory.

Solution:
Create efficient self-contained classes SimpleRange and SimpleCursor, that are used for each duchain object. Stop using DocumentRange in DocumentRangeObject. Instead, now each duchain object has one permanently stored SimpleRange, and a SmartRange pointer that is only nonzero when the document is loaded and has a smart-range.

The SimpleRange and the SmartRange are synchronized on access.

Result:
- No more thread-unsafe range access in DocumentRangeObject::textRange()
- Significantly less memory consumption
- More efficient serializability because the SimpleRange is embedded in the shared d-pointer.

By the way the duchain initializations were cleaned up a little, and some yet unnoticed bugs there fixed.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 40 more) Revision 750765

Educational
Jason Harris committed a change to /trunk/KDE/kdeedu/kstars/kstars/dms.cpp:
Committing optimization fix for dms::setFromString(), as submitted by Andrew Buck and improved by Luciano Montanaro.

Thanks for the submission, Andrew. I'm having trouble understanding how kstars could be spending so much time in this function. I don't see that it is called by any inner loops. I noticed that you patched against the 3.5.x version of the code (which is why you didn't find QString::stripWhiteSpace() in the Qt docs; that function is called trimmed() in Qt-4.x). But even in that version, I only see the following calls to setFromString():

KStarsData::processCustomDataLine() [used when initializing custom catalogs] KStarsData::executeScript() [used when parsing a KStars DCOP script]

dmsBox::createDms(), which in turn is called by FocusDialog and LocationDialog, in functions that should only be used when those dialogs are opened.

Do your gprof results indicate the calling sequence that led to execution of setFromString() ?

thanks again, and welcome to kstars development! :)
Diff Revision 750234

KDE-Base
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/tasks:
significantly compress update events: never repaint an item or relayout a task group more than 5 times per second.

note that we do an initial paint immediately no matter what to avoid appearing slow in the common case.

should protect us against insane applications.
Bug 154334: Panel uses too much CPU to change window title
Diffs: 1, 2 Revision 750664

Aaron J. Seigo committed a change to /trunk/KDE/kdebase/workspace/plasma/applets/tasks/tasks.cpp:
* another obvious possible optimization ... i remember when gimp used to reset its window title on mouse movement resulting in a title update per pixel moved over in a document window ..... even though the title didn't actually change content. protect against such insane apps as well.

* if we don't have a group, call updateGeometry immediately (should be useful if we ever allow "bare" tasks, e.g. on the desktop)
Diff Revision 750665

Sebastian Trueg committed a change to /trunk/KDE/kdelibs/nepomuk/core/resourcedata.cpp:
Performance improvement. Not the last one. We still have much work here I think.
Diff Revision 750741

Other
Development Tools
Andreas Pakulat committed changes in /trunk/KDE/kdevplatform/language/duchain:
YEEEHA! Shared dpointer implementation for most of duchain (I'm going for the typesystem next).

Lesson learned: DUChain is _really_ picky about properly initialized member variables and right order of doing things.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 20 more) Revision 749792

Hamish Rodda committed a change to /trunk/KDE/kdevelop/languages/cpp/cppparsejob.cpp:
Calculate include paths while still in main thread. This finally allows me to parse the entirety of kdevplatform and kdevelop, with all their included headers!

By using the main thread we avoid many race conditions, including with KConfig and KUrl.

I'm starting to think we may need a dedicated thread-safe api for kdevelop, or an auditing of which methods are thread safe...
Diff Revision 750306

David Nolden committed changes in /trunk/KDE/kdevplatform:
Completely change the way forward-declarations work. Statically resolving them while building the du-chain simply is incompatible with re-using pre-compiled du-chains.

So make forward-declarations dynamically resolvable, using a given top-context as visibility hint.

In Declaration: Make the behavior of "internalContext" simpler, and add virtual convenience-functions "logicalInternalContext" and "logicalDeclaration" that resolve everything on the way.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 751649

KDE-Base
Peter Penz committed a change to /trunk/KDE/kdebase/apps/dolphin/src/dolphinviewcontainer.cpp:
Only browse through zip and tar files if they are local (otherwise a cryptic error message will occur).

We really must make this behavior configurable in KDE 4.1 - I'd suggest that per default no browsing through zip and tar is done (with an option turning this on again)
Bug 153985: dolphin tries to navigate compressed files (like tar and zip) wit...
Diff Revision 749059

Maksim Orlovich committed changes in /trunk/KDE/kdelibs/khtml/ecma/debugger:
The breakpoint display doesn't seem to have any implementation at all,so just kill it for 4.0. At least saves some screen space.
Diffs: 1, 2, 3 Revision 749268

Kévin Ottens committed a change to /trunk/KDE/kdebase/workspace/plasma/applets/kickoff/ui/launcher.cpp:
Get closer to the original Kickoff terminology which says "Computer", and NOT "My Computer".

And no, whatever you might think: This is not a string change.

Blessed by Aaron.
Diff Revision 749701

Sebastian Sauer committed a change to /trunk/KDE/kdebase/workspace/plasma/applets/kickoff/ui/launcher.cpp:
Changed the "Recently Used" icon.
See before/after; http://kross.dipe.org/kickoffimage.png
Hope it's ok (aka matches more to the other 4 icons)?!
Diff Revision 749756

Luboš Luňák committed a change to /trunk/KDE/kdebase/workspace/kwin/COMPOSITE_TODO:
I think zoom would be much more useful if wheel could control it.
Diff Revision 750047

Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src:
Remove dead code, including the non-functional scroll lock code. Scroll lock support will be re-implemented in the terminal display widget post KDE 4.0 if there is a demand for it.
Diffs: 1, 2 Revision 750314

Aaron J. Seigo committed a change to /trunk/KDE/kdebase/workspace/kcontrol/CMakeLists.txt:
don't make the background kcm and it doesn't actually affect the background anymore. kdm stlil relies on the code there, though, so it can't simply be removed yet.

the currnet background dialog in plasma will get pulled out and made into a new kcm.
Diff Revision 751083

Riccardo Iaconelli committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
Implement Applet::shouldConserveResources(), a method to help plasmoid developers to know whether they should conserve resources.

Peer reviewed by Chani and Richmoore.
Diffs: 1, 2 Revision 751216

Aurelien Gateau committed changes in /trunk/KDE/kdebase/workspace/systemsettings:
Applied a slightly updated version of the patch discussed on kde-core-devel to make scrollbars apply to the module content only, not to the bottom button bar or the left icon view.
Diffs: 1, 2, 3 Revision 751295

Maksim Orlovich committed changes in /trunk/KDE/kdelibs/khtml/ecma/debugger:
Incorporate Fredrik's delegate. Now the speedcrunch-ripoff lookactually looks as nice as the original
Diffs: 1, 2 Revision 751454

Jason Stubbs committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
Try to place unpositioned applets in areas that aren't occupied using a very simple placement policy.
Bug 154122: Applet placements shouldn't overlap
Diffs: 1, 2 Revision 751607

Thomas Reitelbach committed a change to /trunk/KDE/kdelibs/doc/common/kde-default.css:
darken the highlight color for KDE manuals in the browser, as it was almost invisible on cheap displays (like mine ;-).

Got no objectionis from kde-i18n-doc and kde-usability against this change.
Diff Revision 751646

Urs Wolfer committed a change to /trunk/KDE/kdelibs/kdeui/icons/kiconloader.cpp:
Show debug warning if a broken icon has been requested.

Discussed on kde-code-devel.

Note: ifndef NDEBUG does not work yet. It will make sense as soon as this define works again. If you compile in debug mode, warnings will be shown for every broken icon at every request. In release mode, warnings will only be shown once; after the 'unknown' icon will be in cache.
Diff Revision 751742

KDE-PIM
Marc Mutz committed changes in /branches/work/kdab-post-4.0/kdepim/kleopatra:
Finally, Kleopatra has an application icon. Thanks, Thomas Moenicke!
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 750677
View Visual Changes (to 8 files)

Thomas McGuire committed changes in /trunk/KDE/kdepim/kmail:
- Automatically lighten the KMail system tray icon if the unread count is displayed.
- Change a few colors to use KColorScheme

Patch by Jakob Petsovits, thanks!
Diffs: 1, 2 Revision 751848

Multimedia
Harald Sitter committed a change to /tags/amarok/1.4.8/multimedia/amarok:
Tag Amarok 1.4.8.
Diff Revision 749691

Ian Monroe committed changes in /trunk/playground/multimedia/videoplayer:
It's decided, rename Video Player to Dragon Player.
I've always been a Konqui fan, I had a Konqui shirt years before I started developing. :)
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 13 more) Revision 750298
View Visual Changes (to 6 files)

Nikolaj Hald Nielsen committed a change to /trunk/extragear/multimedia/amarok/src/collectionbrowser/CollectionTreeView.cpp:
just for fun, try to bring back the animation in the tree views to see if it has become less buggy, let me know if I need to disable it again.
Diff Revision 751375

Networking Tools
Lukas Appelhans committed changes in /trunk/KDE/kdenetwork/kget/transfer-plugins/bittorrent:
Remove GeoIP-things...(because of licensing :( )
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 750974

Office
Cyrille Berger committed changes in /trunk/koffice/krita/ui:
copy the experimental open raster loader in a more generic framework to read/write and experiment with open raster
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 750973

Cyrille Berger committed changes in /trunk/koffice/filters/krita:
add initial experimental untested and unconnected to a mimetype filter for OpenRaster (long-term) Archive file format but with only saving implemented
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 750978

Other
Patrick Spendrin committed changes in /trunk/kdesupport/kdewin-installer:
adding kdewin-menubuilder: This program is for internal use only. Integration into windows emerge.py and kdewin-installer will follow. See kdewin-menubuilder --help for help.

The menubuilder isn't ready yet, I am still searching for a solution about the Categories (maybe I can use them for the folder structure?).
Diffs: 1, 2, 3, 4, 5, 6 Revision 749346

User Interface
Casper Boemann committed a change to /trunk/KDE/kdebase/runtime/kstyles/oxygen/oxygen.cpp:
- Add bg gradient to menus
- Finalize the look of selected menuitems
Bug 152123: When clicking Menu List the chosen option is not highlighted make...
Diff Revision 751329

Thanks for reading the KDE Commit-Digest!
KDE Commit-Digest by Danny Allen, 2006-2008
All issues in archive by Derek Kite