Issue 81

21st October 2007 by Danny Allen

This Week...

Fortune-teller and Keyboard Layout applets for Plasma, KNewsTicker resurrected for KDE 4.0 as a Plasmoid. Rewrite of <canvas> tag support in KHTML. Various new language syntax highlighting in Kate. Internal database storage work in Digikam. More playlist handling work, and support for Magnatune "streaming membership" in Amarok 2. OpenDocument loading of charts in KChart for KOffice 2. Various graphics fixes and a user handbook for the Bovo game. Kolourpaint is now fully ported to Qt4. Continued work on the Eigen 2 library. Further porting away from KDEPrint to the printing facilities provided by Qt4.
Will Stephenson provides a summary of the KDE 4 Hack Week at SUSE:
This week the KDE team and several of the other KDE people at SUSE held the inaugural KDE Hack Week at the openSUSE office in Nuremberg.  The 'Innovation Time Off' concept at Novell allows us to spend a percentage of our time working on projects away from our day-to-day roles, so Klaas Freitag and Cornelius Schumacher (both of the KDE e.V. board) and Andre Duffeck and Daniel Gollub joined Dirk Mueller, Stephan Binner, Luboš Luňák and Will Stephenson in bringing KDE 4 closer to release.

Cornelius worked on KOrganizer, Klaas introduced Strigi to KHelpCenter and tidied its user interface, Will worked on Kopete's usability, Stephan prepared a KDE 4.0beta3 openSUSE based LiveCD, Andre worked on Plasma, adding a context menu to the panel, Daniel prepared a new OpenSync release and worked on Kitchensync, and Dirk worked on the KDE 4.0 Beta 3 release and the new SVN server. Along the way we found time to show off KDE 4 to Novell management, and held the first openSUSE KDE community meeting to make community members' and users' voices heard and open the door to their contributions to KDE on openSUSE.
Harri Porten answers common questions on the state and future of the KHTML web rendering engine used in KDE:
As people on #khtml and elsewhere keep asking the same type of questions I will summarize some of the answers that I can give and which - to my best knowledge - should match the view of other maintainers. This is to inform contributors, bug reporters, other helpers and users about the current state, avoid unfounded irritation and provide the basis for further discussion.

Feedback is greatly appreciated and will be incorporated into an updated version to be placed on konqueror.kde.org or so.

Will KHTML be the HTML rendering engine in KDE 4.0?
Yes. We are currently working on polishing it to get it into shape after so much of the frameworks around it have changed.

Are there any plans to drop KTHML?
No. Despite rampant rumors floating around there are no such concrete plans. We have had several discussions about alternatives but none of the them has yet crystallized as being accepted by the majority as a real option for KDE.

Why don't you pull all the good patches from Apple's WebCore and JavaScript libraries?
We do that to a certain degree since the beginning. More for KJS than for KHTML which is much bigger and platform dependent. Apple's code repository is publicly accessible now which has eased patch extraction. Prior to its opening the code had already forked a lot, unfortunately. Misaligned release schedules, design conceptions and platform needs have also sometimes resulted in incompatible solutions.

Are KDE patches ending up in Apple's code base?
To a small degree only. There were several attempts to establish a tradition of feeding our patches. Apple engineers also sometimes cherry-pick performance improvements on their own - possibly way later than we published it. As the patches at the same time often get reformatted to fit their coding style this does not make the "diff" between the code bases any smaller. As changes never get pushed back to us this is not an overly satisfying experience.

Does KDE profit from Apple's work?
We do in many ways. There are not only improvements and bug fixes that we can adopt but also an increased public awareness of our work and a group of skilled engineers to exchange ideas with. On the downside we are competing for independent contributors and have to live with the fact that some prefer to team up with a shiny and mighty company as opposed to joining our multi-faceted desktop project.

How about joining forces?
This is the obvious solution, of course, and since the beginning there have been various initiatives to establish a common project. So far all such attempts have failed. One has to realize that the Safari team is constantly under immense pressure to produce new features and benchmarks for the next Mac OS X release or whatever Steve Jobs will present at next year's WWDC keynote and does not want to risk giving up full control. As with the Windows version of Safari, work is sometimes done behind the scenes. We have not given up hope of course and hope to find some solution that accommodates the need of all parties.

Why is all of this important?
The attention paid to KHTML and interest in its future is amazing. The number of well-meaning advisors by far outweighs the number of developers actually writing the code. But the interest is fully warranted. The use of Internet technologies will inevitably continue to rise in our applications. And the degree to which we are involved in the development of these technologies will govern our freedom in advancing their use. The Web development environment Quanta built on top of KHTML is such an example. Further opportunities for our mail mail, IRC, blog, news, media, calendaring, messaging and you name it clients are sheer endless. Merely adding a GUI around ready-made 3rd party components will not add much extra value to our framework.

What are maintainers asking for?
To be able to satisfy our user's expectations we need to be able to provide a patched version in case they find a bug. This is particularly important in case of security problems. This requires access to the development repository as well as KDE producing packages out of that repository. Waiting for other vendors to ship bug fix releases is not an option. When it comes to development of new features KDE developers need to have some say into it even if it needs to be coordinated with other parties. In case of KDE-specific needs there needs to be some way to add them.

Isn't this all a rather trivial job?
A Web browser component is about more than plain HTML rendering. Apart from dynamic scripting there is Java, Flash, cookies, URI shortcuts, password managers, security and networking support. And KDE has invested a lot into providing this infrastructure that is being shared with other applications.

How about using QtWebKit ones it comes out?
QtWebKit is a port of the forked KHTML sources that aims at providing a ready-made HTML component to Trolltech customers without relying on KDE (other than incorporating the WebKit sources with KDE origin). It just is a platform port without any influence on the feature set and therefore useless for KDE's purposes. See the "Why is all of this important?" and "What are maintainers asking for?" questions for more details.

So what are the plans?
As the current alternatives would mean dropping our code and losing all influence on development these are not real options. So we'll simply stick to our code base for now and keep on merging in improvements ourselves. The code is pretty good, surpassing other browsers in speed and features in some areas.

Of course, we would be very much interested in joining forces with others having the same development goals. And we'll keep the discussion about cooperation going. One approach I could imagine is to merge our work (thousands of commits done over the recent years) into a WebKit branch and switch over to that one day. This wouldn't be a branch like Nokia's that diverges from the main line more and more. Instead we could branch it off trunk regularly and simply re-apply our KDE-specific patches.

Statistics

Commits 2571 by 199 developers, 1000 lines modified, 1000 new files
Open Bugs 14645
Open Wishes 13184
Bugs Opened 292 in the last 7 days
Bugs Closed 219 in the last 7 days

Commit Summary

Module Commits
/trunk/KDE
118
 
/trunk/l10n-kde4
51
 
/trunk/koffice
20
 
/trunk/extragear
14
 
/trunk/l10n-kde3
12
 
/branches/work
9
 
/trunk/www
8
 
/branches/stable
7
 
/branches/extragear
7
 
/trunk/kdesupport
6
 
Lines Developer Commits
26
 
Pino Toscano
12
 
11
 
Chusslove Illich
11
 
45
 
Clarence Dang
9
 
9
 
Karl Ove Hufthammer
9
 
18
 
John Layt
9
 
15
 
Laurent Montel
7
 
10
 
Christian Ehrlicher
7
 
18
 
Allen Winter
7
 
6
 
Shawn Starr
6
 
17
 
Christopher Blauvelt
5
 

Internationalization (i18n) Status

Language Percentage Complete
Swedish (sv)
100%
 
Portuguese (pt)
100%
 
Greek (el)
98.54%
 
Japanese (ja)
95.02%
 
German (de)
88.33%
 
Chinese Traditional (zh_TW)
87.98%
 
Dutch (nl)
86.47%
 
Spanish (es)
85.17%
 
Brazilian Portuguese (pt_BR)
81.5%
 
Low Saxon (nds)
77.27%
 

Bug Killers and Buzz

Program Buzz
Amarok
6305
 
K3B
5640
 
KMail
5120
 
Kopete
4330
 
Kontact
3948
 
Kate
3880
 
KDevelop
3205
 
digiKam
2798
 
Kicker
2436
 
SuperKaramba
2154
 
Person Buzz
David Faure
856
 
Sebastian Kügler
854
 
Stephan Kulow
771
 
Matthias Kretz
654
 
Adriaan de Groot
630
 
Allen Winter
629
 
Waldo Bastian
440
 
Aaron J. Seigo
364
 
Boudewijn Rempt
340
 
George Staikos
322
 

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 106 selections this week

Bug Fixes

Development Tools

Hamish Rodda committed changes in /trunk/KDE/kdevelop/languages/cpp/cppparsejob.cpp:

Prevent trying to translate cursors against an unopened file - revision 1 is always the "file has been opened" revision (unless starting a document from scratch... potential bug here but truly very minor if so, especially in comparison to the crashes this fixes for now)

KDE Base

Allan Sandfeld Jensen committed changes in /trunk/KDE/kdelibs/kio:

Store all http-headers in the cache.
Helps bad PHP -> JavaScript abuse like jQuery

David Faure committed changes in /trunk/KDE/kdebase/apps:

Use standard action names for up/back/forward/home. This fixes konq having two Go menus.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 725970
Sebastian Pipping committed changes in /trunk/KDE/kdelibs/kate/syntax/data:

Fixes for C/C++ highlighters:
- Recogize comments after #define (#108370)
- Folding for for all proprocessor conditionals (only for "#if 0" before) (#124362)
- Folding for multi-line comments was missing in C++ highlighter
- Error marking for preprocessor lines not in #(define|elif|else|endif|if|ifdef|ifndef|include)
- Sync notice added
- Version number incremented to same value

Rafael Fernández López committed changes in /trunk/KDE/kdebase/apps/dolphin/src/infosidebarpage.cpp:

On the Information panel the further information such as "Date", "Size", "Type" was being cut off if it was being shrinked. That shouldn't happen. This prevents this information to be hidden or cut off, and so this is always shown.

Albert: I also solved the previous bug you reported (places view not showing selected items at the first click) on a different commit

Rafael Fernández López committed changes in /trunk/KDE/kdelibs/kdeui/icons:

This code fixes the icon loading for 4.0. This code _needs_ to be reviewed when Qt 4.4 is out. I will personally take a look on this when the time comes. Right now, as the SVG renderer is just broken on Qt, what we do is to resize from PNG's.

Jarosław Staniek committed changes in /trunk/KDE/kdelibs/kdeui/kernel/kstyle.cpp:

The patch fixes sort indicator (PE_IndicatorHeaderArrow element):
only 'down' arrow was displayed before.

All KStyle-based styles were affected like Oxygen or Plastik, so only plastique worked properly.

As a sanity check I test QStyleOptionHeader::sortIndicator and State_UpArrow/State_DownArrow flag.

Luboš Luňák committed changes in /branches/KDE/3.5/kdebase/kioslave/thumbnail/thumbnail.cpp:

Sigh ... non-truecolor images have a palette, and it should not be just ignored as if everything was 32bpp. Convert to 32bpp to avoid the problem (bnc:334965)

Hamish Rodda committed changes in /trunk/KDE/kdelibs/kate:

Fix katepart so that the whole view does not re-layout and repaint on each keystroke.

This is essentially removing a hack I inserted when I was porting and having difficulties with drawing. It is a rather large change to how things work even though the amount of code changed is relatively small. Please notify me if you find any rendering regressions.

Diffs: 1, 2, 3, 4, 5 Revision 727209

Office

Thomas Zander committed changes in /trunk/koffice/libs:

Fix usecase where enlarging the actual document (like adding a page in kword) would move the view down a bit on every page-add.

Loading a big document (which adds pages after loading) now correctly keeps the canvas on the position it started on.

Diffs: 1, 2, 3 Revision 727014

Networking Tools

David Faure committed changes in /trunk/KDE:

Rename default emoticons theme from Default to kde4.
Existing config files can still say "Default", the code interprets that as "kde4".
Found emoticons in use in kopete and kpimutils (for e.g. kmail); no kde4-konversation yet.

Diffs: 1, 2, 3, 4, 5, 6 Revision 725907
Joris Guisson committed changes in /branches/extragear/kde3/network/ktorrent:

Fix two crashes :
- One when trying to download an empty link with the RSS plugin (150879)
- Crash at exit when the RSS plugin was loaded

Roman Jarosz committed changes in /trunk/KDE/kdenetwork/kopete/protocols/oscar/liboscar:

Reduce file transfer CPU usage from 100% to 2% during send :D

Games

Nicolas Roffet committed changes in /trunk/KDE/kdegames/kblackbox/kbbgraphicsitemonbox.cpp:

There was a problem with the drag and drop: the 2nd time you wanted to move the same item, the initial position was initial position of the first move.

It's now fixed. :)

Aron Boström committed changes in /trunk/KDE/kdegames/bovo:

Finally fix a bug that has been there since the very dawn of Bovo.
When switching theme, the background was left untouched outside of the grid, which wasn't very pretty when the new theme had another background color.

(Don't tell anyone, part of this is a really, really duct tape solution.)

Also: remove previous duct tape fix from high contrast theme.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 726795

Features

Development Tools

Hamish Rodda committed changes in /trunk/KDE/kdevelop/plugins/appwizard:

Restore support for importing a project

Could someone with knowledge of the intended .kdev4 structure check that the output is correct?

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 726208

Graphics

Gilles Caulier committed changes in /trunk/extragear/libs/kipi-plugins/metadataedit/plugin_metadataedit.cpp:

kipi-plugins from trunk (KDE4) : XMP metadata editor : new option to remove all XMP metadata from a selection of pictures. This option work exactly like Remove EXIF or Remove IPTC.

Marcel Wiesweg committed changes in /trunk/extragear/libs/libkexiv2/libkexiv2:

Merge changes to get information for new database schema in digikam:

GPS:
- split up in getGPSLatitudeNumber, getGPSLongitudeNumber, getGPSAltitude
- add checks that the denominator is not (I have one RAW image here, KODAK-DCSPRO.DCR, where invalid info with denominator 0 is returned. In any case, 1/0 is not 0)
- add getGPSLatitudeString, getGPSLongitudeString to get XMP-like GPS strings
- add a setGPSInfo method which takes the XMP-style strings
- add methods to convert from/to XMP-style string format
- add a method to convert to user-displayable numbers (in ° ' '' between 0 and 60)

Exif:
- add getDigitizationDateTime

Xmp:
- add getXmpTagVariant to get an XMP tag value as a QVariant (similar to getExifTagVariant, but with support for LangAlt etc.)

Diffs: 1, 2, 3, 4, 5 Revision 726404
Marcel Wiesweg committed changes in /trunk/extragear/graphics/digikam/libs/dmetadata/metadatainfo.h:

Add a namespaced enum of all those fields that will be retrieved from the metadata of a file and possibly stored in the database. This list is our choice for digikam.

Marcel Wiesweg committed changes in /trunk/extragear/graphics/digikam/libs/database:

- Add an initial implementation of the V4toV5 major schema upgrade - move Images and Albums to new tables - create one AlbumRoot from KConfig info - create file filter settings from KConfig info - TODO: one complete scan - port Rating, Comment, Date (overwrite values read by ImageScanner with those found in the db!)

- modify and rearrange parts of the updater logic

Pino Toscano committed changes in /trunk/KDE/kdegraphics/okular/part.cpp:

make print preview working again (of course, just for few document types, as QPrinter sucks and kdeprint is too good)

KDE Base

Christopher Blauvelt committed changes in /trunk:

SolidDevice engine is feature complete and ready for inclusion in trunk.

David Faure committed changes in /trunk/KDE/kdelibs/kdecore:

KService: support for storing Actions defined in .desktop files into ksycoca4.

While writing the unit test for this, I noticed that the binary representation (like, in ksycoca) of a single KService was 3700 bytes. This is because KConfigGroup::entryMap returns all translated entries. After filtering those out, the KService is down to 755 bytes; and the whole ksycoca4 went from 9.0M to 1.5M!

Seems to be an unexplained KConfig behavior change, which should be fixed, though.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 725525
Maks Orlovich committed changes in /trunk/KDE/kdelibs/khtml:

A major rework (really rewrite except for the graphics bits) of the <canvas> support, to fix the fundamental problems the previous implementation had. Essentially, it used to store all the bits in the renderer, and have the painting state split between an ephemeral painter (which went away on every repaint), and the JS context object. The way it's spec'd in HTML5 is that the canvas element/its context manage the canvas area and the painting state, and the renderer merely scales. So, I did the following:

1) The context, gradients, patterns, are all proper DOM objects, giving the information the expected lifetime.

2) The DOM context object keeps track of all the painting state itself, updating the painter as needed, and provides the canvas APIs

3) khtmlImLoad gets a new CanvasImage class, that provides a way of using its scaling cache features for this sort of thing. It's not a great fit (it's really meant for something more static), but it's reasonable

4) The JS part is now just a standard wrapper object, with some extra parameter checking, and a bit of code to split the type-unsafe things nicely.

Should we perhaps provide this as part of our C++ DOM in 4.1 or a later 4.0.x release?

5) In general, this was brought in line with HTML5 as best as I could, not being a graphics guy. At least the type checking should be close... assuming I understood it right

There are still gaps/missing features and bugs, of course, but this should serve as a solid foundation.

Various portions were reviewed by Allan, Germain, Harri and Fredrik, hopefully totally covering everything.

(Oh, and I need to figure out how to testcase this properly; I've been using a bunch of web-available testsuites, but we need something for khtmltests)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 725649
Clarence Dang committed changes in /trunk/KDE/kdelibs/kdeui/actions/kfontaction.cpp:

Make KFontAction mostly work -- at least enough for changing font in KolourPaint:

* Make changing the font in the GUI update the action (call i.e. setFont())

* Make programmatically calling setFont() update the GUI, but not fire a signal (mimicks KDE 3.5 behavior)

* Make createWidget() set the created combobox to the action's current font

This took a surprising amount of time to write (don't ask).

Craig Drummond committed changes in /trunk/KDE/kdebase/workspace/kcontrol/kfontinst/kcmfontinst:

Improve appearance - especially when themed with oxygen

Andriy Rysin committed changes in /trunk/KDE/kdebase/workspace/kcontrol/kxkb:

- plasma applet (initial code)
- fix couple of crashes
- some cleanups

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 726099
Dominik Haumann committed changes in /trunk/KDE/kdelibs/kate/syntax/data/erlang.xml:

add erlang for kde4

Sebastian Pipping committed changes in /trunk/KDE/kdelibs/kate/syntax/data/scala.xml:

Stephane, we just added your Scala highlighter for Kate to the KDE repository. Please forward future patches to kwrite-devel. Thank you!

Sebastian Pipping committed changes in /trunk/KDE/kdelibs/kate/syntax/data/noweb.xml:

Noweb highlighter by Scott Collins added

Sebastian Pipping committed changes in /trunk/KDE/kdelibs/kate/syntax/data/dtd.xml:

Add DTD highlighter by Andriy Lesyuk

Sebastian Pipping committed changes in /trunk/KDE/kdelibs/kate:

New wildcard match engine

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 727168
Alexis Ménard committed changes in /trunk/playground/base/plasma/applets/solidnotifier:

Add a future method to call Solid Ui service when the notifier will be clicked

KDE-PIM

Marc Mutz committed changes in /branches/work/kdab-post-4.0/kdepim/kleopatra:

Implement a shared key cache. Oh, how I wish I could have used boost.multi_index for that :/

Diffs: 1, 2, 3 Revision 725493
Antonio Aloisio committed changes in /trunk/playground/pim/kblogger/src/plugins:

Initial KIPI Plugins support
- Added setupplugins Class.

Diffs: 1, 2, 3 Revision 725612
Volker Krause committed changes in /trunk/KDE/kdepim/akonadi:

The agent manager now handles all kind of agents, not just resources.
This includes support for autostarting single-instance agents such as the mail threader.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 727187
Thomas McGuire committed changes in /trunk/KDE/kdepim/kmail/kmfoldertree.cpp:

Don't allow drag&drop from the favorite folder view to the folder tree.
It does not make sense and does not work.

Office

Cyrille Berger Skott committed changes in /trunk/koffice/krita/plugins/paintops/dynamicbrush/programs/basiccoloring:

make the editing of a basic coloring program fully functionnal (hopefully)

Boudewijn Rempt committed changes in /trunk/koffice/krita:

Two things in this commit:

a) the qpainter canvas refactoring (that, as noted before, is still buggy)
b) lots of work on the node/layer/mask refactoring. Still very buggy, but there has been progress since my last commit on this topic: clicking the relevant buttons now do insert new layers. They are just not selectable.

More work will follow tomorrow.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 35 more) Revision 725175
Jarosław Staniek committed changes in /trunk/koffice/kexi:

GUI
- local toolbars now entirely belong to KexiViews, not to KexiWindows, for smoother GUI updates
- flow layout: it is now possible to set vertical/horizontal alignment of items

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 27 more) Revision 725425
Johannes Simon committed changes in /trunk/koffice/kchart/shape:

* Added more options to the ChartTypeToolWidget
* Simple 3D support for bar charts, line charts, and pie charts

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 725480
Johannes Simon committed changes in /trunk/koffice/kchart/shape:

More work on ChartProxyModel. Now most of the functionality that's needed is implemented. Changes now allow us to set
* the data direction ( setDataDirection( Qt::Orientation ) and dataDirection() )
* whether the first column or row is to be treated as a header:
- setFirstRowIsHeader( bool ) and firstRowIsHeader( bool )
- setFirstColumnIsHeader( bool ) and firstColumnIsHeader( bool )

Also, mapToSource( QModelIndex ) works, and mapFromSource( QModelIndex ) needs some testing as I haven't done that yet.

With this implementation of the proxy model, it's expecting pure table data.
Headers in the source model - that is, accessible through sourceModel()->headerData() -
will be ignored.

Diffs: 1, 2, 3, 4 Revision 726628
Thomas Zander committed changes in /trunk/koffice/libs/flake/KoCanvasResourceProvider.h:

Add a new property that applications should set while they are 'loading' a document.
This allows all tools, dockers etc to ignore any changes and thus avoid slowness due to repaints or worse, race conditions and crashes.

Inge Wallin committed changes in /trunk/koffice/kchart:

Start of OpenDocument loading of charts!

This is the last large item on the TODO list before we can start working on the details. This patch handles ODF loading in the KChartPart. What we need now is some handling on the ChartShape side.

This should be fairly easy, since there is lots of code in the old KChart to steal from.

Multimedia

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

some more work on collabsible albums. I think I will need to optimize the playlist some before progressing further with this work as it stresses it quite hard at the moment. But we already knew that the playlist was not optimised at all and contains lots of lots of O(n) stuff still

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 725477
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Try out a new way of regrouping albums in the playlist. As of rigth now it is not much faster than the old one, but as it does not requre regrouping of the entire playlist in most cases, it has potential tp become a lot faster if the internal datatypes are optimised (such as using hashes instead of lists).

Grouping seems to work correctly, but there are still some issues with redrawing the playlist leaving some thing looking slightly broken untill a redraw is triggered.

This grouping aproach also has the advantage that information about collapsed groups are not disarded every time a regroup is triggered. Oh, one more thing, removing single items from the playlist seems to send it into some kind of an infinite loop at the moment...

Diffs: 1, 2, 3, 4, 5, 6 Revision 725868
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore:

initial prototype support for the yet_to_be_released magnatune streaming membership service

Diffs: 1, 2, 3 Revision 726227
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/playlist/PlaylistGraphicsView.cpp:

Dont animate items that when neithe rthe old or new y position is within the visible area of the playlist. This change actually makes the playlist usable with a large number of tracks (I tested it with just over 3000 tracks).

The only really bad performance problem with the playlist right now is collapsing and expanding albms wiht a large umber of tracks. 10-20 tracks are almost instantanious, but collapsing someting with about 100 tracks (yeah, kind of a corner case) takes 10-20 seconds...

Dan Meltzer committed changes in /trunk/extragear/multimedia/amarok/src/collectionbrowser:

Implement sorting in the collectionbrowser by Track Number.

We reimplement lessThan in the proxyModel to do so. Note that this sort order does not propogate down to the source model, which means that adding items to the playlist from the collection does not insert them in the sorted order. I'm not quite sure the proper way to fix this at present, will investigate.

Dan Meltzer committed changes in /trunk/extragear/multimedia/amarok/src:

Sort tracks when they are added to the playlist as well. This could possibly cause problems if the user does not want them sorted by track number on insertion, but I'm not sure if that would ever be the case

Diffs: 1, 2, 3, 4 Revision 726583
Dan Meltzer committed changes in /trunk/extragear/multimedia/amarok/src:

Show track numbers in the collection browser. This should probably be an option, but I'm not sure where the option should go.

Diffs: 1, 2, 3, 4, 5 Revision 726697
Matthias Kretz committed changes in /trunk/playground/multimedia/phonon:

- compile controlwidgets with the rest
- store the PCM I/O ideas in playground...

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 5 more) Revision 727098

Networking Tools

Michaël Larouche committed changes in /trunk/KDE/kdenetwork/kopete/kopete:

Finished Kopete D-Bus interface initial version

Diffs: 1, 2, 3 Revision 726495
Joris Guisson committed changes in /trunk/extragear/network/ktorrent/plugins:

Krzysztof has ported his stats plugin, and added an option to not draw the background grid, which fixes 150889.

Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:

- Porting KNewsTicker to KDE4 (and Plasma, and Qt4, and whatnot); unfortunately so many things changed (and so many other things I want to rewrite anyway) that I can just as well throw everything away and start from scratch. At least I don't have to do the RSS parsing anymore, I'll use the 'syndication' library from kdepimlibs.

This is a minimum plasmoid, it's visible in the list of applets. So far, so good.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision 727142
Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:

- Start looking like a scrolltext by implementing the renderer a bit and adding some sample news items. Very crude yet. In particular, it's flickering somehow and I'm not sure how to fix this.

Diffs: 1, 2, 3, 4 Revision 727181
Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:

- Instead of doing the scrolling ourselves (like I did since KDE2), let's try using QGraphicsItems instead. Each item in the scroller is a QGraphicsItem and we scroll them by calling moveBy() on them.

Pro:
Very simple to implement, very little code.
A lot of features (event handling on the items) for free

Contra:
Slow as well (each KNT instance takes 15% for me, and I'm not sure why)

Diffs: 1, 2, 3, 4, 5 Revision 727383
Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:

- Introducing a 'NewsTickerItem' which behaves like a hyperlink. Now you can click things to open the respective page.

Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:

- Started a KConfigXT based configuration facility (at least the font size and the color is now configurable).

Diffs: 1, 2, 3, 4, 5, 6 Revision 727482

User Interface

Johann Ollivier Lapeyre committed changes in /trunk/KDE/kdebase/runtime/pics/oxygen:

specific game icon to give a hint. This specific green is made on purpose to be harmonized with in games hint (usability)

Diffs: 1, 2, 3, 4, 5 Revision 725633
C. Boemann committed changes in /trunk/KDE/kdebase/workspace/kwin/clients/oxygen:

Add dividing line below titlebar
Fiddle with metrics of buttons ad text a bit
We are mostly done with win dec now - Only hover on buttons missing

Matthew Woehlke committed changes in /trunk/KDE/kdebase/runtime/kstyles/oxygen/lib/helper.cpp:

glows: remove fuzz, increase bias - this way glows don't overlap the edge so much (in theory not at all but the AA is not perfect), and round slab glows don't look "broken" (i.e. gaps in the edge)

Games

Aron Boström committed changes in /trunk/KDE/kdegames/doc/bovo/index.docbook:

Add Bovo documentation. Look out for:
* Bad English and lack of logic.
* It builds, but I can't seem to figure out how to view it.

Now, it just needs a review (and subsequent corrections).

Optimization

KDE Base

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

Don't do any compositing when nothing is visible anyway (e.g. when switched away from the X session).

Diffs: 1, 2, 3, 4 Revision 726713

Multimedia

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/playlist:

dont animate items bound for beyond the visible area... This greatly speeds up expanding large groups of items, and looks almost as good during the animation. Also fix speed when collapsing large groups and a few crashes

Diffs: 1, 2, 3 Revision 726321

Security

Development Tools

Dirk Mueller committed changes in /branches/KDE/3.5/kdevelop/languages/python/kde_pydoc.py:

implement some basic html escaping to avoid injection issues in the help browser

Other

Michael Pyne committed changes in /trunk/KDE/kdesdk/scripts/kdesvn-build:

Exchange a Perl warning that dfaure found for a more understandable warning. Or in other words kdesvn-build may build all of extragear or playground in one pass but I'm loath to call it "supported"

Educational

Patrick Spendrin committed changes in /trunk/KDE/kdeedu/kstars/kstars/CMakeLists.txt:

So I hope that doesn't change anything for linux and will make it work for win32; As a result:<a href="/issues/2007-10-21/files/my.php?image=kstarsrw0.png">http://img141.imageshack.us/my.php?image=kstarsrw0.png</a>;

Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble/src/lib/geodata/data:

- Importing Murad's base classes and "re-namespacing" them to the GeoData namespace. The Document and Folder stuff needs to get merged later on.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 26 more) Revision 726594

Graphics

Clarence Dang committed changes in /branches/kolourpaint/control/kde4port/unreviewed_patches/suspicious:

Finally, after years (!), all of trunk/KDE/kdegraphics/kolourpaint/ has been ported to Qt4 or marked with "COMPAT". Hopefully, there are no more silent semantic changes to Qt4 that I missed.

John Layt committed changes in /trunk/KDE/kdegraphics/okular:

Port from KPrinter to QPrinter, remove dependency on KDE4_KDEPRINT_LIBS.

*** Note this is not a complete port, most of the generators use the printFiles method which Qt 4.3 does not support, these have simply been commented out until we find a solution. At least it removes the dependency so we can remove from kdelibs.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 26 more) Revision 725660
Marcel Wiesweg committed changes in /trunk/extragear/graphics/digikam/libs/database:

At the time it was a nice idea to write the absolute path and the status of album roots dynamically into the database so that they were available from SQL.
But now I see that this is not the way to go. It does not allow sharing DBs (not that we support that officially, or say that it works, but people will do it once we support MySQL, and this would break it), and it does not work with read-only DBs.

So now, we always have the album root id and use CollectionManager then which has all the necessary information.

Adapt a lot of SQL.

Diffs: 1, 2, 3, 4 Revision 726439
Eli Fidler committed changes in /branches/work/kst/portto4-objectstore/kst:

HUGE commit!!! Project build and runs. Most tests work.

Introduce ObjectStore, which is responsible for creating, naming, storing, and accessing all Kst::Objects.

many, many cleanups

rebuild Equation parser

fix Matrix::resize()

spacing fixes everywhere

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 143 more) Revision 726751
John Layt committed changes in /trunk/extragear/graphics/ligature:

Port from KPrinter to QPrinter, remove dependency on KDE4_KDEPRINT_LIBS.

I was unable to test as ligature segfaulted on startup even before I started work.
Normally I wouldn't commit this, but ligature will break on Monday anyway when KDEPrint is removed from kdelibs, so at least this way it builds OK.

Note this is only a partial port as QPrinter does not support printFiles or non-continuous print ranges required for the page selection side-bar. We are currently developing the solution for this and will finshing porting when that is ready in about 2 weeks.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 19 more) Revision 727412

KDE Base

Richard J. Moore committed changes in /trunk/KDE/kdebase/workspace/plasma/runners/calculator:

- Use QtScript instead of launching bc - it's faster and avoids starting a new process. Could do with making the regexp that decides when to use this runner a bit more relaxed.

John Tapsell committed changes in /trunk/KDE/kdebase/workspace/ksysguard/libksysguard/processui:

Try to make it a bit more friendly:

* If a process is stopped, the context menu will include "Resume stopped process", which prompts for root password if needed
* If a process is a zombie, no option to kill/renice will be given
* Added context menu option to select and jump to the parent process, if applicable
* Added context menu option to select and jump to the process that is debugging it, if applicable
* When multiple processes are selected, the context menu options change to "Kill processes" etc.

Diffs: 1, 2, 3, 4, 5 Revision 725157
Đức Hiếu Hoàng committed changes in /trunk/playground/base/plasma/applets:

add fortune-teller applet, it prints stdout of /usr/games/fortune

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 725408
Kevin Ottens committed changes in /:

Bye bye kio media. Liked you, but unfortunately Solid and KFilePlacesModel are prettier now...

David Faure committed changes in /trunk/KDE/kdelibs/kdecore/tests:

Added test for KConfigGroup::entryMap(). This shows that translated keys are present in the entryMap.

Any KConfig guru for removing them from there? (and hopefully from memory altogether, after parsing?)

KDE3 had them when using KConfig but not when using KDesktopFile, very weird stuff [see k-c-d].

Jos van den Oever committed changes in /trunk/kdesupport/strigi:

This is a rather big patch that moves the code for the actual indexes into loadable plugins.

Strigi has always abstracted the index containing all the search terms. This means you can use any database by implementing three classes: IndexManager, IndexWriter and IndexReader. Only one thing was missing: loading these index types from plugins. In practice this meant that different indices need to be added at compile time. It also meant no GPLed databases can be used.

For Nepomuk, Sebastian Trueg has written an implementation of a Strigi index that stores the data in the Nepomuk storage. In doing so, he has created a direct need for indexes as plugins.

So I've writting the code to make this possible and I've attached it as a patch. Since we are in freeze I'm asking you all to have a look at it. The plugin loading part is basically the same as what we use for loading the analyzer plugins.

So what does the patch add:
- add a class IndexPluginLoader (not public) that looks in the strigi plugin directory for files named strigiindex_$name.{so,dll} and loads them if they define createIndexManager and deleteIndexManager.
- ports all strigi code to use it
- removes the compile-time lib${name]index.so libraries and uses the plugins instead

No public API is changed by this code. It does add a macro REGISTER_STRIGI_INDEXMANAGER for easily registering an IndexManager in a plugin.

In hindsight, we should have added this much earlier as it makes (will make) the build system dependencies much cleaner.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 20 more) Revision 725782
Rafael Fernández López committed changes in /trunk/KDE/kdelibs/kdeui/icons:

KIconLoader now returns more quality icons if the requested size is not a standard one. This means that if the size requested is not standard it will try to load the icon from the SVG format before than trying to load the PNG image and then resizing it (what leads to a worse image quality).

In the case that not SVG was found and PNG was, the change on KIconTheme assures that it will stop on the closest size bigger than the selected (for example, it will stop on 22x22 if you requested a 19x19 pixels icon size) and then resize it.

This will only happen if the SVG wasn't found. If the size is a standard one, go on with the normal procedure: load the PNG that is faster than drawing a SVG and since no resizes are needed no quality is lost.

David Faure committed changes in /trunk/KDE/kdebase/apps/konqueror/sidebar/trees/init:

media:/ and system:/ are no more

Diffs: 1, 2, 3, 4 Revision 725965
Aaron J. Seigo committed changes in /trunk/KDE/kdelibs/kfile/kfilewidget.cpp:

user friendly hand holding can go into the breadcrumb; this combo should be easily and predictably edittable. if the user switches to full edit mode, they know what $HOME is.

Daniel Molkentin committed changes in /trunk/KDE/kdelibs/kdeui:

add Oxygen color palette

Diffs: 1, 2, 3 Revision 727094
Dirk Mueller committed changes in /trunk/KDE/kdebase/apps/konsole/src/SessionController.cpp:

this assert hits here. I wasn't able to figure out why that happens, given that if one konsole crashes, all konsole's disappear (great concept!) hacking around seems to help.

Josef Spillner committed changes in /branches/work/knewstuff2/knewstuff-polishing/knewstuff2/ui:

- mockup implementation of progress indicator, which isn't linked to the engine yet

Diffs: 1, 2, 3, 4 Revision 727519
Albert Astals Cid committed changes in /branches/KDE/3.5/kdelibs/kdeui/kactionclasses.cpp:

Revert <a href="http://websvn.kde.org/?rev=706570">r706570</a>; which fixed a corner case in kaffeine and broke zoom settings on kpdf, kghostview, kview and basically anything using editable kselectations

You'll have to find a fix that does not break all the other applications using the same class as you

Please next time be extra careful when touching kdelibs code

KDE-PIM

C. Boemann committed changes in /trunk/KDE/kdepim/kontact:

Change various frames to make a nicer visual appearence
Mostly a matter of using styled frames rather than ugly win95 type
And also remove the big around-it-all frame.

Diffs: 1, 2, 3 Revision 725206
Thorsten Staerk committed changes in /trunk/KDE/kdepim/ktimetracker:

Exporting to csv files works, now we un-bloat the UI by removing the printing possibility.

Diffs: 1, 2, 3, 4, 5, 6 Revision 725255

Office

Inge Wallin committed changes in /trunk/koffice/kchart:

Convert ChartTypeCommand to handle an embedded ChartShape instead of the built-in KDChart.

This is in preparation to remove the built-in KDChart totally, thus finishing the move to ChartShape.

Diffs: 1, 2, 3, 4, 5 Revision 725074
Cyrille Berger Skott committed changes in /trunk/koffice/krita/plugins/paintops/dynamicbrush/programs/basiccoloring:

* remove the "purity" tab, it's not needed as hue/saturation/brightness can be associated with a sensor
* gives good name to widget in the ui file* make checking/unchecking the "enable" checkbox, enable/disable widgets

Dag Andersen committed changes in /trunk/koffice/kplato:

"Port" to QPrinter.
Printing hasn't worked before, and doesn't now, so "porting" was quite easy ;)

Cyrille Berger Skott committed changes in /trunk/koffice:

move the CMYK to a subdirectory of libs/pigment (this is probably not an optimal solution, but no reasonnable true solution appeared in two weeks, and as files are easy to move, if a better solution comes, those files will be easily moved to an other location, so don't worry !)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 726488
Johannes Simon committed changes in /trunk/koffice/kchart/shape/ChartShape.cpp:

Little workaround for the chart not getting updated after setting a new source model. I myself think this is a pretty ugly fix, as it is done by recreating the entire diagram, so I marked it as a 'FIXME'. But still better than it was before, I'd say.

Johannes Simon committed changes in /trunk/koffice/kchart/shape/ChartShape.cpp:

Yes!! KDChartAbstractDiagram::doItemsLayout() is the function I was looking for ;D
It updates the diagram after we changed the models data. Setting the data direction and firstRow/ColumnIsHeader for a chart now works flawlessly.

Johannes Simon committed changes in /trunk/koffice/kchart/shape/ChartLegendConfigWidget.ui:

No real work on the legend tool so far, just a couple of ideas how we could arrange the config elements.

The position property is still missing in there, since I'll code some custom-tailored widget for that one later ;-)

Networking Tools

Charles Connell committed changes in /trunk/extragear/network/kopete-plugins/cryptography:

Use kleo for encryption and signing
Don't crash the chatwindow config pane by assuming it uses a protocol (which it doesn't)
Increment version from 1.2 to 1.3.0 in lieu of kleo usage and async decryption

Diffs: 1, 2, 3, 4, 5 Revision 725133
Pino Toscano committed changes in /trunk/extragear/network/ktorrent:

Change most of the tooltips with simple (= non-formatted) text to not use rich text.
This makes them much easier to be translated, and no more hardcoded fonts.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 727022
Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker/TODO:

- These weren't implemented in the last seven years, they're probably not going to in the near future :-)

Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:

- Instead of hardcoding news items, use the syndication lib from kdepimlibs to fetch the KDE news

Diffs: 1, 2, 3, 4, 5 Revision 727430

User Interface

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

This is going to be popular: reduce the size of toolbuttons in toolbars

Also fix the hover effect of toolbuttons outsie toolbars

And finaly move the menubar 2px up

Jakob Petsovits committed changes in /trunk/KDE/kdebase/runtime/pics/oxygen:

Icon naming spec (and IANA MIME type) compliance:
Remove a lot of formerly used mimetype icons for which the proper replacement already exists, and move the other ones to their correct name.

As KDE 4 uses the XDG shared MIME database, no one should be affected by these changes anymore.

If someone is, remember not to directly load icons from the mimetype category by specifying their names.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 168 more) Revision 727205

Games

Aron Boström committed changes in /trunk/KDE/kdegames/bovo/themes:

Since there are some glitches with theme switching, and some serious painting issues with the gomoku theme, disable the gomoku and spacey themes and change the background color of the high contrast theme to white.

Thus, there are no visible problems left with theme painting.

Revert this as 4.0 hits the world.

Other

Benoît Jacob committed changes in /branches/work/eigen2:

Merge WrapArray into FromArray. Less code. The downside is that we're using one more const_cast. But I think that anyway trying to maintain const strictness in Eigen2 is not worth the hassle.

Konstantin: so the code snippet I sent you won't work anymore, replace wrapArray with fromArray.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 725140
Benoît Jacob committed changes in /branches/work/eigen2/src/Core:

make shameless use of const_cast to reduce code redundancy. This means Eigen2 gives up enforcing constness. I really tried to enforce it, but it really was much hassle because our expression templates can be lvalues (not only rvalues) and so much code had to be written twice.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 10 more) Revision 725345
Dirk Mueller committed changes in /trunk/kdesupport/qca:

so, I learned that the official way to build qca is via qmake and that cmake is just a hack. a hack that works, unlike qmake. except that it doesn't install man pages and that the pc file is different.

the remaining bit is to create the crypto cert directory, I haven't figured out how to do that with cmake yet

Diffs: 1, 2, 3 Revision 726674