Issue 90

23rd December 2007 by Danny Allen

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:
  • KsCD
    • Client: Aaron Seigo
    • Topics: Multimedia
  • Kopete
    • Client: Matt Rogers
    • Topics: Networking
  • KSirk
    • Client: Johann Ollivier Lapeyre
    • Topics: Game, Networking
  • Kapman
    • Client: Johann Ollivier Lapeyre
    • Topics: Game, Framework design

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
 
100
 
Aurélien Gâteau
46
 

Internationalization (i18n) Status

Language Percentage Complete
Portuguese (pt)
99.95%
 
Greek (el)
99.94%
 
Swedish (sv)
99.91%
 
Japanese (ja)
95.03%
 
German (de)
90.13%
 
Estonian (et)
89.56%
 
Spanish (es)
87.66%
 
Chinese Traditional (zh_TW)
85.87%
 
Polish (pl)
85.3%
 
Low Saxon (nds)
84.9%
 

Bug Killers and Buzz

Person 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 J. Seigo
756
 
Thiago Macieira
752
 

Commit Countries

Commit Demographics

Sex

Age

Contents

  Bug Fixes Features Optimization Security Other

Accessibility

     

Development Tools

  [] []   []

Educational

[]   []   

Graphics

  []    

KDE Base

[] [] []   []

KDE-PIM

[] []    []

Office

[] []    []

Konqueror

     

Multimedia

[] []    []

Networking Tools

[] []    []

User Interface

     []

Utilities

[] []    

Games

     

Other

     []

There are 103 selections this week

Bug Fixes

Educational

Jason Harris committed changes in /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.

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

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.

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.

Germain Garand committed changes in /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

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

Maks 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 changes in /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.

KDE-PIM

Kevin Krammer committed changes in /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.

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.

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.

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)

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.

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.

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

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

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. :)

Features

Development Tools

Giancarlo Niccolai 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

Aurélien Gâteau 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 <a href="http://www.kdedevelopers.org/node/2620">http://www.kdedevelopers.org/node/2620</a>;

Diffs: 1, 2, 3 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
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?).

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 changes in /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).

Marco Martin committed changes in /trunk/KDE/kdebase/workspace/libs/plasma/widgets:

Now icons can be resized

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
Maks 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.

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.

Maks 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.

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.

Riccardo Iaconelli committed changes in /trunk/playground/base/plasma/applets/train-clock:

A step forward in making this clock sane and defaultable

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

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
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 changes in /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.

Cyrille Berger Skott 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 (+ 13 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
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
Cyrille Berger Skott committed changes in /trunk/koffice:

load ORA files

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 751358
Cyrille Berger Skott 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 Revision 751692

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
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
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 changes in /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.

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

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

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
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
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

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

Optimization

Development Tools

Thomas McGuire committed changes in /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.

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)

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 changes in /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! :)

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.

Aaron J. Seigo committed changes in /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)

Sebastian Trueg committed changes in /trunk/KDE/kdelibs/nepomuk/core/resourcedata.cpp:

Performance improvement. Not the last one. We still have much work here I think.

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 changes in /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...

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 changes in /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)

Maks 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
Kevin Ottens committed changes in /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.

Sebastian Sauer committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/kickoff/ui/launcher.cpp:

Changed the "Recently Used" icon.
See before/after; <a href="/issues/2007-12-23/files/kickoffimage.png">http://kross.dipe.org/kickoffimage.png</a>;
Hope it's ok (aka matches more to the other 4 icons)?!

Luboš Luňák committed changes in /trunk/KDE/kdebase/workspace/kwin/COMPOSITE_TODO:

I think zoom would be much more useful if wheel could control it.

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.

Aaron J. Seigo committed changes in /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.

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.

Aurélien Gâteau 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
Maks 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

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.

Thomas Reitelbach committed changes in /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.

Urs Wolfer committed changes in /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.

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
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!

Office

Cyrille Berger Skott 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 Skott 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

Multimedia

Harald Sitter committed changes in /tags/amarok/1.4.8/multimedia/amarok:

Tag Amarok 1.4.8.

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
Nikolaj Hald Nielsen committed changes in /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.

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

User Interface

C. Boemann committed changes in /trunk/KDE/kdebase/runtime/kstyles/oxygen/oxygen.cpp:

- Add bg gradient to menus
- Finalize the look of selected menuitems

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