Issue 286

5th May 2013 by KDE Commit-Digest Team

Contributors

Marta Rybczynska

This Week...

Multiple changes in Digikam, especially around the full screen mode. Amarok's MusicBrainz tagger can now help choose the best tags possible. Kate further improves the Vim mode by allowing the emulated Vim command bar to auto-complete from words in the document using CTRL-Space. KDE-PIM makes default OpenPGP file extension configurable. K3b informs the user if the inserted medium is not suitable. NetworkManagement adds an Infiniband config. Optimizations in memory usage in KDE-PIM.

Statistics

Commits 1967 by 139 developers
Open Bugs 21382
Open Wishes 15835
Bugs Opened 308 in the last 7 days
Bugs Closed 249 in the last 7 days

Commit Summary

Module Commits
/trunk/l10n-kde4
155
 
/branches/stable
82
 
/trunk/l10n-support
72
 
/trunk/www
16
 
/kate/pate
14
 
/doc/index.docbook
13
 
/addons/kate
13
 
/trunk/playground
11
 
/src/Gui
10
 
/digikam/views
9
 
Files Developer Commits
363
 
Laurent Montel
125
 
288
 
David Faure
99
 
201
 
Kevin Ottens
67
 
147
 
Pino Toscano
51
 
99
 
Gilles Caulier
38
 
108
 
Sébastien Renard
36
 
108
 
Patrick Spendrin
36
 
102
 
Yuri Chornoivan
34
 
90
 
Jan Grulich
30
 
81
 
Marco Martin
27
 

Internationalization (i18n) Status

Language Percentage Complete
Ukrainian (uk)
100%
 
Brazilian Portuguese (pt_BR)
100%
 
Swedish (sv)
99%
 
Estonian (et)
97%
 
French (fr)
97%
 
Dutch (nl)
97%
 
Spanish (es)
97%
 
Polish (pl)
97%
 
German (de)
96%
 
Italian (it)
91%
 

Bug Killers

Person Bugs Closed
Patrick Spendrin
27
 
Jekyll Wu
21
 
Myriam Schweingruber
19
 
Christoph Feck
17
 
Thomas Lübking
14
 
Frank Reininghaus
11
 
Andrea Diamantini
9
 
Martin Gräßlin
8
 
David Edmundson
8
 
Aleix Pol Gonzalez
7
 

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

Bug Fixes

Development Tools

Sven Brauch committed changes in [kdev-python/1.5] /:

Don't visit decorators and base classes twice

This led to crashes because the second turn was done within
the class context.

Josef Weidendorfer committed changes in [kcachegrind] libcore/utils.h:

Fix source annotation for file names with non-ASCII chars

For non-ASCII characters in source file names, KCachegrind
always assumed latin1 encoding. It is far better to assume
file name encoding taken from the systems locale (fromLocal8Bit).
In strange cases, this still may go wrong, but then the developer
also has other issues, and can convert the encoding of the
profile dump himself.

Fix suggested in bug 319143 by Vadim Ushakov.

Graphics

Johannes Zarl committed changes in [kphotoalbum] XMLDB/FileReader.cpp:

Fix crash when member group category doesn't exist.

When the category of the member-group does not exist, a warning is
printed on the console and a matching category is created.

Michael Georg Hansen committed changes in [digikam] digikam/views/tableview_column_thumbnail.cpp:

Fix thumbnails disappearing when columns are too wide.

The idea here is that for landscape images, we adjust the height to
to be as high as the row height as long as the width can stretch enough
because the column is wider than the thumbnail size.
However, digiKam limits the thumbnail size to 256, so we also do that here.

KDE Base

Frank Reininghaus committed changes in [kde-baseapps/KDE/4.10] dolphin/src/kitemviews/kstandarditemlistwidget.cpp:

Use the same text color for selected hidden and non-hidden items

This fixes the problem that the names of selected hidden items are
unreadable with some color schemes.


FIXED-IN: 4.10.3
REVIEW: 110164

Simon Paul St James committed changes in [kate] /:

Don't go into an infinite loop if we '#' on the last, blank line of the document.

Frank Reininghaus committed changes in [kde-baseapps/KDE/4.10] dolphin/src/views/renamedialog.cpp:

Rename multiple files: Determine correctly if the name pattern is valid

The "Rename" button in the dialog should be enabled if and only if the
"new name" pattern is valid. This is the case if the pattern contains
exactly one sequence of '#', which will be replaced by digits.

This patch fixes the problem that
(a) A pattern that contains a single '#' is not considered valid, and
(b) A pattern without any '#' at all is not recognized as invalid.


FIXED-IN: 4.10.3
REVIEW: 110223

KDE-PIM

David Faure committed changes in [kdepimlibs/KDE/4.10] /:

Fix animation timer running forever when the index isn't visible.

(e.g. index is scrolled out of view)
This happened to me due to a favorite that was a grand-child of an imap inbox.
It got painted initially, but then scrolled out of view, so it was never repainted
so the animation timer was never stopped. Waste of CPU.

Laurent Montel committed changes in [kdepim] /:

Fix Bug 319034 - Create tag from "Mark Message" context menu

FIXED-IN: 4.11

Christian Mollekopf committed changes in [kdepimlibs] /:

Always write UID, also for iTIP messages.

This requirement has changed as of RFC5546:
"Changed the "UID" entry in the "VFREEBUSY" and "PUBLISH" restriction
tables to "1" from "0", to fall in line with [RFC5545]."

This patch requires ical 1.0.

REVIEW: 110666

Office

Boudewijn Rempt committed changes in [calligra] /:

Fix loading of images with selection masks.

Selections masks call KisMask::selection() in setVisibile, which
asserts if there initSelection() hasn't been called yet. But we cannot
call initSelection at this stage of loading because we're only creating
the node hierarchy, not the binary content yet.

So, add a flag "loading" that inhibits that call & all signal emissions.

C. Boemann committed changes in [calligra/textediting-grammar-gj] /:

Ordering of z level was indeterministic, so this should hopefully fix it

foreground is not more in front than default - meaning it only depends on z-level at that point

anchor as char ordering is always the lowest of any child shape

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

Networking Tools

Sven Brauch committed changes in [ktp-accounts-kcm] src/kcm-telepathy-accounts.cpp:

Avoid warning messages when closing the settings dialog

KWidgetItemDelegate doesn't like it if its view is deleted before
the delegate itself. This happens though if the delegate is
parented to the dialog itself, since the dialog will delete the UI
in its destructor (thus deleting the view), but the delegate is only
deleted by ~QObject's deleteChildren() call (which happens later).
Parenting the delegates to the dialog's main layout instead
prevents the problem.
This might fix crash bug 314400, but it's not clear if it will.

User Interface

Hugo Pereira Da Costa committed changes in [oxygen-gtk/1.3] /:

Make sure that 'runCommand' reads the full output of the command (as opposed to fixed max size);
Changed first argument to std::string.

Utilities

Valentin Rusu committed changes in [kwallet] src/manager/kwalleteditor.cpp:

Fix misbehavior due to multiple action connections

Features

Development Tools

Sven Brauch committed changes in [kdevplatform] /:

Provide a more obvious way to create assistant actions

When implementing a problem resolution assistant for kdev-python,
I noticed some very strange behaviour in the assistants API: actions
would only be executed if they were added to the assistant in the
actions() method (which is const, and should not create actions!),
while creating them in the constructor of the assistant made them
show up, but do nothing when triggered. The root of the problem turned
out to be that the assistants are instantiated in the parse job,
thus if you create the actions in the assistant's constructor, they
will live in the parse job thread, not in the application main thread;
the KAction's created from the assistant actions however would
live in the main thread, because the method to convert iAssistantAction
-> KAction is called from the main thread. Thus, connections wouldn't
work correctly, as the thread of the receiver is not running an event loop.

The existing code, as said, smartly works around this problem by adding
the actions to the assistant in the actions() method the first time
it is called, which happens from the main thread too. This sucks,
mainly because it cost me two hours to figure out why my actions wouldn't
be executed when I created them in the constructor, but also because
the API defines the function as const (which it should be), but the code
just ignores this (by using const_cast).

So, the new behaviour is this:
* If you want to create "static" actions (i.e. always the same for a given
assistant), implement createActions(). It will be called when the list of
actions is empty and actions are requested.
* If something goes wrong with where your actions live, you will hit
an assert instead of it just failing silently.

REVIEW:110211

Graphics

Gilles Caulier committed changes in [digikam] /:

As under OSX, if toolbar is hidden during fullscreen mode, we display fullscreen switch button on top-right corner of active sceen when mouse is moved on this corner by end user.
Mouse move envent is handle by an event filter plug over managed window. FullScreenMngr is now a QObject class based.
CC
CC
CC
CC
CC
CC

Marcel Wiesweg committed changes in [libkipi] /:

Add the functionality of Edit Hints.
These allow to give hints to the host about the scope of an edit process.
The host can apply optimizations e.g. if only metadata and no pixel data was edited.

Bump ABI version to 11.

Diffs: 1, 2, 3 Revision f31b9e9...
Gilles Caulier committed changes in [digikam] /:

Add new FullScreenMngr class dedicated manage full-screen action to digiKam KXMLGuiWindow instances.
This class factorize a lots of code when window is turned on/off to full-screen mode.
This fix problem about visibility restoring with status-bar, menu-bar, and thumb-bar.
First managed digiKam main window is Image Editor.
TODO :
- manage full-screen mode of main windows AlbumGUI, BQM, ImportUI, and LT, through FullScreenMngr.
- manage visibility of side-bars.
- provide a common settings widget to control visibility management in Configuration dialog.
- patch Configuration dialog to provide a fine control of visibility management in full-screen mode for each digiKam main window.

CC
CC
CC
CC
CC
CC

Gilles Caulier committed changes in [digikam] /:

For a better factoring and better management of all common features from digiKam KXmlGuiWindow based main windows
a new class named DXmlGuiWindow have been created. All digiKam main windows will be based on. Currently IE, BQM, and LT are done.
AlbumGUI and ImportUI still TODO.
This class replace FullScreenMngr as well. FullScreen mode are no managed through DXmlGuiWindow. Later more factoring will be done in this class, as
all Help digiKam dialogs (DB stats, Components info, etc...)
CC
CC
CC
CC
CC
CC

KDE Base

Maarten De Meyer committed changes in [kde-runtime] kurifilter-plugins/ikws/searchproviderdlg.cpp:

New web shortcut. Copy link from clipboard.

When making a new web shortcut check the clipboard, if it's a url put
it in the query line edit to save time.

FIXED-IN: 4.11
REVIEW: 110247
GUI: If the user has a link on his clipboard it will be copied to the
query text box.

Simon Paul St James committed changes in [kate] /:

Allow the emulated Vim command bar to auto-complete from words in the document using CTRL-Space.

DIGEST

Diffs: 1, 2, 3, 4 Revision d856b1c...
Thomas Lübking committed changes in [kde-workspace] kwin/effects.cpp:

clear m_activeEffects when effects change

If a screen with different refreshrate is attached, kwin currently resets
the compositor, altering the effect list.
If at the same time quads are rebuilt, the iteration operates on a pot.
invalid list of dangeling active effects.

Many thanks to Toralf Förster for his testing efforts.


FIXED-IN: 4.10.3
REVIEW: 110294
CC
(cherry picked from commit 07d3ac9d8c781755d19c71ccde6d182868a2bfb5)

Simeon Bird committed changes in [nepomuk-core] /:

Filewatch: move all filewatching into the filewatch service

Remove watch adding in the fileindexer service.
On a config change they were previously being re-added twice.

Then watch all indexed folders in filewatch constructor.
This is needed so that nepomukctl restart filewatch watches all indexed folders.
Don't bother to wait two minutes before installing the watches - it
isn't that slow anymore and we were doing most of the work anyway by
watching the homedir on startup.

REVIEW: 110301

Diffs: 1, 2, 3, 4, 5 Revision 70a64bc...

KDE-PIM

Jan Kundrát committed changes in [trojita] src/Gui/SimplePartWidget.cpp:

webkit: always specify both text color and background color, even on light themes

Soem of these themes are in fact strange enough that black text is not very well
visible. I hpoe this does not introduce any funny side effects.

The improvement shall be visible i.e. in KDE's "Wonton Soup" theme. I really
wonder who came up with these names...

Andre Heinecke committed changes in [kdepim/gpg4win] /:

Make default OpenPGP file extension configurable

This makes it configurable if OpenPGP encrypted
files created by Kleopatra should have the .pgp ending or
the .gpg ending. The current behavior stays as default. (.gpg)

This change was requested by instutional users who want to share
files with the same ending between PGP and GnuPG and use the
same file extension to mark those files.

Patch adapted from commit: 1438ec3

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

Composer: implement a well-behaving progress bar

Sadly, the IMAP code doesn't keep us informed about the progress of the APPEND
operation. Better than showing a progress bar stuck at, say, 10%, we show a
fuzzy one meaning "yeah, we're working on it". When the APPEND finishes, the
progress moves to 50% and from then on, tracks the actual progress as reported
by the MSA doing the actual submission.

Jan Kundrát committed changes in [trojita] /Gui:

GUI: add support for color tinting

The idea was suggested by Thomas Lübking, the implementation is shamelessly
stolen from Qt5's qtquick1 module (src/declarative/qml/qdeclarativeengine.cpp,
the usual Qt licensing).

Office

Boudewijn Rempt committed changes in [calligra] /:

Implement support for the alpha channel in the curves filter.


Patch by Sahil Nagpal ()

Boudewijn Rempt committed changes in [calligra] /:

: Add a value display for the brightness/contrast filter

Patch by Sahil Nagpal ()

Bug 324412:
 
15823 days
Diffs: 1, 2, 3, 4, 5 Revision 247121b...

Multimedia

Alberto Villa committed changes in [amarok] /:

Make MusicBrainz tagger more accurate and easy

The move to web service 2 makes disc number and artist credit better
defined, and multiple artists are not a problem anymore. Many more
results are now shown, with the new "Choose Best Matches from This
Album" action to avoid mixing tags from different albums.

Some speedups and visual/usability improvements complete the patch.

REVIEW: 105290
GUI: MusicBrainz tagger: more tags shown, new toolbar, and an improved
context menu for each search result (with >1 tracks only).
CCMAIL:
DIGEST: Amarok's MusicBrainz tagger can now help choose the best tags possible.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 6a3bc40...
Michał Małek committed changes in [k3b] /:

Inform the user if the inserted medium is not suitable

In the burn dialog, the message displayed when an incorrect medium was
inserted was the same that the one when there was no medium inserted.
As a result, the user might think that there's a problem with the device
instead of a problem with the medium.

If there's a medium inserted on a device but it's no suitable (for
example if it's a CD and it should be a DVD, or if it's a read-only
medium, or if the capacity of the medium is not enough), the user will
be informed of the reason of the issue.

mediaRequestStrings added as a static method to Medium class. This
method takes as parameters a list of unsuitable mediums and the
requeriments for a medium to be suitable and returns a QStringList with
messages describing the problem of each unsuitable medium.

MediaSelectionComboBox was modified to call mediaRequestStrings when
a medium is inserted but is not suitable.


FIXED-IN: 2.1.0
REVIEW: 110230

Networking Tools

Daniel Nicoletti committed changes in [plasma-nm] /:

Show Wifi networks which doesn't have a connection associated yet

Alexander Reinholdt committed changes in /trunk/playground/network/smb4k/plasmoid:

Improved items in the browser. You can now bookmark shares
and define custom options for hosts and shares.

Diffs: 1, 2, 3, 4, 5 Revision 1351570
Lukáš Tinkl committed changes in [plasma-nm] /:

add Infiniband config

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

Optimization

Graphics

Marcel Wiesweg committed changes in [digikam] /kipiiface:

KIPI edit hints: add optimization to reuse thumbnail and skip rescan if metadata only writes
out changes already transported by KIPI attributes (GPS, date/time)

KDE-PIM

Milian Wolff committed changes in [kdepimlibs] kabc/vcardparser/vcardparser.cpp:

Save memory in VCardParser by sharing common strings.

Many strings common to the VCard format where not shared resulting
in an exessive memory consumption. Now these strings are interned
to leverage implicit sharing.

Note: To furthermore decrease the amount of QByteArray -> QString
conversions this code uses a (trivial) custom interning cache
instead of reusing Akonadi::Internal::SharedValuePool.

Massif shows that this patch reduces the memory consumption for
running testread on a file containing 10k randomly generated vcards
by ~6MB or by nearly 16% from a total of about 38MB.

REVIEW: 110302

Milian Wolff committed changes in [kdepimlibs] /:

Save memory by sharing data object of empty KABC::Picture objects

Optimize memory consumption of KABC library for large address books.
In many cases no picture will be set for a contact yet still
Picture::Private was allocated. On my 64bit machine it has a size of
64bytes.

A common practice is to share the data member for empty objects, as is
done in most Qt classes (QString e.g.). This then saves the
Picture::Private allocation for all contacts which do not have any
picture set.

Implementation detail: Sadly one cannot make it work with a private
Private class as that would not be accessible by the Q_GLOBAL_STATIC
helper. Renaming the private data class should not have any affect
on the ABI though.

REVIEW: 110300

Other

KDE Base

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

Encapsulate colormap related functionality in own class

Split out the default and installed colormap from Workspace and put them
into an own class Colormaps.

The method updateColormaps is replaced by a slot update in Colormaps and
activeClientChanged signal is connected to this slot.

At the same time the colormap related code is straight forward ported to
xcb.

REVIEW: 110248

Diffs: 1, 2, 3 Revision 87ba186...
Martin Gräßlin committed changes in [kde-workspace] /:

Port (un)grabXKeyboard to XCB

Multimedia

Matěj Laitl committed changes in [amarok] /:

Biggie: introduce core/meta/forward_declarations.h and use it

We try to include only what is absolutely necessary in header
files to keep compilation times low. This is especially useful not
during the first compilation, but when you touch one (header) file ->
the less this header is (transitively) included, the less files you
need to recompile.

Normally, forward declarations of all-but-direct members of the class
help with this immensely. However, all our meta types use KSharedPtrs
instead of plain pointers (for good reasons); forward-declaring these
is well possible, but tedious to do in each header file that uses them.

Introduce core/meta/forward_declarations.h that contains forward
declarations of all KSharedPtr-managed classes in core/meta/* (and
KSharedPtr include for convenience)

Use the new file where appropriate. Now all header files should include
core/meta/forward_declarations.h instead of Meta.h (and include Meta.h
just in the .cpp file), unless they actually subclass one of those
classes.

Note that forward_declarations.h suffices even when you have
Meta::[Something]Ptr as class attribute; with a small hiccup: your
destructor needs to be implemented (even if empty) in a file that
includes the full class declaration (the compiler catches this
fortunately) of the meta class. That's why this patch add some
seemingly redundant empty destructor implementations.

Another hiccup is when you use Meta::[Something]Ptrs inside Qt
signals/slots - the code that ends up in the .moc (or *_automoc.cpp)
file and will usually need the full class declaration; simple trick is
to add the old-style
#include "FooClass.moc" at the end of the file.

This is not that important per-se, but it paves the way for more Meta
changes that we sketched in Randa.

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

Other

David Faure committed changes in [kmines] data/kmines.desktop:

Remove erroneous double-quotes around %c in Exec line