Issue 167

23rd January 2011 by Alexander van Loon


Alexander van Loon
Marco Krohn
Mutlu Inek
Dominik Tritscher
Marta Rybczynska

This Week...

Minor features are added to Digikam and the "Public Transport" Plasma applet. Importing MySQL database tables is now supported by Kexi. Calligra Plan’s scheduling speed is significantly improved. The KOffice "change tracking" feature sees more improvements. Much work is done on Calligra’s Colour Management System (CMS), Pigment. Bug fixes to KDE’s basic software (such as Dolphin and Solid), the KDE libraries, Nepomuk, KDE-PIM, Skrooge, Calligra and Amarok. BlueDevil’s user interface for sending files is simplified so that it fits in one page. Improvements to tagging functionality in Amarok. A lot of work is done on ownCloud. Knights can now support a match between two chess engines. KTorrent’s performance is improved in situations with many torrents open.
Friedrich Pülz writes about the improvement made to the PublicTransport plasmoid:

The PublicTransport Plasmoid

The PublicTransport applet shows departure/arrival/journey timetables for public transport (trams, buses, subways, etc.), trains, airplanes and some ships. The data comes from the PublicTransport data engine, which uses scripts for different service providers to parse timetable documents (mostly HTML). It already supports many countries in europe (Germany, Switzerland, Austria, Czechia, Slovakia, Belgium, Italy, Sweden, Denmark, Poland) and plane departures/arrivals all over the world. There is also a PublicTransport runner which shows departures/arrivals, clicking them opens the parsed website in a browser.

Stop Suggestions

The data engine offers stop name suggestions, if the service provider supports that. With a data source name like "Stops stop=Bremen" it returns stop suggestions using the default service provider for the users country (if there is one). A specific service provider can be used with a source name like "Stops de_db|stop=Bremen", which uses the "de_db" service provider (Deutsche Bahn, germany). To get a list of all installed service providers there is a data source "ServiceProviders". The supported countries can be retrieved using "Locations".

The applet shows stop suggestions using KCompletion. Some providers also provide weights for suggestions which get send to KCompletion. To prevent ambiguities stop IDs can be used with some providers.

If a request for "Departures" leads to an ambiguity it tries to parse the document for stop suggestions. That way the publictransport runner shows suggestions if the input is ambiguous, the user can then correct the query (eg. "Departures Bremen Hbf"). In the applet stop suggestions are also used for journey searches, where the user can query journeys with an easy syntax (and gets suggestions to add keywords like "in 5 minutes").


Departures can be retrieved from the data engine with a source name like "Departures stop=Bremen Hbf", a specific service provider can be used just like with the "Stops" source. For arrivals eg. "Arrivals stop=Bremen Hbf" can be used.

This gives more or less information about the departures/arrivals depending on the used service provider. It contains the vehicle type, target and departure/arrival time. It may also contain delays, delay reasons, intermediate stop names, news for a departure/arrival, platforms, operator names, etc.

Service Providers

For each supported service provider there is an XML file describing it (name, description, urls, etc.) and a script file which parses timetable documents. The XML stores "raw URLs" with placeholders for the stop name, the date/time of the departures, etc.

Functions with special names get executed using Kross to parse the timetable documents, eg.: "parseTimetable( document )" to parse departures/arrivals, the timetable document is given as argument (eg. HTML code), "parseJourneys( document )" to parse journeys from A to B, "parsePossibleStops( document )" to parse stop suggestions. For stop suggestions there are often JSON documents available, otherwise mostly HTML is used. The data engine offers some objects to scripts to add timetable data, eg. "timetableData.set( 'Target', targetString ); result.addData( timetableData );". The "set" function accepts many different strings for timetable informations (DepatureHour, DepartureMinute, Delay, DelayReason, RouteStops, Platform, etc.).

There's also a tool called "TimetableMate" for adding support for new service providers. It provides autocompletion and tooltips for functions used by the data engine and objects offered by the data engine. It also has a GUI for all elements used in the XML files, a KWebKit viewer, a Plasma previewer (testing the new service provider in the applet), can check scripts for errors and run them with test data, showing the results.


Before scripts were supported the data engine only used regular expressions and meanings of it's matches, which were stored in the XML files. There were pretty much code and special handling needed to support the different service providers. It's much easier and more flexible now with the scripts. I ported all the old providers to now use scripts, so that the old code can be dropped.

Applet Features

The applet has some more features, eg. filters. Departures/arrivals can be filtered by some constraints like the target, the vehicle type, intermediate stops, etc. The GUI for the filters allows to add/remove filter widgets. The same base class is used for the stop settings dialog, where the user can add more stop settings widgets (stop name, service provider + other settings).

Another feature of the applet are alarms. There are recurring and single shot alarms, the associated departures are assigned using the filter classes. For example an alarm can be set for "On monday, bus line 20 at 8:30 am". Filters and alarms are applied in a separate thread, to not freeze plasma while many complex filters are applied on lots of departures. The departure data from the data engine is also put into structures in the thread (classes DepartureInfo / JourneyInfo).

The applet uses a Plasma::TreeView to show the departures. It uses a custom treeview class derived from QTreeView to theme the header more plasma-like and to fade the contents out at the top and bottom. It also uses a custom delegate that can display HTML.

Library publictransporthelper

The stop settings dialog is shared between the applet and the runner in a separate library "publictransporthelper". It offers a class StopSettingsDialog, which the applet uses to select service providers, stop names and other advanced settings. The runner uses the same class to only select a service provider. The dialog also offers a button to show more information about the service provider, to install new service providers and uses stop autocompletion. The installation works from local XML files (and automatically installs the script with it). GHNS support isn't working correctly currently.

I just commited a change to make all labels in the StopSettingsDialog the same width using the ColumnResizer class from Aurelien Gateau.

Dynamic Widget Container Class

The base class used to allow dynamic adding/removing of widgets is named "AbstractDynamicWidgetContainer". It's contained in the library. Derived classes are "DynamicLabeledLineEditList" (used for multiple stop names), "StopListWidget" (for multiple stop settings), "FilterListWidget" (for multiple filters, OR combined), "ConstraintListWidget" (for multiple constraints in a filter, AND combined) and "ChangelogWidget" (for multiple changelog entries in TimetableMate). It has some options like showing one remove button after the last widget / showing a remove button besides each widget, showing separators between widgets, minimum/maximum widget count, adding new widgets to the bottom/top. "AbstractDynamicLabeledWidgetContainer" adds a label for each widget (the text can include "%1", replaced by the widget number).

GPS Stop Finding

If GPS is available (I don't have one), the applet can offer stops that are near the users current position. This uses the geolocation data engine to get the position which gets send to the openstreetmap data engine. That data engine then finds the public transport stops. That will be nice in plasma mobile :)

Unit Tests

I recently added unit tests to the data engine, which tests all service providers and the different data sources. This is very useful. For example, if a service provider changes the HTML structure of it's result websites, the script needs to be updated. There are also unit tests for the publictransporthelper library.


The GHNS support needs to get finished. And I think the project should move to Git, I'll try to find out how to do that. More supported service providers in more countries, preferably with non-HTML data, would also be nice of course. I recently added one for Sweden after a users request.

For more information (almost) everything has APIDOX documentation. The source code is available in SVN /trunk/playground/base/plasma/.../publictransport, where "..." is one of applets, dataengines, runners. There are pages on UserBase and kde-look.


Commits 2997 by 239 developers
Open Bugs 23285
Open Wishes 17405
Bugs Opened 585 in the last 7 days
Bugs Closed 450 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Eike Hein
Sergio Luis Martins
Marco Martin
Hugo Pereira Da Costa
Laurent Montel
Ganesh Paramasivam
Aaron J. Seigo
Gilles Caulier
Peter Kümmel
Jonathan Michael Thomas

Internationalization (i18n) Status

Language Percentage Complete
Swedish (sv)
Brazilian Portuguese (pt_BR)
Portuguese (pt)
British English (en_GB)
Spanish (es)
French (fr)
Dutch (nl)
German (de)
Low Saxon (nds)
Italian (it)

Bug Killers

Person Bugs Closed
Myriam Schweingruber
ludwig reiter intevation de
kde martin-graesslin com
Darío Andrés
Christophe Giboudeaux
Marcel Wiesweg
Aaron J. Seigo
Pino Toscano
Tobias Koenig
bernhard intevation de

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] []    


[] [] []   


[] [] []   

KDE Base

[] [] []   []


[]   []   


[] [] []   




[] []    

Networking Tools

[] [] []   []

User Interface



[]   []   


[] [] []   



There are 138 selections this week

Bug Fixes

Development Tools

David Nolden committed changes in [KDevPlatform] /language/codecompletion:

Fix the code completion model so that it computes the completion items in a background thread again.
Seems like this was broken when the code was moved from cpp to kdevplatform.

This makes the UI more responsive when automatic completion is enabled.

It might lead to slight regressions, because we use multi-threading where it accidentally wasn't used before (foreground lock was added in one place).

Diffs: 1, 2, 3, 4 Revision e8e7c38...
David Nolden committed changes in [KDevPlatform] /language/codecompletion/codecompletionworker.cpp:

Don't acquire the foreground lock twice recursively, once is enough.

David Nolden committed changes in [KDevPlatform] /interfaces/foregroundlock.cpp:

Don't try entering the "release+trylock" loop if we already hold the foreground lock. Else, we might get a deadlock if acquire it recursively.


Dennis Nienhüser committed changes in /trunk/KDE/kdeedu/marble/src/lib/MarbleMap.cpp:

Don't crash when setting an invalid map theme and the fallback theme does not work either.

Bernhard Beschow committed changes in /trunk/KDE/kdeedu/marble/src/lib:

forward-port r1215778: don't crash in equirectangular projection when the map doesn't cover the whole view

Diffs: 1, 2, 3, 4, 5, 6 Revision 1215795
Dennis Nienhüser committed changes in /trunk/KDE/kdeedu/marble/src/lib/routing/RoutingLayer.cpp:

Guard against faulty routes.

Jasem Mutlaq committed changes in /trunk/KDE/kdeedu/kstars/kstars:

Comply with INDI wire protocol for sending enableBLOB.
Delete temp files are fitsviewer shows them.
Thank Gerry for reporting this!

Andriy Rysin committed changes in /trunk/KDE/kdeedu/kwordquiz/src:


Marcel Wiesweg committed changes in /branches/extragear/graphics/digikam/core/libs/models/imagemodel.cpp:

Add a small safety net here, though I'm not sure if it's necessary, if it's the problem at all

Marcel Wiesweg committed changes in /branches/extragear/graphics/digikam/core/libs/widgets/graphicsview/graphicsdimgview.cpp:

Switch off BSP indexing in the preview graphics view.
Workaround, presumably a Qt problem.

Christoph Feck committed changes in /trunk/KDE/kdegraphics/kolourpaint:

Fix wrong JPEG 2000 MIME type

Together with fixes in kdelibs it is now possible to save JPEG 2000 images in KolourPaint with adjustable quality.

Note that for JPEG 2000, the quality parameter really means a file size percentage, so you should start with values around 15, which already results in good quality.

If you do not get the "Quality" widget in the save dialog, delete the kolourpaintrc file, as KolourPaint caches the relevant MIME information in its config file.

Andrew Coles committed changes in /branches/extragear/graphics/digikam/core/libs/threads/dynamicthread.cpp:

Moved the call to takingThread() so it definitely comes after the value of the the variable 'state' is updated in transitionToRunning().

This avoids two instances of the same DynamicThreadPriv being scheduled at the same time.

KDE Base

Alex Fiestas committed changes in [Bluedevil] /src/actionplugins/sendfile/helper:

Refactoring of SendFile Wizard, now it only has 1 page.


Alex Fiestas committed changes in [bluedevil] /daemon/obexftpkded:

Reset the timer each time transferProgress is emmited.

The session is actually used when the transfer is going on, so we
have to reset the timer in order to avoid invalid sessionTimeout.

FIXED-IN: 1.0.2

Alex Fiestas committed changes in [bluedevil] /daemon/helpers/filereceiver:

If org.openobex is unregistered, restart the server.

Seems that obex-data-server is crashing a lot for some people
(including me) so we have to handle it properly.

FIXED-IN: 1.0.2

michel dot ludwig at kdemail dot net committed changes in [Kile] /src/widgets/konsolewidget.cpp:

Don't remove the Konsole widget from the layout when it has been destroyed already.
This fixes a crash.

Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src/search/filenamesearchprotocol.cpp:

Assure that no endless searching is done if a link points to a parent directory

FIXED-IN: 4.6.0

Matthias Fuchs committed changes in /trunk/KDE/kdelibs/kio/kio/krun.cpp:
Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src/search:

Remember all iterated directories to prevent an endless recursion by links.
Tested with search all files below /

Aaron J. Seigo committed changes in /trunk/KDE/kdelibs/plasma/querymatch.cpp:

QString is not thread-safe; since the matches get shuttled around between threads, we need to protect access to it.
as writing is rare, this should hopefully not degrade performance too much. if it passes testing, then i will backport this.

Michael Pyne committed changes in /trunk/KDE/kdelibs/kdecore/util/kshareddatacache.cpp:

Fully clear cache metadata in clearInternal().

KSharedDataCache uses the clearInternal() method to reset the cache, which is used if
corruption is detected, and when directed through KSharedDataCache::clear(). For whatever
reason I thought that simply setting the "first page" pointer for each possible index
entry would be sufficient, but that is not the case at all, as various methods which go
through the cache entries also check things such as the use count, last access time, etc.

Assuming no other errors (:-/) this should be the cause of bug 260309. (The
exact sequence would be a KSharedDataCache user runs ::clear(), later adds some
entries that invoke removeUsedPages(), and removeUsedPages() goes through *all*
index entries, including ones that appear to be in use since their use count is
>0, but their first page is still invalid). Easiest way to invoke this bug I've
found is to simply run "plasmoidviewer clock" at a konsole.

While reviewing code I also added a comment clarifying the usage of a page
variable as an index entry, and changed the index entry comparison functions to
look for any invalid page instead of checking for -1, as it takes me 5 minutes
every single time I review removeUsedPages to prove that -1 is the only
possible value <0. These changes will not be backported to KDE Platform 4.6.

Dario Freddi committed changes in /trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.cpp:

Differently from the previous version, now power profiles can be valid even if they have no groups in them: change the code to reflect this change.

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

Found how to reproduce the qfswatch hang bug in the unittest.
Fixed by adding a qAddPostRoutine which destroys KDirWatch::sef() while qApp is still around.
If this proves stable in trunk, let's backport it to the 4.6 branch

Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src/panels/folders/folderspanel.cpp:

Don't assure the visibility of the leaf, if another directory has been opened by the [+]-toggle.

Sebastian Trueg committed changes in /trunk/KDE/kdebase/runtime/nepomuk/server/servicecontroller.cpp:

Properly handle DBus error replies when checking the init state of services.

This fixes a bug where services are started before the deps are initialized and all sorts of problems appear.

Frank Reininghaus committed changes in /trunk/KDE/kdebase/apps/dolphin/src/tests/dolphintreeviewtest.cpp:

Improve DolphinTreeViewTest's stability.

When running the test in the background while using the computer for
other things, it may happen that the test's widgets are not focused,
which led to an infinite loop before this commit. I've removed the
checks that caused this loop because the only thing that is important
for the test is that the view loses the keyboard focus at some point
(see bug 220898).

Christoph Feck committed changes in /trunk/KDE/kdelibs/kimgio/jp2.desktop:

Fix wrong JPEG 2000 MIME type

This fixes saving JPEG 2000 images from KSnapshot or KolourPaint.

Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src/search/dolphinsearchbox.cpp:

Fix issue that the "From Here" search restriction does not work on subfolders when Nepomuk/Strigi has been activated.

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

Apply better fix for the use of KDirWatch::self() in the destructor of a singleton:
make it possible, by not destroying the KDirWatch early, only its qfswatcher.

Patch by alter schwede, thanks!

Aaron J. Seigo committed changes in /trunk/KDE/kdelibs/plasma/extenders/extender.cpp:

remove the item pointer from all collections when it is deleted as it is also added to all of them when first added

Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:

Assure that the enabled plugins for previews are set for the Information Panel and the tooltips.
This fixes the issue that a disabled thumbnail-plugin might be chosen.

For 4.7 it should be considered to move this code into KIO::filePreview() as default already (will provide a patch on the reviewboard).

Diffs: 1, 2, 3, 4 Revision 1215459
Maks Orlovich committed changes in /trunk/KDE/kdelibs/khtml/css/cssstyleselector.cpp:

Make sure we honor width: set on a button with display: inline.

This is done by mutating it into inline-block (WebCore does that,
but a lot more other stuff, too, which doesn't make sense here given
our native-widgets approach).

Fixes the star (so that's what the weird fancy character was) and loupe
icons on google search results getting cutoff.

Maks Orlovich committed changes in /trunk/KDE/kdelibs/kjs/bytecode/codes.def:

Fix problems with negative indeces in bracket ops in cases we can statically determine arguments to be of int32 type. Fixes reply problem on

I think I'll probably just have to bite the bullet and add in a uint32 type to FrostByte's type system, but getting conversion rules right
for that will be tricky... and it'll be extra-annoying that all the bitops like to produce int32.

Maks Orlovich committed changes in /trunk/KDE/kdelibs/khtml/java/kjavaappletviewer.cpp:

Unbreak KJavaAppletViewer. QStringList::begin is not an output iterator.

Maks Orlovich committed changes in /trunk/KDE/kdelibs/khtml/rendering/render_style.cpp:

Fix a bug in khtml::StyleBoxData::operator == that made us incorrectly hashcons different styles, messing up

Maks Orlovich committed changes in /trunk/KDE/kdelibs/kio:

This fixes severe performance problems with complicated proxy scripts.

1) Whenever we get a string that may be either a hostname or IP, try
checking it for being an IP with QHostAddress first, rather than handing it to
QHostInfo::fromName directly, as that method does reverse lookups on IPs.
Takes proxy overhead on a certain complex but well-written script from
0.5 seconds (per-request, yikes) to about 50ms or so.

2) Use the KIO DNS cache when possible in cases we have a hostname, as there
is obviously quite a bit of locality in hostnames used. This takes the
overhead down to the 2-5ms range.

Reviewed by Thiago.

Maks Orlovich committed changes in /trunk/KDE/kdelibs/khtml:

Various fixes for the new twitter website:
1) The alleged DOM 0 DOMNode::item doesn't exist in Gecko and WebCore at least,
and it confuses the script loader (as we have NodeList-like .item, but not an
index [[Get]]). Remove it, but add one to HTMLSelectElement as that's legit

2) When document.domain is set to the present domain, we still want to call
setDomainFromDOM(), as it would set the 'script-set domain' bit moving the
origin into that namespace --- otherwise it will be inaccessible to other
things that opted in.

3) XMLHttpRequest should complete relative URLs in its own context, not the
dynamic one.

Andre Heinecke committed changes in /branches/work/komo/kdelibs/solid/solid:

- Update the status correctly when the Network Status changed
and not only when the status of the connmanager created by
solid changed.

- Check the online status by querying the adapters ( exposing
Networking::checkStatus to avoid code duplication )
instead of relying on the connmanager created by solid.

- Ignore the status of USB Serial connections.

Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src/search/dolphinsearchbox.cpp:

Stay consistent with the non-indexed searching and also return folders as search-result when searching in indexed folders.

Sebastian Trueg committed changes in /trunk/KDE/kdebase/runtime/nepomuk/services/queryservice/folder.cpp:

There is no point in counting results when a limit is set.
Virtuoso will ignore it anyway and the query might take very long.

Sebastian Trueg committed changes in /trunk/KDE/kdelibs/nepomuk/query:

* Fixed the handling of quotes and keywords such as "AND", "OR", and "NOT" in LiteralTerm.
Now correct bif:contains or regex filters are created for values.

* Made the query parser merge LiteralTerms into a single one to improve query performance.
While merging two LiteralTerms into one does not yield the exact same query (when merged
both literal tokens need to appear in the same property value while with separate LiteralTerms
the tokens can appear in different properties) it should cover close to all typical use cases
while increasing the performance significantly and getting rid of the nasty "Virtuoso goes
crazy when I use KRunner" bug.

Tobias Koenig committed changes in /branches/work/komo/kdelibs/kdeui/widgets/kcompletionbox.cpp:

Fix mouse selection for embedded KCompletionBox

If a KLineEdit is embedded in QML, the completion box should bypass the graphics proxy widget, otherwise it won't receive mouse events.

Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasmagenericshell/abstracticon.cpp:

always reset the cursor, and do so before the drag

Andre Heinecke committed changes in /branches/work/komo/kdelibs/solid/solid:

- Remove the use of private qt api. This did not work as intended
so the status was never updated. When there was no instance of
networkingcontrolmgr. (The minimalnetworkingclient used to test
before does that)

- Instanciate WinCE Networking Control Manager because it handles
the Window Messages notifing about a Network status change.

- Create the Networking control manager as a child window
of the correct qt main window. So Messages are recive correctly
even in multithreaded applications with multiple windows.

- Cleanup debug output a bit.

Marco Martin committed changes in /trunk/playground/base/plasma/declarative-applets/replacements/microblog/contents/ui/PostingWidget.qml:

use the evil underscore here too to map to the ugly twitter api

Peter Penz committed changes in /trunk/KDE/kdelibs/kio/kio/kfileitemdelegate.cpp:

When editing the name of file items opening a context-menu for the text-editor may not result in closing the rename-operation.
Thanks to Zé for the patch!

Marco Martin committed changes in /trunk/KDE/kdebase/runtime/plasma/containments/newspaper:

try to reize columns based on applets hints.
center if the contents are smaller than the view

this fixes the behaviour of newspaper in plasma-desktop quite a lot, is probably worth backporting


Sergio Luis Martins committed changes in [kdepim] calendarsupport/eventarchiver.cpp:

Deleting a batch of incidences should be an atomic operation.

Otherwise, When deleting 1000 events you'll be asked 1000 times if you want to send invitations.

Christophe Giboudeaux committed changes in /trunk/KDE/kdepimlibs/kontactinterface/uniqueapphandler.cpp:

Make sure the applications are unregistered when the module is unloaded.

MERGE: 4.6

Tobias Koenig committed changes in /trunk/KDE/kdepimlibs/mailtransport:

Update the password of all Transport instances when
changing the password in the configuration dialog.

Fixes first part of bug 258350

Sergio Luis Martins committed changes in /trunk/extragear/pim/googledata/calendar/gcalresource.cpp:

KCal::Event::dtEnd() is inclusive, not exclusive.

This is an important detail for all-day events.

Sergio Luis Martins committed changes in /trunk/extragear/pim/googledata/calendar/gcalresource.cpp:

Fixed some more places that assumed that KCal::Event::dtEnd() was exclusive instead of inclusive.

Andre Heinecke committed changes in [kdepim] kleopatra/utils/filedialog.cpp:

Do not set the KFileDialog save default to a dir

This is more of a problem in KFileDialog when there are
no Qt filedialogs available. The setting for the start
FileName is not recognized as a folder and set to a

This only happens if there is no proposedFileName available.

Tobias Koenig committed changes in [kdepim] /mobile/mail:

Separate global from folder specific messagelist config

The user can configure a global messagelist display format
in the settings dialog now and overwrite it with a folder specific
display format from the context actions menu.

Tobias Koenig committed changes in [kdepim] /mobile/contacts:

Disable 'Save' buttons after click

Since the ContactEditor and ContactGroupEditor might need some
time to finish saving, we should prevent the user from clicking
save multiple times, otherwise the contact (group) is created multiple
times as well.

andreas dot holzammer at kdab dot com committed changes in [kdepim] /mobile/lib:

fix that widgets get lost
It seems that widgets get a setVisiable(false) from somewhere in qt, to fix this issue we revert its hiding.

This should be fixed in qt.
But i didnt found where it is called.

Tobias Koenig committed changes in [kdepim-runtime] /imap:

Set annotations correctly for new collections

This fixes the bug that collections, created by the Kolab
resource, lose their annotations and therefor do not show
up in kaddressbook/korganizer/knotes

Tobias Koenig committed changes in [kdepim] mobile/mail/composerview.cpp:

Update the Transport combobox on identity change

This ensures that a special transport, configured for an identity,
is used in the message composer.

Fixes second part of 258350 -> closing

Tobias Koenig committed changes in [kdepim] /calendar:

Add 'Next 7 days' mode to timeline view


Stephane Mankowski committed changes in /trunk/extragear/office/skrooge:

Separate field for income and expenditure when importing CSV files

Stephane Mankowski committed changes in /trunk/extragear/office/skrooge:

Conversion multiple records to "transfer" type cause all have the same ammount

Silvio Heinrich committed changes in [calligra] libs/pigment/compositeops/KoCompositeOpBurn.h:

Fixed the Burn composite option.

Should now work exactly like the Color burn mode in Photoshop
but only for fully opaque colors. Transparency is not considered jet.

Adam Pigg committed changes in [Calligra] /kexi/migration:

Memleak fixes
Show a database select page after the connection page
(Blank for file based source atm)


Christoph Pfister committed changes in /trunk/extragear/multimedia/kaffeine/src/dvb:

fix text encoding bug
iso/iec 8859-12 doesn't exist, therefore no codec can be created.
thanks for the report!

Sergey Ivanov committed changes in [Amarok] /:

Fixed issue with Organize collection, which prevent to removeing newly copied tracks.

Mark Kretschmann committed changes in [Amarok] /:

Fix minor inconsistency in the Collection view.

Patch by Bhargav Mangipudi.

Bart Cerneels committed changes in [amarok] /core-impl/podcasts/sql:

Episodes without guid should also be checked.

Mark Kretschmann committed changes in [Amarok] /:

Do not store track rating as tags in files.

Patch by Alan Ezusti.

krf at electrostorm dot net committed changes in [Amarok] /:

Remove dead IDs from the queue

Remove track IDs that are about to be removed from the underlying
playlist model. Fix crash when activating the queue editor when an
already removed track was still in the queue.

Mark Kretschmann committed changes in [Amarok] /:

Fix potential crash with the Similar Artists applet.

Thanks to Tuomas Nurmi for the patch.

Networking Tools

Eike Hein committed changes in [owncloud] /:

fix uploading files to folders with special characters in the name

Joris Guisson committed changes in [ktorrent] /:

Fix libktorrent not gettting updated when the download of a magnet link finishes and the FileSelectDlg is shown

Diffs: 1, 2, 3 Revision ef4c00a...
Andrea Diamantini committed changes in [rekonq/hybridRebasedAgain] /data:

Fix the display of the active tab in main_content.

The size of the page could be wrong because the content of a tab
can update after it is loaded. Since the current animation allow it,
the main_content can vary with the size of the child.

The animation was not run when changing the display since it is
considered as programmatic change by the CSS animations. We force
a run of the event loop to make sure the animatons runs.

Diffs: 1, 2, 3 Revision 7e6c4fd...
Joris Guisson committed changes in [ktorrent] /:

Fix tab bar not matching TabBarWidget state in some circumstances

Andrea Diamantini committed changes in [rekonq] /:

Fix tab preview flickering on mouse hover.

Patch by Furkan Uzumcu, cleaned up and reviewed by me

Eike Hein committed changes in [owncloud] inc/lib_filesystem.php:

fixed bug in filesystem abstraction that broke file uploading

Alexander Reinholdt committed changes in /trunk/playground/network/smb4k/helpers/smb4kmounthelper.cpp:

Fix mounting of shares with special characters such as hidden ones.

Raphael Kubo da Costa committed changes in /trunk/KDE/kdenetwork/kopete/protocols/yahoo/libkyahoo:

Fix a bit sending several outgoing webcam requests + a typo fix that denies in some cases sending webcam data.

From the ReviewBoard description:

a) seems like yahoo protocol doesn't send back in the webcam
invitation accepted which person did that. and there is a variable
to remember who we sent the last invite to. Problem would be if
several invites are going to be sent. So, I made the invitation name
to be an invitation *list*. Inspired by code in libpurple.

b) there is a typo when code tries to guess who the 'accepted
invitation' is coming from. I don't have a good way to replicate,
but mostly I suspect it happens when you're sending several
invitations (see point a) ) or when some online<->offline switches
are happening. Concrete side effect is that code tries to connect
to server "".

Patch by Cristi P <cristi.posoiu AT gmail>, thanks a lot!

REVIEW: 6333


Jonathan Michael Thomas committed changes in [Muon] /installer:

Don't show the app launcher dialog for transactions that are only changing the addons of an already-installed application

Jonathan Michael Thomas committed changes in [muon] kded/distupgradeevent/distupgradeevent.cpp:

Somehow running a python script directly without calling python /path/to/script causes zombie processes on exit.
The Kubuntu Notification Helper also runs a different python application directly, so I shall fix it there too.

Jonathan Michael Thomas committed changes in [libqapt] src/package.cpp:

If for some reason packages in main do not have the "Supported" control field, catch this any return rather than blindly assuming the data to be there and crashing.

Also add a safeguard against malformed /etc/lsb-release files to prevent crashes if /etc/lsb-release happens to be malformed



Parker Coates committed changes in /trunk/KDE/kdegames/kpat/libkcardgame:

Fix a bug where painting caused near 100% CPU usage and mis-sized cards.

This one was a bit of a doozy. The route of the problem is KImageCache's
in memory pixmap cache was occasionally returning the wrong pixmap for
a given key. Why that was happening I still don't know. So a card would
go to paint itself and notice that its pixmap was the wrong size, so it
would ask for a new one. The KAbstractCardDeck would take the request,
notice that the requested image/size was in the cache and return the
cached version, but unfornuately this was actually the wrong pixmap and
had the wrong size. The card happily used this pixmap and painted itself
but the next time it went to paint it noticed that its pixmap was the
wrong size and the loop repeated, hence the high processor usage.

I've disabled the in memory pixmap cache as the benefit wasn't very
significant and I couldn't figure out what the issue actually was. There
were also some problems with the KCard and KAbstractCardDeck code that
made the problem worse than it should have been. Those have been fixed
as well.


Development Tools

Silvère Lestang committed changes in [kdevplatform] /:

Add an optional filter action to StandartOutputView

We still need to connect it to the methode which will filter the items

Diffs: 1, 2, 3 Revision d893a47...


Dennis Nienhüser committed changes in /trunk/KDE/kdeedu/marble/src:

Add a bookmark manager to the Marble Qt application. So far it has view capabilities and limited, in-memory only edit capabilities.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 1215155
Nicolas Brisset committed changes in /branches/work/kst/portto4/kst/sample_data:

Start a directory to collect some sample data. Those 2 files are interesting because:
- they can be used to test the "Change data file" tool
- their formatting is compatible with fixed-width (13 characters) and white-separated, with some whitespaces at the end to stress-test the datasource
- they provide some metadata (units + some context info) which we'll soon be able to make use of

We have to discuss on the list how we want to go about sample data. I think it makes no sense to include them all in the distributed files, otherwise their size will increase a lot. And as I think we need to compress them, we may run into platform issues. I have gzipped those, but extracting them under Windows may be a problem for some...

I am not even sure it is a good idea to include all sample files in svn, maybe some links are better. The ideal solution might be to have a collection of URLs and provide under Help->Tutorials->Get Data Files a small dialog where the user can select the files he wants and the destination folder. They would then be downloaded directly from the Internet. Or even more simple: we could put up a dedicated tarball on with all interesting samples files in .zip and .tar.gz format.



Martin Klapetek committed changes in /branches/extragear/graphics/digikam/core:

Initial support for rebuilding thumbnails only in current album

Gilles Caulier committed changes in /branches/extragear/graphics/digikam/core:

Into context pop-up menu, "Assign Tag" action will show recently assigned tags list instead the whole tags list which can
bloat entire screen if tags collection is huge.

A new option named "More Tags" can be used to switch on tags tree view from sidebar and give focus to tags list as well.

Frédéric Coiffier committed changes in /trunk/extragear/graphics/kipi-plugins/piwigoexport:

piwigoexport : New checkbox for uploading high-quality version

* The progress dialog box now displays the current step

Diffs: 1, 2, 3, 4 Revision 1216074

KDE Base

Friedrich Karl Tilman Pülz committed changes in /trunk/playground/base/plasma/dataengines/publictransport/publictransportdataengine.cpp:

- The "ServiceProvider" source can now also be used to get information about a specific accessor by it's ID (eg. "ServiceProvider de_db"), instead just for information about the default accessor for a given country code (eg. "ServiceProvider de").

- When reading an accessor from one of the default service provider symlinks the real filename is now used, which also means that the real service provider ID is used. That way the datacache-file storing information about accessor scripts doesn't include default accessors twice, eg. "de_db" and "de_default" (symlink for de_db).

- Corrected the "defaultAccessor" for "international" from "others_flightstats" to "international_flightstats" in the "Locations" data source.

Friedrich Karl Tilman Pülz committed changes in /trunk/playground/base/plasma/dataengines/publictransport:

- Accessors can now use session keys that get parsed from some URL and stored for departure/arrival/stop suggestion requests. Session key usage is defined in the XMLs and they are stored in the accessor until a timeout has passed (5 mins).

- Accessors can now also use POST as method to get a result document.

- Better departure date guessing and the possibility for scripts to return "dates need adjustment" to indicate that dates couldn't get parsed (eg. when requesting departures two days in the future, these two days need to be added to the dates).

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 1215436
Friedrich Karl Tilman Pülz committed changes in /trunk/playground/base/plasma/dataengines/publictransport/accessorInfos:

- Readded at_oebb with a script for parsing (instead of only regexps) and updated it's URLs. It can now also parse route information, journey news, platform and delays.
- Better stop suggestion support for at_oebb: faster by requiring less data to be transfered, added stop weights.

Sinny Kumari committed changes in /trunk/KDE/kdelibs/plasma:

Make wallpaper capable of setting particular Image

Marco Martin committed changes in /trunk/KDE/kdeplasma-addons/dataengines/microblog:

TweetJob redesign to make easier to add new Twitter api support
FEATURE: retweet operation support


Jan Hambrecht committed changes in [calligra/flake-odf-gluepoints-jaham] /defaultTools/connectionTool:

added actions for changing connection point escape direction
added action groups as member of the tool so we can iterate over actions

Diffs: 1, 2, 3 Revision 9328558...
Ganesh Paramasivam committed changes in [koffice/koffice/change-tracking] /kotext:

Stable version for support of multiple and overlapping changes ( loading and saving ).
It's still a work-in-progress. More support expected to be added over the next couple of weeks

Diffs: 1, 2, 3, 4 Revision 94fa1cb...
Adam Pigg committed changes in [Calligra] /kexi/migration/mysql:

Implement support for importing a table

Tested by importing several tables from akonadi using a custom socket.
Both complex and v large tables worked fine.

Dag Andersen committed changes in [calligra] /:

plan: scheduling optimization

Add Calendar::firstAvailableBefore() to methods that needs special timezone treatment.
Fix a couple of bugs in calendar.

Add timezone definition to unit tests as calendars cannot work without them anylonger.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 55598a8...
Jan Hambrecht committed changes in [calligra/flake-odf-gluepoints-jaham] /defaultTools/connectionTool:

now we can actually edit the escape direction of a connection point

Silvio Heinrich committed changes in [calligra] /pigment:

Added KoCompositeOpGeneric class to easily create new composite modes by just defining a composition function.

The KoCompositeOpGeneric class is a template that takes a function pointer
to a composition function as a second template parameter.

So for the most composition modes it is not needed anymore
to derive a new class from KoCompositionOp (or from one of its derivates)

Diffs: 1, 2, 3, 4, 5, 6 Revision 552cde9...
Silvio Heinrich committed changes in [calligra] /pigment:

Added more blending functions.

Arcus Tangent, Gamma Light, Gamma Dark, Geometric Mean, Vivid Light and Pin Light

Diffs: 1, 2, 3 Revision eb4b6f7...
Silvio Heinrich committed changes in [calligra] /pigment:

Added even more composite modes.

Including HSL composite modes (Color, Saturation, Luminosity, Hue).
The HSL CompositeOps will only be added to RGB color spaces.

Diffs: 1, 2, 3, 4 Revision d7d5d42...
Ganesh Paramasivam committed changes in [Calligra/words-change_tracking-ganeshp] /libs/kotext/opendocument/KoTextWriter.cpp:

Adding support for overlapping changes in paragraphs example:- text insertion followed by paragraph deletion

Silvio Heinrich committed changes in [calligra] libs/pigment/compositeops/KoCompositeOpFunctions.h:

Introduced a comparison with an epsilon value in the setSaturation function.

The blend modes "Saturation" and "Hue" are actually broken.
Since the modes "Luminosity" and "Color" are working i expect the error somewhere in the setSaturation function.
I programmed it after the ISO 32000-1 spec and cannot find where i made a mistake.

Ganesh Paramasivam committed changes in [koffice/koffice/change-tracking] /kotext/changetracker:

Initial addition of capability to create duplicate change-ids in KoChangeTracker.
i.e create a new change-id from an existing change-id which acts similar to a C++ reference variable

Lukáš Tvrdý committed changes in [calligra] /plugins/tools/defaulttools:

New feature: Multihand
Initial hack on the freehand tool.

So far there is hardcoded symetry mode with the axis point in center with six brushes.

Diffs: 1, 2, 3, 4, 5, 6 Revision 4ee143b...
Thomas Baumgart committed changes in /trunk/extragear/office/kmymoney/kmymoney/views/kmymoneyview.cpp:

Added feature to keep the last 10 file states as backups. In the future we can make this count customizable


Trever Fischer committed changes in [phonon] /:

Add send_to_zeitgeist function, to be implemented later for sending media playback activity to zeitgeist

Sergey Ivanov committed changes in [amarok] /:

Refactoring of MetaTagLib.

Split it up on separate classes, one for each Tag format.

Added support of ASF tags (.wma).

Added cover arts support for M4A (.mp4) and ASF (.wma) files.

New class for tag guessing. If track has no Title and artist, MetaTagLib will try
to guess It from file name automaticaly.

Moved TagGuesser dialog and MusicBrainzFinder on new class rails.

Added ability to guess tags from whole track path. (TagGuesse dialog)
(RR: 100191)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 26 more) Revision a34f47c...
Lukáš Lalinský committed changes in /trunk/kdesupport/taglib:

Support for ASF embedded pictures

Patch by Anton Sergunov

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

Networking Tools

Eike Hein committed changes in [owncloud] inc/lib_filestorage.php:

Added more MIME Types in `inc/lib_filestorage.php`

Here the types added:
* Flac / Ogg [1]
* GZip / Tar / Tar+GZip
* PDF / SVG / Tiff
* JavaScript

Other little changes:
* I changed the ordered to be alphabetical (by extension)
* Using single quotes instead of double quotes for strings
* Indentation


Eike Hein committed changes in [owncloud/media_player] /media:

Initial version of media player/server

Provides a basic implementation of ampache's xml api and the start of a html5 based media player

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 92 more) Revision 7018019...
Dawit Alemayehu committed changes in [kwebkitpart] /src:

* Much improved context menu support:
* Removed as much of the unrelated menu options for certain content, e.g. images.
* Added new RMB options for HTML video and audio tags.

Diffs: 1, 2, 3, 4 Revision 8b4bb6f...
Eike Hein committed changes in [owncloud] /:

initial version for user managment tab in the settings page

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 91acafe...
Eike Hein committed changes in [owncloud] /audioplayer:

Basic HTML5 audio player plugin

Diffs: 1, 2, 3, 4, 5 Revision fd0e0d6...
Eike Hein committed changes in [owncloud] /:

Initial PostgreSQL support

Diffs: 1, 2, 3, 4, 5, 6 Revision a9fd0c6...
Eike Hein committed changes in [owncloud] /:

the text viewer now does syntax highlighting for code

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 155 more) Revision af8b66c...
Eike Hein committed changes in [owncloud] /:

Initial version of remote ownCloud access through filesystem abstraction

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision b38aa77...


Miha Čančula committed changes in [knights] /:

Implement draw offers and result setting in XBoard

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 34e7ae4...
Miha Čančula committed changes in [knights] /:

Enable a match between two engines.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 16256f6...
Miha Čančula committed changes in [knights] /:

Add the code to setup and start, but not display, a match between two programs

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision fc57353...
Miha Čančula committed changes in [knights] /:

Now really parse and display castling moves.



Peter Kümmel committed changes in /branches/work/kst/portto4/kst/src/datasources/ascii:

- there could be multiple instances of AsciiSource
- also support multiple delimiters
- optimize when only one delimiter is used

Peter Kümmel committed changes in /branches/work/kst/portto4/kst/src:

Some ascii reading optimization:

Here some measurments: gyrodata c&p to 8 million rows

Delimiters (comment, column) : time in readColumns
No comment, custom: one space : 1.69102 seconds
No comment, whitespace : 2.11194 seconds
default comment, custom: one space: 4.01525 seconds (default comment with 4 characters)
default comment, whitespace : 4.34039 seconds
default comment, custom ,;| : 6.49383 seconds (space at the end of 4 characters)


Marcel Wiesweg committed changes in /branches/extragear/graphics/digikam/core/utilities/queuemanager:

Create settings widgets for some BQM tools only when they are needed.
Currently, at startup, all settings widget are created and kept in memory,
this should not be necessary.

A tool can choose not to create the widget in its constructor, but instead
implement a createSettingsWidget() method which must be called from
the framework before the tool is accessed. I hope to have found
all relevant paths where this must be done.

Not all tools are ported.

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

KDE Base

Sebastian Trueg committed changes in [kde-runtime] /services/storage:

Highly improved initial update of legacy data.

Diffs: 1, 2, 3, 4 Revision 920fa6d...


Allen Winter committed changes in [kdepim] /:

Resurrect unsermake to see if we can make it work again here

unsermake should generate a faster set of Makefiles and it might also
obviate the need for automake at all.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 24 more) Revision 81aeacd...
Sergio Luis Martins committed changes in [kdepim] /:

Make korganizer start 0.7 seconds faster, and next/previous week/month more fluid.

HolidayRegion::holiday(date) is expensive, so, instead of calling it 42 times, call
HolidayRegion::holiday( start, start.addDays(41) ) only once.

Diffs: 1, 2, 3, 4 Revision b3a74e4...


Dag Andersen committed changes in [Calligra] /:

plan: scheduling speed optimization

Refactor project to use local time zone internally.
When a resource has a different timezone, it is handled specifically.
Improve caching of resource work time.

This should reduce scheduling time by ~25% for uncached project and ~90% for cached project.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 35 more) Revision dea83ca...
Cyrille Berger Skott committed changes in [calligra] libs/pigment/compositeops/KoCompositeOpGeneric.h:

Improved blending when alpha channel is locked.

The resulting color for compositing with locked alpha channel was not
100% right. I added special code for the case that the alpha channel is locked.
It should be slightly faster, too.

Networking Tools

Joris Guisson committed changes in [KTorrent] /:

Improve performance of ktorrent in situations where there are many torrents:
- Log viewer no longer chokes on many log messages
- Load torrents earlier to prevent unnecessary gui updates
- Make GUI updates more efficient
- Don't sort when appending torrents to QM, seeing that orderQueue does that anyway
- Do not load all discovered torrents in one go in scanfolder plugin

Robin Appelman committed changes in [owncloud] /:

only show files in the filebrowser that we can actually read.

in the (rare) case that there are unreadable files show an error since it's probably a case of incorrect premissions set by someone.

Diffs: 1, 2, 3 Revision 066ca70...
Andrea Diamantini committed changes in [rekonq] /opensearch:

Keep downloaded suggestions in memory.
This prevents from downloading it again, letting the completion
list be more reactive.

Diffs: 1, 2, 3 Revision 7e291fd...
Eike Hein committed changes in [owncloud] plugins/audioplayer/audioplayer.js:

Only register the "Play" action for audio types that the browser is able to play.
Otherwise just leave the default action to "Download".


Jonathan Michael Thomas committed changes in [libqapt] src/backend.cpp:

Only listen for signals from the worker if we requested a worker action ourselves by keeping track of when we have requested the worker and only connecting these signals when the worker has a) appeared and b) we requested it. This is a somewhat major behavioral change, so I will not backport it to the 1.1 branch for fear of causing regressions.

Due to a lack of foresight when I originally designed the worker/backend mechanism, I failed to design a way for the backend to be notified about things it requested. Instead the backend gets sent signals indescriminately over DBus that any other application using a QApt::Backend could trigger.

For QApt2 I plan on having the worker functions return a unique DBus object responsible for sending/recieving signals for a particular transaction.


Miha Čančula committed changes in [knights] src/rules/chessrules.cpp:

Improve detection of short-noted moves


Jonathan Michael Thomas committed changes in [libqapt] /qapt-gst-helper:

Don't invoke finder methods directly, but rather load the data beforehand and connect the thread's start signal to the finder's start slot so things can be truly asynchronous and non-blocking

Diffs: 1, 2, 3 Revision cfd7ed5...


KDE Base

Friedrich Karl Tilman Pülz committed changes in /trunk/playground/base/plasma/dataengines/publictransport:

- Dropped some service providers: de_vrn (seems like there are now only departure urls for specific lines), at_oebb (needs a script instead of only regexps for easier adoption to new website layouts, but but no urls directly to the timetables).
- Added debug output and error logging to accessor scripts to make it easier to find bugs, eg. if websites change. Errors are logged to a file, eg. "~/.kde4/share/apps/plasma_engine_publictransport/accessors.log".

- Updated fr_gares, dk_rejseplanen, us_septa, de_vvs to new website layouts.
- Date values are now correct for the de_db accessor, also if departures for a date other than today are requested.
- The de_db accessor now also recognizes inavailable delays for requests of departures that are more than two hours in the future. This allows to less often update data, because data with available delays gets updated more often.
- Updated the ch_sbb accessor to work for journeys again. The problem was changed HTML code from the SBB service provider.
- Added new functions to the ch_sbb accessor: Parse routes of journeys complete with departure/arrival times, types of the used vehicles, line string and platforms). Parse capacity information and add it to the journey news.
- Fixed ch_sbb to show all departures, not only every second.. This was a one character fix ;)
- Fixed cz_idnes, it didn't show new departures after some time.

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

Networking Tools

Christian Weilbach committed changes in /trunk/playground/ioslaves/kio_magnet:

Merged kio-magnet in KTorrent now, removed from playground.