Issue 343

8th June 2014 by KDE Commit-Digest Team


Alex Fikl
Danny Allen
Giacomo Barazzetti

This Week...

Calligra adds Okular generator for DOC/DOCX, based on the one for ODT. Marble supports polygon moving, node deletion and adding polygon holes. Solid offers more detailed battery status information. KDevelop plugin controller architecture gains important optimizations. Kdelibs sees config file parsing optimization thanks to reduced number of memory allocations. Krita adds a Scalable Distance option to Weighted Smoothing. In KDE Frameworks, Step has been ported to Qt5/KF5.


Commits 2235 by 148 developers
Open Bugs 22603
Open Wishes 16088
Bugs Opened 282 in the last 7 days
Bugs Closed 234 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
David Faure
Laurent Montel
Aleix Pol Gonzalez
Marco Martin
Arjen Hiemstra
Dan Leinir Turthra Jensen
Denis Steckelmacher
Martin Gräßlin
Christian Mollekopf
Ludovic Grossard

Internationalization (i18n) Status

Language Percentage Complete
Portuguese (pt)
Ukrainian (uk)
Swedish (sv)
Brazilian Portuguese (pt_BR)
German (de)
French (fr)
Dutch (nl)
Spanish (es)
Bosnian (bs)
Italian (it)

Bug Killers

Person Bugs Closed
Christoph Feck
Chao Feng
Marco Martin
Martin Gräßlin
Jekyll Wu
Gilles Caulier
Albert Vaca Cintora
Jan Grulich
Dmitry Kazakov
Jarosław Staniek

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   


  []    []


[] []    

KDE Base

[] [] []   []


[] [] []   []


[] [] []   





Networking Tools

[] []    

User Interface

[] []    []







There are 68 selections this week

Bug Fixes

Development Tools

Denis Steckelmacher committed changes in [kdev-qmljs] /:

If a type name is unknown, don't create a new StructureType for it, but return mixed

If a QML component inherits from NotFound, typeFromClassName will create a
StructureType whose DeclarationId is "NotFound". The problem arises if NotFound
is later properly declared. declareComponent will therefore create another
StructureType, whose Declaration is "module::NotFound". The two StructureType
having nearly the same name but one having a declaration and not the other will
fight to death and cause random crashes.

This patch also modifies declareComponentSubclass so that special components
(components, modules, signals, ...) see their parent modules and can therefore
use their declarations. This allows "void foo(QtQuick::QModelIndex)" to be
properly recognized.

Denis Steckelmacher committed changes in [kdev-qmljs] /:

Ensure that the last declaration of ExpressionVisitor is cleared if no pertinent declaration has been found

For instance, when the declaration of an object member cannot be found, ensure
that ExpressionVisitor will return nothing, and not the declaration of the object.

"foo" in "" is not an use of "object" if "foo" does not exist in "object".

Diffs: 1, 2, 3 Revision 5ae3d56...


Gilles Caulier committed changes in [digikam] /:

With 4.0.0 release, blur filter algorithm have been changed, and radius argument precision have been dropped due to use an interger value intead a float value.
This commit fix this wrong cast to take a acre about radius precision with UnsharpMask filter

FIXED-IN: 4.1.0

KDE Base

Martin Gräßlin committed changes in [kconfig] /:

Fix locale-aware reading in KDesktopFile

The underlying KConfig used QLocale::name() for getting the locale
aware part. But this returns "de_DE" while the desktop files store

In addition it constructs a QLocale object instead of using the
system locale. This has the advantage that the usage of
QLocale::setDafault() gets honored by KConfig.

REVIEW: 118564

Diffs: 1, 2, 3, 4, 5 Revision 988f09b...
Dominik Haumann committed changes in [kate] part/syntax/data/prolog.xml:

fix: Prolog highlighting marks Swi-Prolog 7.x new dict syntax as warning

Thanks to Raivo Laanemets for the patch!

Matthew John Dawson committed changes in [kcoreaddons] /:

Fix KDirWatch to act more reliably against various backends.

- When KDirWatch used a FAM backend, it wouldn't actually wait for the
necessary watches to be put in place before returning, allowing for a race
where an application may think a watch is in place when it really isn't.
This was easily seen using gamin and running the testDeleteAndRecreateFile
test. Fix by delaying useFAM until the watch is in place by waiting until
the EndExist FAM event is received. This adds ~100-200ms per watch with
- When a file is deleted and recreated, and scanEntry detects it, the dirty
signal would be emitted. Fix to emit a deleted + created signal, as expected.
- When a deleted signal was requested, other signals were dropped. Due to
the above point, this would stop the created signal from being emitted. Now,
all signals are emitted, even when a delete is detected.
- When watching recreated files, the created signal could get lost as there
was a race between when the created signal would be generated and its signal
spy would be created. Fix by making sure the spy is created before the signal
could be emitted.
- Make sure the created signal isn't emitted twice with both FAM and the
polling timer. This occurs as FAM doesn't fix up the fact the entry has been
created, and the poller thus assumes it needs to notify the world. Fix by
having FAM not emit the event in this case.

REVIEW: 118458

Luca Beltrame committed changes in [plasma-desktop] kcms/formats/kcmformats.cpp:

Formats KCM: Use QLocale::name() when writing to the configuration file

Currently the Formats KCM writes its configuration file using the
selected locale's bcp47Name(). This breaks locale loading as locales are in
the form "foo_FOO" (e.g., "it_IT" for my own locale) and instead the Formats
KCM exports LANG as "foo" (e.g. "it").

This causes a bunch of runtime warnings and locales don't get actually

This is just part of the job: more work is needed for encoding and
script handling (see TODO in the comment).

Reviewed-by: Sebastian Kugler, John Layt, Lukas Tinkl

REVIEW: 118584

Frank Reininghaus committed changes in [kde-baseapps] lib/konq/konq_operations.cpp:

Do not crash if QApplication::clipboard()->mimeData() is a null pointer

According to a recent bug report, this can happen on Wayland. The root
cause of the problem might be a problem in Qt's Wayland support itself,
but this patch at least prevents that Dolphin and other applications
which check the clipboard state to determine the text of the paste
action crash on startup.

REVIEW: 118450

Aleix Pol Gonzalez committed changes in [plasma-workspace] /:

Port libtaskmanager away from QDesktopWidget

plasmoid.screen doesn't map to QDesktopWidget indexes anymore, therefore we
need to port it.
This patch uses the screen geometry to figure out what's the screen and then
passes around the screen rect so that we can filter out the screens that aren't
inside if the user asks for it.

REVIEW: 118548

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 1f5225d...
Frank Reininghaus committed changes in [kde-baseapps/KDE/4.13] /src:

Fix possible crash if a kioslave adds multiple items with the same URL

When opening the URL "man:", there are multiple items with the same
name (for example, _exit is shown twice here). When opening a new tab,
the kioslave reports some items as deleted (I have not quite understood
why). The problem is that it reports some of the duplicate items twice
in the list of deleted items. This confused KFileItemModel and
corrupted the internal data structures, and finally, caused a crash.

The fix is to remove all duplicates from
KItemRangeList::fromSortedContainer(const Container& container).

New unit tests included.

REVIEW: 118507
FIXED-IN: 4.13.2

Martin Gräßlin committed changes in [plasma-desktop] /:

[kcms] I18n fixes

* use ki18n_wrap_ui

This makes the KCMs load their own translations at least. There are
still quite some issues for code coming from libraries, so that needs
more investigation.

KCM for keyboard and font install are not yet fixed as they need a more
complex fixing.

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


Dan Vratil committed changes in [kdepim-runtime/KDE/4.13] resources/google/common/googleresource.cpp:

Always restart a job that has failed due to invalid Google OAuth token

Once we refresh the tokens, we must restart the job, because otherwise
the Resource task won't be finished and ResourceScheduler will get
stuck forever.

FIXED-IN: 4.13.2

Christian Mollekopf committed changes in [kdepim-runtime] /imap:

IMAP-Resource: Fixed detecting removed messages and clearing of empty folders.

The hack for local items that have not yet been uploaded doesn't work as
it keeps us from detecting remotely removed messages.

In the case of messageCount == 0 we need to ensure m_incremental is false,
otherwise we call both itemsRetrieved and itemsRetrievedIncremental.


Wojciech Kosowicz committed changes in [calligra] kexi/widget/KexiDataSourceComboBox.cpp:

Change of addItem to insertItem in KexiDataSourceComboBox slot

In slotNewItemStored of KexiDataSourceComboBox there was called addItem
method that adds to the end of combobox. Method insertItem should be
called instead so that items are in correct order

FIXED-IN: 2.8.4
REVIEW: 118485

Boudewijn Rempt committed changes in [calligra] krita/ui/widgets/kis_floating_message.cpp:

Floating message block input under Gnome.

Using Tooltip instead of Tool seems to fix that.

Jarosław Staniek committed changes in [calligra] libs/db/expression.cpp:

Fix crash when accessing a query with duplicated table names

Example query that crashed: SELECT FROM t, t.
Now error message is displayed so user can fix the statement.


Networking Tools

Marco Martin committed changes in [plasma-nm] applet/metadata.desktop:

load applet only when networkmanager is running

This makes the networkmanagement applet load automatically when the dbus service org.freedesktop.NetworkManager is present and unloads it when it's not.
In a normal setup shouldn't make much difference, but would automatically disable it for workstations when a fixed ip or dhcp over ethernet is used instead of networkmanager


Albert Vaca Cintora committed changes in [kdeconnect-kde] kded/plugins/pausemusic/pausemusicplugin.cpp:

PauseMusicPlugin now stops music when it can't pause (ie: streams)

User Interface

Martin Gräßlin committed changes in [kwin] /:

Improve updating user timestamp

Use the timestamp from the xcb event which triggers the update whenever
possible. If we don't have access to the latest event, let's at least
update our own xTime prior to using it.

Slightly unrelated change included: Group switches the userTime from
XLib datatype to xcb datatype.

REVIEW: 118456


Vishesh Handa committed changes in [milou/frameworks] lib/sourcesmodel.cpp:

The RunnerManager repeats the same results

It gives the results via a changed signal which contains ALL the
results, not just the new ones. This is why we were seeing a number of
duplicate entries in the list.

Right now, instead of checking each item against the entire list and
only updating the duplicates, we reset the entire model. It's simpler
this way (for now).



Ashish Madeti committed changes in [simon/mpris-plugin] /Commands/MprisPlayer:

Completed MprisPlayer plug-in

REVIEW: 118311

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

Development Tools

Denis Steckelmacher committed changes in [kdev-qmljs] /:

Support for object literals ("var a = {key1: value1, key2: value2}")

REVIEW: 118493

Diffs: 1, 2, 3, 4, 5 Revision 3a94f01...
Denis Steckelmacher committed changes in [kdev-qmljs] /:

Support QML property aliases

Denis Steckelmacher committed changes in [kdev-qmljs] /:

Recognize QML slots and register them as uses of their corresponding signal

REVIEW: 118596

Diffs: 1, 2, 3, 4, 5 Revision 7360306...
Aleix Pol Gonzalez committed changes in [kdevelop] projectmanagers/cmake/testing/ctestrunjob.cpp:

Added a customized title to the test output tab.

This patch adds a customized title to the test output tab pane informing about
the name of the suitcase and case running or, in the case of more than one test
case, about the name of the suitcase and the number of cases running.

REVIEW: 118589

Kevin Funk committed changes in [kdevplatform] /:

Move assistant infrastructure to kdevplatform

Noteworthy changes:
* StaticCodeAssistant (from CPP plugin) is now StaticAssistantsManager,
now lives in kdevplatform, so all languages can benefit from it
* RenameAssistant was moved to kdevplatform, as it it useful for all
* BasicRefactoring now has new virtual methods that control the behavior
for renaming actions
LanguageSupport got a new property: refactoring (so languages can expose
their custom BaseRefactoring implementation)

New API:
* New base class for "static" assistants: StaticAssistant
Static assistants exist during the whole session
They are notified when documents change and create solutions based on
that. Current implementations: AdaptDefinitionSignatureAssistant (CPP
language) and RenameAssistant (kdevplatform)
* New manager class: StaticAssistantsManager:
Tracks the StaticAssistant instances, takes care of notifying them
about changes in the editors. Single entry point for registering
Entry-point: LanguageController::staticAssistantsManager

REVIEW: 118542

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision a0b1219...
Denis Steckelmacher committed changes in [kdev-qmljs] /:

Support field member expressions in code-completion

REVIEW: 118465

Diffs: 1, 2, 3 Revision acd20fa...
Aleix Pol Gonzalez committed changes in [kdevplatform] /:

Adds status icon to to indicate that a test is running

A new 'on-progress' state and icon have been added to the testview to
indicate that a test is running.

REVIEW: 118420

Diffs: 1, 2, 3, 4, 5 Revision cdd361d...


Dennis Nienhüser committed changes in [marble] /:

Polygon moving, node deletion and adding polygon holes

REVIEW: 118405

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision 1773700...
Dennis Nienhüser committed changes in [marble] /:

Marble input handling refactoring, event handling in MarbleQuickItem

- Mouse, touch and pinch input handling for MarbleQuickItem (keyboard
was enabled earlier)

Other changes:
- Refactored input handling to reuse code, broke into smaller pieces
- Extended the example (marbleQuick2)

Known issues:
- Some refactoring still should be done around input classes
- Inertial rotation is disabled by default in MarbleQuickItem because
of some issues (mostly touch-related). However, issues are rather
minor so feel free to enable it back.

REVIEW: 118495

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


Steve Allewell committed changes in [kxstitch] /:

Added config dialog options for default stitch and backstitch strands

The configuration file has options for the default number of strands for
stitches and backstitches, but the configuration dialog had no options
for changing the values used. Two combo boxes have been added to the
palette configuration to allow setting this value in the configuration

GUI: Two new strings have been added in PaletteConfigPage.ui

KDE Base

Laurent Montel committed changes in [ktextwidgets] /:

Add KPluralHandlingSpinbox to allow to add plural i18n when we port KIntSpinBox

Review and ok'ed by David.
Use it just when we need to add suffix with plural otherwise use QSpinBox

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 8891bb7...
Martin Gräßlin committed changes in [kdeclarative] /kdeclarative:

Provide i18nd wrappers in kdeclarative

As QML might combine multiple modules with different cataloges we need
to be able to specify the translation domain explicitly. If there is a
need to use a specific domain for all i18n calls (e.g. in a library
using QML) there is the possibility to set a global translation domain
through KDeclarative. If such a domain is set all i18n calls delegate
to the i18nd variant.

Due to the nature of KDeclarative we cannot mix i18n calls with
different domains. If two modules would require to set the translation
domain it's bound to fail. Thus the recommendation is to use the i18nd
variants in any QML code which is intended to be used as an import.

REVIEW: 118526

Diffs: 1, 2, 3, 4, 5 Revision 90c9c65...
Martin Klapetek committed changes in [plasma-workspace] applets/calendar/contents/ui/main.qml:

[calendar]Add time dataengine to calendar applet

To have properly updated date

Martin Klapetek committed changes in [kiconthemes] /:

Allow passing custom theme base path together with custom app themes

KIconTheme in kdelibs4 was searching
KGlobal::dirs()->resourceDirs("data") to find all icons; the status notifier dataengine was then setting custom resourceDirs(..) with custom SNI theme paths (which the SNIs can pass) and so the SNI icons always ended up in the theme search paths (the SNI icons are stored as a whole theme).

With the port to QStandardPaths, we lost the ability to pass custom dirs
into the theme search paths and that results in status notifier icons in
Plasma Next having "unknown" icons as their icon theme paths are not
searched and so icons are not found. This is the case mostly of the Qt4
apps running on Qt with the QSystrayIcon-to-SNI-patches (case of *buntu
and I heard opensuse too?)

KIconLoader however has "addAppDir(..)" method, so I expanded that
method to actually take an "app dir" and add it to the theme search
paths. Plasma Next now have proper icons in the systray.

REVIEW: 118561

Diffs: 1, 2, 3, 4 Revision f23fb35...
Vishesh Handa committed changes in [baloo/frameworks] /xapian:

Add a dedicated TermGenerator class

For now this class is just a wrapper over the Xapian class, but in the
future we will implement our own term generator.

Also, added a simple unit test to test the basic features of the term

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 000cdcc...
Martin Gräßlin committed changes in [kinfocenter] Modules/CMakeLists.txt:

Improve feature info for OpenGL(ES) detection

* print feature info for GL only if Qt is compiled against GL
* print feature info for GLES only if Qt is compiled against GLES
* add a feature info for GLU which is found by the OpenGL find package
but is also a required dependency for OpenGL support

Aleix Pol Gonzalez committed changes in [solid] /solid/devices:

Add timeToFull/timeToEmpty, recall notice and FullyCharged to Solid::Battery

This adds the following functionality to Solid::Battery:

- timeToFull and timeToEmpty (at the moment provided by PowerDevil but for all batteries combined, this patch does it individually for each)
- rename isPlugged to isPresent (as plugged always confused me - it has nothing to do with whether AC is plugged in but if the battery is "present in its bay", it's also the name of the UPower iface)
- FullyCharged battery state, we cannot rely on the battery being 100%, and since the info is provided by UPower (not on HAL), why not use it
- RecallVendor/RecallUrl when a battery has been recalled by the vendor, currently provided/handled by PowerDevil
- Serial number of the battery

Sorry for the hard to read patch but I also re-ordered some methods to have the order in all implementations and headers the same.

REVIEW: 117339

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision bb2374e...
Aleix Pol Gonzalez committed changes in [plasma-workspace] /:

Implement a lock screen based on Andrew Lake mockups

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


Sandro Knauß committed changes in [kdepimlibs/KDE/4.13] kldap/ldapconfigwidget.cpp:

Use credentials in the "Edit Host" window to query LDAP Server.

If the server needs authentification to connect, the "Query Server"
to get the namingcontexts should use the credentials.

FIXED-IN: 4.13.2


Ralf Habacker committed changes in [umbrello] /:

Add code viewer for log window, which helps to find include path problems and parser errors.


Diffs: 1, 2, 3 Revision 44e3c0a...
Dmitry Kazakov committed changes in [calligra] /:

[FEATURE] Added a Scalable Distance option to Weighted Smoothing

Now if you activate "Scalable Distance" option for a brush tool,
the distance will be corrected to your current zoom level. It means
that your stylus will be "stabilized" the same way at any zoom level
you choose.

Friedrich W. H. Kossebau committed changes in [calligra] /:

Also support DOC and DOCX formats with the ODT Okular generator plugin

DIGEST: Calligra-powered Okular generator for DOC/DOCX, based on the one for ODT

REVIEW: 118541

Thanks sven for review

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision e4d6c50...
Dmitry Kazakov committed changes in [calligra] /plugins/tools/tool_transform2:

[FEATURE] Make the grabbing area for Transform Tool handles twice lager than the handles themselves

Alvaro Soliverez committed changes in [kmymoney] /:

Added method to MyMoneyFile to calculate cleared balance

Diffs: 1, 2, 3, 4, 5 Revision 6307b30...
Boudewijn Rempt committed changes in [calligra] /:

Updates for the clone tool

The clone tool can now clone from the projection and it's possible
to change the clone source layer. Press ctrl-alt-click to select a
new clone source on the current layer. ctrl-click to select a new clone
source point on the layer that was active when you selected the clone

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 13 more) Revision bc738af...
Stuart Dickson committed changes in [calligra/krita-steam-ko] /:

steam: save to cloud dialog
Initial work on the Save-to-cloud dialog
Needs image provider and additional logic

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

Networking Tools

Andrea Scarpino committed changes in [choqok] /:

Add option to disable system tray


Pali Rohár committed changes in [kopete] /jabber/googletalk:

Add support for specifing server host & port in GoogleTalk class

This patch allows to use GoogleTalk class (voice support) for other non Google jabber accounts

David Edmundson committed changes in [ktp-call-ui] /:

System tray Icon for KTp-call-UI

REVIEW: 118358

Diffs: 1, 2, 3, 4, 5, 6 Revision fab9ef1...
Pali Rohár committed changes in [kopete] /jabber:

Add support for jabber audio calls via libjingle for all jabber accounts

Current version of libjingle library included in kopete tree supports both
google libjingle and real jingle protocol. It also supports connecting to
other (non google's) jabber servers (via special --s flag), but does not
support SRV dns lookups of jabber host name.

This patch enabling libjingle audio call support for all jabber accounts
(not only google) and adding code for xmpp-client SRV lookup which is
needed by external libjingle call application.

Diffs: 1, 2, 3, 4 Revision 62f29c3...
Emmanuel Lepage Vallee committed changes in [sflphone-kde/contact_refactor] /:

[ #49034 ] Refactor the video configuration code to be safer (1/3)

This commit implement the new daemon video getcapabilities() to load
the whole device configuration when using the video module for the
first time. This prevent the back and forth between the various
layers of both the client and the daemon. Those, created a feedback
loop that could crash the daemon or corrupt the Qt models.

While it will take a while to get to a stable point again, this
code is much more robust than the previous implementation.

The next few commits will replace the last bits of the old code
path by the new one.

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

User Interface

Martin Gräßlin committed changes in [kwin] /:

allow FS mapping of geometry restricted windows

and copy isSpecialWindow() check as rulebook input
to setFullscreen()

Client::isFullScreenable() checks:
* fullscreen rule
* fullscreen_hack (-> for normal windows)
* geometry restrictions
* special window

Client::manage() for fullscreeining checks:
* fullscreen rule (with correct "initial" parameter)
* fullscreen_hack

-> this breaks the fullscreen rule for geometry restricted windows
and causes inconsistent behavior between client requests at runtime
(which do not test ::isFullScreenable()) and on mapping.

Otoh, the specialWindow() protection should apply generally - those
kind of windows should not be fullscreened since the user can not
exit this state via kwin for them - and there's hardly a good reason
for them to be fullscreen, esp. not to enter that state at runtime

REVIEW: 118442

Cherry-picked from kde-workspace

Martin Gräßlin committed changes in [kwin] /:

[scripting] Support loading translations for UI loaded configs

Scripts and scripted effects can provide a ui file which gets loaded at
runtime. Obviously such a ui file is not translated. This introduces
quite a hack to load the translated strings.

In the metadata.desktop file the scripted component can provide a key
X-KWin-Config-TranslationDomain. The genericscriptedconfig tries to
locate the metadata.desktop file and reads this entry. If it is present
we extract all string properties of the loaded UI and pass them through

REVIEW: 118585

Diffs: 1, 2, 3, 4, 5 Revision 0c4aaaf...


Sebastian Kügler committed changes in [kxmlgui] src/kkeysequencewidget.cpp:

Consider Super_L and Super_R as modifiers

Without this patch, I can't use the meta key to assign shortcuts, as
Super_L and Super_R are not considered as modifiers, so when I press
meta (Super_L on my system), the shortcut is immediately accepted,
before I get the chance to press another key.

This patch requires the fix in
to be applied. With both patches, KKeySequenceWidget works for me.



Development Tools

Milian Wolff committed changes in [kdevelop] /manpage:

Greatly optimize the ManPageModel.

Instead of loading huge HTML files for the individual sections, we
simply use KIO::listDir and use its results.

Sadly, we cannot do the same for the top-most page as a listDir
on man:// returns not only the folders but also all entries...

Milian Wolff committed changes in [kdevplatform] /:

Optimize and cleanup the plugin controller architecture.

We repeatedly queried for plugins using the KServiceTypeTrader API.
This is quite costly, esp. the amount of allocations it triggers is
huge. Also, we cached the useful results of that already, so why
not make use of that, no?

This patch does this. We only query for KDevelop plugins once and
then operate on that list. The API is cleaned up and duplicate
code removed while at it.

Constraints are now given as a QVariantMap instead of using the
trader language and the IPluginController static functions become
pure virtual.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 4ce4f73...
Milian Wolff committed changes in [kdevelop] /manpage:

Optimize ManPage plugin's parsing of section contents.

To find a page, we only need the identifier and the section ID.
That is enough to construct the KUrl on demand - no need to keep
thousands of them in memory.

Diffs: 1, 2, 3, 4, 5 Revision 7ad637b...

KDE Base

Milian Wolff committed changes in [kdelibs] /config:

Optimize KConfigIniBackend::parseConfig by reducing allocations.

Yet another awesome application of the Qt implicit sharing trick.
Since config files often contain only few different keys and even
value strings, we can share them. This reduces memory consumption
and also speeds up parsing, as we do not have to allocate the
duplicated strings, but can simply reuse the previous values.

The most extreme case for this of my knowledge, is KatePart:
katesyntaxhighlightingrc has more then 20k lines which triggered
nearly 30k allocations on startup. With this patch applied, this
value goes down dramatically. I added a simple static counter for
the cache hit/miss ratio, which resulted in 5442 cache misses compared
to 43624 cache hits across all KConfig files parsed by kwrite.

REVIEW: 118587

Diffs: 1, 2, 3 Revision b8aaeff...
Frank Reininghaus committed changes in [kde-baseapps] /src/kitemviews:

Separate width and height info in the layouting code

By separating the width and height info, we can save some unnecessary
overhead in terms of memory and CPU cycles, and make the calculation of
the height of a row (or the width of a column in Compact View) a bit

To achieve this, this patch extends the concept of "logical rows"
(which are actually columns in Compact View) to "logical width" and
"logical height" (which is the actual height and width, respectively, in
Compact View). The distinction between rows/columns and "logical"
rows/columns may be a bit confusing, but the confusion is already in the
current code, and I hope that it will be mitigated a bit by prefixing
the corresponding variables with "logical".

REVIEW: 118454

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


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

Speed up opening the folder properties dialog in kmail.

An IMAP mail check schedules a large number of tasks.
Tasks that the user is waiting for, such as ItemFetch (reading one mail)
or SyncCollectionAttributes (as called by the folder properties dialog)
should have priority over that.

There might be more types of tasks that the user could potentially be waiting for.
Maybe we could even blacklist instead of whitelist, i.e. put folder-sync tasks
in a low-prio queue, while the default queue would be above it. Not sure.

REVIEW: 118602


Dmitry Kazakov committed changes in [calligra/krita-testing-kazakov] /ui/canvas:

Limit Pseudo Infinite canvas feature not to create too huge images

The changes:

1) The expansion is now limited by 100%. This is actually quite
easy way to double the dimension of the image: zoom out, move
to one side, press the button and one dimension of the image
is doubled!

2) If you press only on one side panel, then the image will be expanded
into exactly *one* direction. This allows you to expand an image in
a single dimension only.

3) If you press in the corner of the canvas (that is on two panels at
once), the image will be expanded in two corresponding dimensions.



Aleix Pol Gonzalez committed changes in [step/frameworks] /:

Initial port for step to Qt5/KF5

Everything builds and runs after porting to KF5

REVIEW: 118349

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 13 more) Revision 5721f3d...
Avik Pal committed changes in [artikulate/gstreamer-1.0-port] /:

Ported to GStreamer 1.0

Artikulate has been ported to QtGstreamer 1.0 and it no longer supports QtMobility.

Diffs: 1, 2, 3 Revision 0723b8d...

KDE Base

Aleix Pol Gonzalez committed changes in [plasma-workspace] /screenlocker/greeter:

Implement a new strategy to get a fallback theme

It's pretty bad if the lockscreen greeter can't find the lookandfeel's
lock screen, so introduce a qrc file with a default simple lock screen that
we can fallback to.

Diffs: 1, 2, 3, 4 Revision 5a118aa...


Laurent Montel committed changes in [kdepimlibs] /:

Start to merge vcard4 support

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

User Interface

Martin Gräßlin committed changes in [kwin] /kwincompositing:

[kcmkwin/compositing] Show warning message when selecting "dangerous" options

The idea is to warn the user that changing the settings might break
the setup when we know it could be dangerous. The following cases are
* Scale filter Accurate
* Tearing prevention
* keep window thumbnail always
* EGL if EGL and GLX are available
* unredirect fullscreen not working on all hardware

In addition the OpenGL is Unsafe warning is turned int a KMessageWidget
which is also used for all the other warnings.

REVIEW: 118494

Diffs: 1, 2, 3, 4 Revision 58668e5...
Ivan Čukić committed changes in [kwin] /:

KWin activities usage ported to the new library paradigm

Since the KActivities library now keeps an internal cache (and is
non-blocking), there is no point in thread-based information

REVIEW: 118443