Issue 332

23rd March 2014 by KDE Commit-Digest Team

Contributors

Jürgen Appel
Marta Rybczynska
Giacomo Barazzetti
Alex Fikl

This Week...

KDE Frameworks changes default font settings to Oxygen font. KDevelop improves Custom Buildsystem Plugin and it is now possible to define macros and add include directories/files through GUI and the GUI is always accessible by clicking on Project->Open Configuration. Kwin introduces a new Effect Loading mechanism. Trojita distinguishes between IMAP errors and network failures. In KDEPIM, work starts on mailmerge support. Skrooge can reorder the suboperations in the split operation. Plasma MediaCenter adds a Baloo plugin. Baloo reduces memory usage of the akonadi indexer.

Statistics

Commits 2171 by 153 developers
Open Bugs 21786
Open Wishes 16025
Bugs Opened 232 in the last 7 days
Bugs Closed 208 in the last 7 days

Commit Summary

Module Commits
/trunk/l10n-kde4
175
 
/branches/stable
92
 
/tags/KDE
63
 
/trunk/l10n-support
63
 
/trunk/www
24
 
/plasma-workspace/applets
17
 
/doc/index.docbook
14
 
/plasma-workspace/dataengines
12
 
/server/src
11
 
/krita/sketch
11
 
Files Developer Commits
369
 
Laurent Montel
163
 
237
 
Albert Astals Cid
81
 
192
 
Christophe Giboudeaux
71
 
195
 
Aleix Pol Gonzalez
66
 
144
 
Marco Martin
48
 
129
 
Alex Fiestas
44
 
126
 
Martin Gräßlin
42
 
120
 
Martin Klapetek
42
 
123
 
Alex Merry
42
 
105
 
Burkhard Lück
35
 

Internationalization (i18n) Status

Language Percentage Complete
German (de)
99%
 
French (fr)
97%
 
Dutch (nl)
97%
 
Bosnian (bs)
94%
 
Estonian (et)
90%
 
Greek (el)
90%
 
Galician (gl)
90%
 
Danish (da)
88%
 
()
87%
 
Catalan (ca)
87%
 

Bug Killers

Person Bugs Closed
Harald Sitter
36
 
Jekyll Wu
26
 
Christoph Feck
9
 
Vishesh Handa
7
 
Martin Koller
7
 
Gilles Caulier
5
 
Jarosław Staniek
5
 
Laurent Montel
4
 
Dennis Nienhüser
4
 
Volkan Gezer
4
 

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

Bug Fixes

Educational

Dennis Nienhüser committed changes in [marble] src/lib/marble/MapViewWidget.ui:

Fix horizontal size of celestial body combo box

Inge Wallin committed changes in [parley/KDE/4.13] /:

Fix bug 326429: Parley autosaves even when there is no change.


REVIEW: post-review :)

Graphics

Boudewijn Rempt committed changes in [calligra] /plugins/formats/psd:

Save single-layer CMYK images correctly to PSD

KDE Base

Sebastian Kügler committed changes in [kde-workspace] plasma-desktop/applets/kickoff/package/contents/ui/Header.qml:

Kickoff clears search after closing

Sebastian Kügler committed changes in [kde-workspace] /applets/kickoff/package/contents/ui:

Fix search input interaction

This reworks the focus handling of the search input.

Previously, the lineedit would never keep focus, the focus always stayed
with the root item. This means that the keys for the lineedit needed to
be filtered one by one, and the lineedit wouldn't get the proper focus
visually.

This patch changes the mechanism to switch focus between lineedit and
root view / tab view. It makes the lineedit behave as one is used to.

As a cherry on top: Kickoff will paste the clipboard content with
Control+V even if the search input doesn't have focus.

David Faure committed changes in [kdelibs/KDE/4.13] /:

Add error handling for dbus errors in dbus-call-with-callback.

This was the reason why m_recreateBusy could be stuck to 'true' forever,
the normal callback wasn't called because the DBus call ended in error
(my guess is a timeout due to extra-busy system, or kbuildsycoca crashing).

Old bug, first reported in 2008...


FIXED-IN: 4.13

KDE-PIM

Jan Kundrát committed changes in [trojita/v0.4.1] /Imap:

IMAP: refuse to work when STARTTLS is required but server sends PREAUTH

Oops, we cannot send STARTTLS when the connection is already authenticated.
This is serious enough to warrant an error; an attacker might be going after a
plaintext of a message we're going to APPEND, etc.

Thanks to Arnt Gulbrandsen on the imap-protocol ML for asking what happens when
we're configured to request STARTTLS and a PREAUTH is received, and to Michael M
Slusarz for starting that discussion.

Hope the error message is readable enough.

CVE: CVE-2014-2567

Diffs: 1, 2, 3 Revision 25fffa3...
Dan Vratil committed changes in [akonadi/1.12] server/src/search/searchmanager.cpp:

Fix deadlock in SearchManager search update

Scheduling a task into QEventLoop and then blocking the thread by QWaitCondition::wait()
which is awaken by the task won't work. The task will never get dispatched by the event
loop.

But it's OK to use updateSearchAsync() in searchUpdateTimeout(), the tasks will get
queued in QEventLoop and dispatched one by one, so now problem.

Office

Jarosław Staniek committed changes in [calligra] libs/odf/KoOdfWriteStore.cpp:

On closing the content writer do not expect it to be allocated

This fixes assertion in KoSimpleOdsDocument::createContent() where content stays unallocated if the filepath points to a nonwritable directory. Manifest and body are both allocated so I left the relevant assertions and conditions intact.


REVIEW:116893

Dmitry Kazakov committed changes in [calligra/krita-testing-kazakov] /image/floodfill:

Allow the backward interval to be eaten by the forward interval

This is possible in the case when the BW-interval was generated by
a fully adjacent FW-interval, then the start or end of the intervals
coincide.

This effectively fixes a crash/infinite loop in during the filling.

Multimedia

Jean-Baptiste Mardelle committed changes in [kdenlive] /:

Several fixes for high dpi screens

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision f89f4ef...
Harald Sitter committed changes in [dragon/KDE/4.13] src/app/playerApplication.cpp:

use right function to check for restoration

helps a bunch with not getting states messed up

FIXED-IN: 4.13.0

Networking Tools

Martin Klapetek committed changes in [ktp-call-ui/kde-telepathy-0.8] /:

Removes duplication of call-ui window for a single channel


REVIEW: 116623
FIXED-IN: 0.8.1

Daniel Kreuter committed changes in [choqok] libchoqok/ui/postwidget.cpp:

Fixed broken layout of other's tweets

Utilities

Rolf Eike Beer committed changes in [kgpg] /:

CAFF: do not abort for user ids that are already signed

Instead give the user a message that they were skipped.

Rolf Eike Beer committed changes in [kgpg] /:

CAFF: do not encrypt user ids for keys that do not have encryption capability

Instead give the user a message about why they were skipped.

Features

Development Tools

Michael Pyne committed changes in [kdesrc-build] /:

Add --resume (and --stop-on-failure) command line options.

Now you don't have to do --stop-on-failure=1.

--resume is documented in the man page and docbook, but basically lets
you resume the last build list quickly without source or metadata
updates, starting from the module that failed. If you want to skip the
failed module, look into --resume-after and --stop-before.


FIXED-IN:1.16

Sergey Kalinichev committed changes in [kdevelop] /:

Break Custom Buildsystem Plugin apart into 2 pieces.

Features:
*Now it's possible to define macros and add include directories/files through GUI.
*The GUI is always accessible by clicking on Project->Open Configuration.

Note that there is no relation between this plugin and .kdev_include_paths.
That is include directories from .kdev_include_paths are not accessible
from Custom defines and includes plugin and vice versa.
In future .kdev_include_paths file will be used only for out-of-project files.

Known shortcomings:
*After includes/defines modification, the project must be reloaded manually to apply the changes.
*Include files assistant stores data in .kdev_include_paths, but it should in .kdev4 file for in-project files.
*It's difficult to add many include directories at a time.
*...

Don't forget to run kbuildsycoca4.



REVIEW: 115696

Educational

Dennis Nienhüser committed changes in [marble/KDE/4.13] src/apps/marble-ui/ControlView.cpp:

Hide the Tour panel from the Panels menu

The Tour Widget is not yet ready for prime time. It's not shown in
the Panels menu now, though it's still possible to activate it via
a right click on the menu area. Curious people reading commit messages
hence can still enable it, and we'll introduce it in full glory with
the next release.

KDE Base

Martin Klapetek committed changes in [kde-workspace] powerdevil/daemon/actions/bundled/brightnesscontrol.cpp:

Show brightness OSD only on user input

As discussed at the Plasma sprint, we want to show the OSD only on user
input as a way of feedback to the action the user just did.

REVIEW: 116796

Vishesh Handa committed changes in [kde-baseapps/KDE/4.13] /src/search:

Dolphin Facet Widgets: Implement date based filtering

This required changes in Baloo which require reindexing. Since the
storage location has changed for Beta 3 everyone should be re-indexing
everything, so it won't be a problem.

Martin Gräßlin committed changes in [kde-workspace] /:

[kwin] Introduce a new Effect Loading mechanism

Effect loading gets split by the kind of effects KWin supports:
* Built-In Effects
* Scripted Effects
* Binary Plugin Effects

For this a new AbstractEffectLoader is added which will have several
sub-classes:
* BuiltInEffectLoader
* ScriptedEffectLoader
* PluginEffectLoader
* EffectLoader

The EffectLoader will be what the EffectsHandlerImpl is using and it just
delegates to the three other types of loaders. Thus the handler doesn't
need to care about the different kinds of effects. The loading is
supposed to be completely async and the EffectLoader emits a signal
whenever an Effect got loaded. The EffectsHandlerImpl is supposed to
connect to this signal and insert it into its own Effect management.
Unloading is not performed by the loader, but by the EffectsHandler.

There is one important change which needs to be implemented: the ordering
cannot be provided by the loader and thus needs to be added to the
Effects directly.

So far only the BuiltInEffectsLoader is implemented. It's not yet
integrated into the EffectsHandlerImpl, but a unit test is added which
tries to perform the various operations provided by the loader and the
BuiltInEffects. The test should cover all cases except the Check Default
functionality which is only used by Blur and Contrast effects. This
cannot be mocked yet as the GLPlatform doesn't allow mocking yet.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 9c8b9ba...

KDE-PIM

Laurent Montel committed changes in [kdepim] /mailmerge:

Start to implement mailmerge support

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 841c2c2...
Jan Kundrát committed changes in [trojita] /:

Distinguish between IMAP errors and network failures

The network errors could sometimes be remedied by simply reconnecting, which is
different from stuff like "hey, the IMAP server told us that we made a mistake".
Anyway, this is supposed to be a first step in transparently handling the netwok
annoyances without needlessly disturbing the user.

REVIEW: 116884

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 81b33fe...
Laurent Montel committed changes in [kdepim] /mailmerge/tests:

Add mailmerge test gui app

Office

Arjen Hiemstra committed changes in [calligra] /sketch:

sketch: Add a method for creating a new image with lots of options

Diffs: 1, 2, 3, 4 Revision 222da5d...
Dmitry Kazakov committed changes in [calligra/krita-testing-kazakov] /:

Add GUI for switching Fast and Composition-enabled mode fo the Fill Tool

Diffs: 1, 2, 3, 4, 5, 6 Revision 0026a08...
Dmitry Kazakov committed changes in [calligra/krita-testing-kazakov] /:

Connect the Scanline Fill algorithm to KisFillPainter

This patch finishes the implementation of the scanline algorithm.

There are a few TODOs still:

1) Supports pixel sizes 1, 2, 4 and 8 bytes. Asserts for anything else.
2) Code Duplications in KisFillPainterTest
3) Unittests are still failing or do nothing
4) No UI for the fill tool to choose whether to use compositioning

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 12f7d13...
Thomas Fischer committed changes in [kbibtex] /:

Adding .xsl file that translates Atom feeds retrieved from WorldCat's
OCLC Open Search into BibTeX documents (@book exclusively)

Stephane Mankowski committed changes in [skrooge] /:

feature: Ability to reorder the suboperations in the split operation

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

Multimedia

Sinny Kumari committed changes in [plasma-mediacenter] /:

Add Baloo Plugin

Diffs: 1, 2, 3, 4, 5 Revision 7108f86...

Games

Jeremy Paul Whiting committed changes in [kanagram/KDE/4.13] /:

Add option to use only uppercase letters, off by default.


REVIEW: 116865
FIXED_IN: 4.13
Patch created by Debjit Mondal

(cherry picked from commit 7103cda1d5e630e59245e5ecda25f1556a571a4c)

Optimization

Development Tools

Michael Pyne committed changes in [kdesrc-build] modules/ksb/KDEXMLReader.pm:

kde-projects: Try to optimize kde_projects.xml handling.

I have a fairly large kdesrc-buildrc, and simply doing a
"kdesrc-build --pretend kcalc" (where kcalc is not directly mentioned in
the config file) was taking 32 seconds to complete, since kdesrc-build
would have to go through each possible kde-projects source of kcalc,
and XML-expand it, in order to find kcalc.

Before this fix, each XML-expansion read the whole XML file looking for
modules matching the search string. Then, everything about the XML file
was completely forgotten.

Now the XML file is read only one time, and every possible kde-projects
module is remembered. We then filter the list of modules each time
there's a request. We can probably optimize this still further, but this
alone is enough to get me down to 3-4 seconds locally.

My KF5 installation doesn't show anywhere near as much improvement (but
then it didn't have anywhere near as many different use-modules entries)
so YMMV.

KDE-PIM

Dan Vratil committed changes in [akonadi/searchFixes] /src:

Move SearchManager into a thread

Search updates can be slow and expensive, so we definitely don't want them
to block the main Akonadi thread.

Diffs: 1, 2, 3, 4 Revision 66f602f...
Vishesh Handa committed changes in [baloo/KDE/4.13] /pim/agent:

Reduce memory usage of the akonadi indexer

Most of the memory seems to be take by keeping all of the akonadi data
(mostly kmime) in memory and then indexing it. We now use the
EmitItemsIndividually delivery option and only keep one email in memory
at a time. This drastically reduces the memory usage while having
resulting in a minor decrease in speed.

A very simple test of 130k emails -
EmitItemsIndividually - 57.6 seconds - 60 mb
EmitItemsInBatches - 56.3 seconds - 500+ mb

Christian Mollekopf committed changes in [kdepimlibs/KDE/4.13] akonadi/calendar/incidencefetchjob_p.cpp:

Skip virtual collections to avoid accidentaly loading a search collection.

Otherwise it can happen that huge amount of mails are loaded into memory just to
be discarded (2gb korgac anyone?).

I noticed this in korgac, korganizer, and kmail when trying to open invitations.

The reason were 60000 email in my Last Search folder.

Networking Tools

Martin Klapetek committed changes in [ktp-contact-list] contact-list-widget.cpp:

Renames the "Open" button of KFileDialog to "Send"

REVIEW: 116556

Sebastian Kügler committed changes in [plasma-nm/sebas/stylistic] applet/declarative/contents/ui/ConnectionItem.qml:

Calmer display of transfer speeds

The position of the upload information jumped around, depending on the
length of the string of the download information.

Solve this by splitting up the labels, making them individually shown
and hidden, and position them aligned to an imaginary center line at
enough distance from the label in order to get the most reliable positions,
while still eliding correctly with width available and buttons
shown/hidden.

Utilities

Raphael Kubo da Costa committed changes in [ark/KDE/4.12] plugins/cli7zplugin/cliplugin.cpp:

cli7zip: Change the precedence order of the 7z binaries we look for.

Instead of going from least capable (7zr) to most capable (7z), do the
opposite. Looking for 7zr first means that even though a 7z binary capable
of handling a certain archive type might be present on the system it will
not be used. This is particularly troublesome because 7zr does not support
archives with password.

This should not cause any problems for distros that ship only some 7zip
binaries since we still look for all 3 of them (7z, 7za and 7zr).

BUG: 329941
FIXED-IN: 4.12.4

Other

Development Tools

Sebastian Kügler committed changes in [plasmate/frameworks] plasmoidviewer/qmlpackages/shell/contents/views/Desktop.qml:

Move buttons to the bottom of the plasmoidviewer's main view

Applets are added at the top right, under the buttons. Putting the
controls at the bottoms nicely gets it out of th way.

KDE Base

Vishesh Handa committed changes in [kde-runtime/frameworks] /:

Remove all traces of Nepomuk

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 68 more) Revision 78d25b9...
Martin Klapetek committed changes in [kde-workspace] plasma-workspace/applets/notifications/package/contents/ui/Notifications.qml:

Remove the notifications plasmoid tabbar

Now only persistent notifications will be shown in the history and they
will be merged into one if it comes from the same app and same title.
This should significantly reduce the amount of notifications in the
popup -> no tabs needed.

Alternatively a StatusNotifierItem should be created if the developer
wishes to give the user an indication that something important happened
and needs action.

Other

Sebastian Kügler committed changes in [frameworkintegration] /:

Change default font settings to Oxygen font

Depend on kde:oxygen-fonts being installed. oxygen-fonts installs a file
called OxygenFontConfig.cmake, which is used for checking the dependency
is available.

REVIEW:116633
DIGEST:Default to Oxygen Font

Alex Merry committed changes in [kde4support] /plugin:

Remove defunct plugin-loading code, and deprecate KLibrary

KLibrary::factory() tried to load kde3-style plugins (not unreasonable
to drop support for) and kdelibs4-style plugins (which do not work,
since they depended on Qt support). It now does nothing.

This and the KPluginFactory::findPlugin() method leave KLibrary with no
purpose, so deprecate it.

(REVIEW): 116938

Commit b779f3478b02fc60b3005ad00a7859519d70d9dc in kservice