Issue 291

9th June 2013 by KDE Commit-Digest Team


Marta Rybczynska

This Week...

In Calligra, the tag categories the user can define for various resources will update for any resource of the same type; in Krita, Pixel Selection can be converted into a Vector Selection. KDevelop makes it possible to pull includes and defines from the CMake targets. Battery applet animates the battery icon when charge is below 5%; batteries are sorted by name. Plasma Media Center sees much work on youtube videos. KGet merges work from GSoC 2012 on Metalink HTTP Headers. KGPG sorts keys by domain name of email address. Optimized calendar handling in KDE-PIM, file indexing in Nepomuk, gradients in Calligra, and Analyzer drawing in Amarok.


Commits 1724 by 159 developers
Open Bugs 21174
Open Wishes 15841
Bugs Opened 284 in the last 7 days
Bugs Closed 486 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Aaron J. Seigo
Pali Rohár
Albert Astals Cid
Patrick Spendrin
Vishesh Handa
Alex Fiestas
Burkhard Lück
Jean-Baptiste Mardelle
Sébastien Renard

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Martin Gräßlin
David Edmundson
Dawit Alemayehu
Jekyll Wu
Pali Rohár
Dan Vratil
Kai Uwe Broulik
Thomas Lübking
Hrvoje Senjan
Laurent Montel

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   





KDE Base

[] [] []   []


[] [] []   []


[] [] []   




  [] []   

Networking Tools

[] [] []   

User Interface








There are 69 selections this week

Bug Fixes

Development Tools

Ralf Habacker committed changes in [umbrello/KDE/4.10] umbrello/dialogs/selectopdlg.cpp:

Reenable including of inherited methods on adding messages to sequence diagram.

Andreas Pakulat committed changes in [kdevelop] utils/okteta/oktetadocument.cpp:

Fix builds for okteta in a separate prefix

The find-module already sets up the includedir to be
<prefix>/include/kasten2/okteta1 etc. so using the relative path here as
well breaks builds where okteta is installed in its own prefix and hence
there's no -I<prefix>/include on the compiler commandline.

KDE Base

Kai Uwe Broulik committed changes in [kde-workspace] plasma/generic/applets/batterymonitor/contents/ui/CompactRepresentation.qml:

Also set minimum size when it *is* constrained

FIXED-IN: 4.11.0

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

KConfig: fix long-standing bug where translations would not be loaded.

This happened in the following situation:
* KDEDIRS with two prefixes (let's call them global and middle)
* a kconfig file with the same name in both (e.g. a .desktop file)
* same value for Name[locale]= in both
* no override in the local directory (KDEHOME)

The Name= value in the "middle" desktop file would delete the
currently-loaded translated name, but didn't do so fully (it failed
to delete the one with bDefault==true, due to the line
"k.bDefault = false" a few lines before, which wasn't meant to
affect this). So when reading the Name[locale] in the "middle"
desktop file afterwards, it said "ok I already have it, do nothing",
and the english name prevailed.
The complexity comes from the fact that in such a setup, every key
is present twice, once with bDefault=false and once with bDefault=true.
(and then double that, for localized and non-localized).

After making bDefault=false operate on a copy of the key, a bug was
uncovered in the if (bDefault) block that was never executed before:
it should remove the key with bDefault==true, since it already did
that for bDefault==false (the 4th argument of the KEntryKey ctor).

Anyway, there's a unittest, so even if nobody ever understands my
ramblings above, at least it won't regress again.

REVIEW: 110865

Diffs: 1, 2, 3 Revision 9ac662e...
Simeon Bird committed changes in [nepomuk-core] libnepomukcore/resource/resource.cpp:

Resource: Null guards for m_data

It is possible, during shutdown, for m_data to be null briefly (see
ResourceManager::cleanupResources). If a property were accessed
during this time, we could crash.

The patch checks whether m_data is null in various functions, and
returns empty items if so.

REVIEW: 110877

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

FileIndexer: Do not attempt to index files multiple times

If a file indexing job fails, set kext::indexingLevel to -1, so
that the next time the file queue fills, it is omitted.
This means we don't burn CPU trying to index things multiple times.

Almost all of the patch is actually moving updateIndexingLevel from
indexer/indexer.cpp to utils.cpp, and updating the build system to

REVIEW: 110794

Diffs: 1, 2, 3, 4, 5 Revision c441198...
Heena Mahour committed changes in [kde-workspace/heenamahour/window-list] powerdevil/daemon/powerdevilpolicyagent.cpp:

Don't access QDBusPendingReply value if it is not valid.

REVIEW: 110746

FIXED-IN: 4.10.5

David Faure committed changes in [kdelibs/KDE/4.10] kfile/kfilewidget.cpp:

Fix misuse of KUrl::relativeUrl, which returns relative urls (duh).

Not paths. So this was leading to double-escaping, especially after fixing
KUrl::relativeUrl to actually escape as it's supposed to do.

FIXED-IN: 4.10.5

Kai Uwe Broulik committed changes in [kde-workspace] plasma/generic/applets/batterymonitor/contents/ui/BatteryItem.qml:

It seems UPower sets the "Is Present" property to false for newly added devices that have
not yet been probed. This is a contradiction to the specs that say this property is invalid
for non-primary batteries (such as mice).
Now also taking that into account for non-power-supply-batteries. Have to see if that causes
regressions for other devices. At least my Trackball works better now ;)

Thomas Lübking committed changes in [kde-workspace] kwin/shadow.cpp:

rebuild quads when removing shadows for empty prop

FIXED-IN: 4.11
REVIEW: 110871

Martin Gräßlin committed changes in [kde-runtime] plasma/declarativeimports/core/dialog.cpp:

Do not try to raise a Plasma::Dialog which is a dock window

For a dock window the raise does not make much sense. A window manager
raises it anyway above most windows to get it into the dock layer. But
the raise can cause quite some side effects. KWin is setting demands
attention state in that case resulting in e.g. the notification window
having demands attention set. This conflicts with the general demands
attention handling like for example a chat window demanding attention and
emitting a notification at the same time.

REVIEW: 110864

Kai Uwe Broulik committed changes in [kde-workspace] plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml:
Xuetian Weng committed changes in [kde-baseapps] dolphin/src/views/dolphinview.cpp:

move focus to another view upon drop

When user drag and drop to another splitted view, the view will be activated,
thus if user close the split view, the view will be closed, while this is
usually the case when user copy file to remote/removable media.

REVIEW: 110167

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

Ignore a changed item if it cannot be found in the model

This prevents repeated attempts to reload the data for the non-existing
item. This was the root cause of bug 320791.

Thanks to Hrvoje Senjan and Jekyll Wu for testing the new code and
finding this bug!

Michael Pyne committed changes in [konsole] src/MainWindow.cpp:

Fix crash by not assuming standard shortcuts are present.

Neither of the two standard shortcuts used here are *guaranteed* to be
present (kdelibs filters both with some KAuthorized magic, and
help_contents also depends on the documentation subsystem), so avoid
crashing just because they're not around.

First noticed on my Gentoo-provided Konsole which is compiled without
the handbook USE flag.
(cherry picked from commit 8950584966bb77b19f77f64116c1f624c89f5236)


Laurent Montel committed changes in [kdepim] /autocorrection:

Fix Bug 320074 - KMail uses a wrong autocorrection filename

FIXED-IN: 4.11

Allen Winter committed changes in [kdepim] /:

catch a closeEvent in the IncidenceDialog, detect ifDirty and allow
the user a chance to continue without cancelling.

FIXED-IN: 4.11
REVIEW: 110900

Sergio Luis Martins committed changes in [kdepimlibs] akonadi/calendar/etmcalendar.cpp:

The hash is indexed by instanceIdentifier, not uid now.

Fixes crash introduced by the recurrence-id stuff, everything should
be indexed by uid+recurrence_id

Aurélien Gâteau committed changes in [kdepimlibs] kpimtextedit/emailquotehighlighter.cpp:

Fix highlighting of spelling mistakes

REVIEW: 110829
FIXED-IN: 4.11.0

Laurent Montel committed changes in [kdepim] kmail/kmreaderwin.cpp:

Fix Bug 320862 - Import of mail address into addressbook: Capitals

turned into small letters

FIXED-IN: 4.11

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

Do not destroy the address book instance when updating settings

The previous code was leaking the abook instance every time we saved the
settings, which is wrong. Adding this to the setupModels()/nukeModels() is wrong
because that would break the existing contact windows.

REVIEW: 110830

Dan Vratil committed changes in [akonadi] /:

Don't compress ModifyFlags into Modify operations

In a situation that ModifyFlags was emitted right after
Modify operation (for the same items), the ModifyFlags
operation was merged into the Modify operation, and thus
effectively lost, because addedFlags and removedFlags
fields are ignored in Modify operation.

Fixes a bug that caused emails that were marked as read (usually
during sync) to revert to unread state after next sync.

Diffs: 1, 2, 3 Revision d7c74a9...
Laurent Montel committed changes in [kdepimlibs] /:

Fix Bug 319220 - Drag-n-Drop addresses removes name capitalization

FIXED-IN: 4.11

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

XtConnect - Use QDateTime consistently as UTC

Modify SQL to use ISO date string to specify that the time is UTC.

REVIEW: 110846

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

Fix skype protocol code which was incorrectly ported to KDE4

* Fix some missing calls to trimmed() string function
* Fix incorrect handling of duplicate skype messages

* This is propably root problem of bug 271277

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

cache: Remove mailboxes when they are, well, removed

Thanks to Caspar for the initial troubleshooting -- I've known about this bug
for several months, but haven't bothered to fix it properly. His analysis
pinpointed the root cause of the problem and made it easy to fix this.

REVIEW: 110896


Thomas Baumgart committed changes in [kmymoney] kmymoney/widgets/kmymoneydateinput.cpp:

Don't mess up date input display format

Using any meta-character other than day, month or year in the KDE global
short date format setting screwed up the KMyMoney date input fields.

E.g. "%a, %d.%m.%y" caused the 'a' to be taken as separator where it
should have been the dot.

Łukasz Maszczyński committed changes in [kmymoney] /views:

fixed disabled "Update" button after suggesting a new default category

The "Update" button remained disabled when a payee had already a default
category assigned and it was changed by clicking "Suggest a new
category" button.

Ian Neal committed changes in [kmymoney] kmymoney/dialogs/settings/ksettingsschedules.cpp:

Bug 317682 - Non-processing days no longer work for certain regions
This patch:
* Makes use of new HolidayRegion API, for KDE 4.5.0+, to generate list of regions with languages for holiday region selector in schedule settings pane.

Networking Tools

Andrea Diamantini committed changes in [rekonq] src/webtab/webtab.cpp:

Remember to save zoom settings on change

Andrea Diamantini committed changes in [rekonq] /:


Development Tools

Aleix Pol Gonzalez committed changes in [kdevelop] /cmake:

Make it possible to pull includes and defines from the targets

To do this we need to forward the properties tuple all around the project
processing. This is important because it's a fairly new feature that was
introduced and was breaking for some projects, especially KF5 which should
be much more usable from now on.

Diffs: 1, 2, 3, 4, 5, 6 Revision d51dd2a...


Andreas Cord-Landwehr committed changes in [artikulate] /:

Add edit state information to courses.

This commit introduces two new optional values for phrases:

the English text string that is defined in the course skeleton (if
present); this string will be used to notice changes in the skeleton
phrase wordings and possibly can used in the future for localization

this state reports whether the state of a phrase is "unknown",
the string is at least "translated" or if it is "completed" (including
phoneme tagging and recording)

These information can be omitted when distributing courses.

Diffs: 1, 2, 3, 4 Revision 7493da7...

KDE Base

Kai Uwe Broulik committed changes in [kde-workspace] plasma/generic/applets/batterymonitor/contents/ui/batterymonitor.qml:

Sort batteries alphabetically and by power supply.
Power supply batteries come first, peripheral batteries come after.

Kai Uwe Broulik committed changes in [kde-workspace] plasma/generic/applets/batterymonitor/contents/ui/BatteryIcon.qml:

Animate battery icon when battery percentage is below 5%.
It's a subtle nice animation similar to the charging animation in the popup.
Imho the battery almost empty state is not really alerting as it's just a plain
white rectangle. This nice animation makes the user more aware that he should
really plug in his battery or he'll lose unsaved stuff.

Kai Uwe Broulik committed changes in [kde-workspace] /generic/applets/batterymonitor/contents:

Keep plasmoid Active when PM is disabled, so you don't need to dig in the systray popup to turn it on again.
Usually you turn PM off temporarily when watching a movie or so. When your battery is fully charged, the icon
goes away. So you wonder where your icon went and have to dig in the systray popup to find it.
So it's a nice convenience to have the icon stay active while PM is turned off so you can easily turn it back on again.
And the tooltip now also tells you.

Vishesh Handa committed changes in [nepomuk-core] /:

New Tool - nepomuksearch

This is a debugging tool which I have been using to debug search queries
and see how well virtuoso works. I think it's a good idea to ship this
by default since it will help users figure out if it's a problem with
Nepomuk or the application they are using.

Also, this shows search excerpts which are super useful!

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


Sergio Luis Martins committed changes in [kdepimlibs] /:

Introduce MemoryCalendar::instance(QString identifier).

We didn't have a way, until now, to get an incidence by
instance identifier.

Instance identifier is the string returned by
Incidence::incidenceIdentifier() which is basically uid+recurringId.

If you had both uid and recurringId, you could just call
calendar->incidence(uid,recurringId), but if you had only the
instanceIdentifier, you couldn't.

instance identifier will be the remote id of akonadi items belonging
to ical resource (and others), currently the remote id is only uid
but that doesn't cut it because know we can have duplicated uids,
with different recurring ids.

David Edmundson committed changes in [libkpeople] /:

Group multiple contact fields on the server

Normally a contact with multiple email addresses (for example)
will appear as multiple rows in the query.

Currently our model does not handle this and multiple emails/phones
etc. are missing in the model

By using group_digest we group all values into a single list on the

REVIEW: 110817


Boudewijn Rempt committed changes in [calligra] /:

Merge krita-resource-tagging-erius into master

I tested the functionality and that feels really quite good now.

With this patch, the tag categories the user can define for various
resources will update for any resource chooser of the same type.
Examples: Defining a new tag in the preset popup combobox will also create
the respective tag entry in the preset docker one. If both choosers
would display the same tag category, and the user adds a resource to the
category in one chooser, the view of the other would reflect the change
as well.

Both these things are achieved with a new set of signals and slots
regarding tag category creation and modification.

Other changes: Refactored KoResourceFiltering a bit to make intent more
clear and functionality a bit more fine grained, also fixed the naming
for its private support class members from m_foo to foo since the fields
are all public. Tag categories are now ordered in an alphabetical manner
at all times.


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

Added UI for converting a Pixel Selection into a Vector Selection

Now you can click the menu and your selection will be converted into
a vector one. After this action you can edit it with a shape editing
tooleasily: rotate, scale, edid vertices.

DRAWBACK: you lose information about semi-transparent pixels during
this conversion!

The backward conversion (vector->pixel) happens automatically when you
start painting on a vector selection.

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


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

Creating model VideoDetailsModel to provide data for video selected by user to play in youtube

copying some files from Minitube to retrive realUrl (youtube video downloadable url)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 2d4e9ec...
Jean-Baptiste Mardelle committed changes in [kdenlive] /core/monitor:

GLWidget: show nice overlay for zones / markers

Diffs: 1, 2, 3, 4, 5, 6 Revision 594bb71...
Sinny Kumari committed changes in [plasma-mediacenter] /onlineservices/youtube:

Now, youtube plays the selected video

goOneLevelUp and expand work in youtube

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

Networking Tools

David Narváez committed changes in [kget] /:

Merging work from GSoC 2012 on Metalink HTTP Headers as planned feature for KDE SC 4.11


Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 71b123e...
Andrea Diamantini committed changes in [rekonq] /:

Use webkit general font to render rekonq pages


Jonathan Michael Thomas committed changes in [muon] /:

Add an API for using different tray icons and context menu action icons.
Tray icons can be Plasma theme svgs that can't be used as the icons for context menu actions.
This fixes a missing icon for the software update notification's context menu.


Rolf Eike Beer committed changes in [kgpg] /:

sort keys by domain name of email address



Aaron J. Seigo committed changes in [bodega-server] sql/do_sql:

make the first install run a bit smoother

* record all updates as completed when first installing (make sql)
* nicer output formatting
* run the create/drop commands as the postgres user so the script
can be run without su

Aaron J. Seigo committed changes in [bodega-server] /:

allow setting an adminuser

this way people with 'normal' setups can use postgres, but you can
configure it to use bodega (or just leave away the adminuser altogether
and it will use the same user as used for normal access to the database,
which is backwards compatible)

Aaron J. Seigo committed changes in [bodega-server] /:

store/:id/delete <-- the store name is now passed as part of the URL

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


Development Tools

Aleix Pol Gonzalez committed changes in [kdevelop] /cmake:

Simplify the way we store and fetch include directories

Use the property map instead of having separate variables for these. It will
make it easier to implement some further features and let the code be a
tiny bit more generic.

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

KDE Base

Vishesh Handa committed changes in [nepomuk-core] /fileindexer:

FileIndexer: Disable initial update by default

Do not scan for new files on startup by default. It consumes a lot of
CPU and disk load. The only reason this scan was there was to make sure
all the files are up to date in the event that Nepomuk had been swtiched

Since Nepomuk should always be running, we can safely disable this
initial update.

Frank Reininghaus committed changes in [kde-baseapps] /src/kitemviews:

KFileItemModelRolesUpdater: waste less ressources and fix some bugs

The main change in this commit is that we do not determine expensive
roles (like previews, mime types, etc) for all items, but only for the
visible ones and those close to the visible area or on the first and
the last page of the view.

This prevents that the CPU and hard drive are kept busy for quite some
time after entering a folder while all items are handled asynchronously.

There is one known problem at the moment: when sorting by "Type" or
another role that can be resolved by KFileItemModelRolesUpdater, the
icons of the visible items are sometimes not loaded while the sorting is
still in progress. I will try to fix this issue during the next few

REVIEW: 110839

Aaron J. Seigo committed changes in [kdelibs] plasma/containment.cpp:

improve drop responsiveness ... a bit

QGraphicsView's drop method is a little broken; if you have a drag
and then it drags over another item that does not accept the drop
then your item gets a drag leave and then a drag enter immediately

really, it ought to only get a drag leave if the item the drag
passes over accepts the drag.

this makes proper state handling of drops in the panel where it
wants to only drop (and show a drag indicator) when a widget has not
accepted the drag pretty much impossible to get perfect.

appears some events also still just get dropped on the floor too
so it is possible to leave it in a state where the drag indicator
is shown.

i have l ittle hope of making this better for 4.x. need to confirm
that the drag support in QML scene graph is sane.

Vishesh Handa committed changes in [nepomuk-core] /fileindexer:

IndexScheduler: Slow down the BasicIndexer if we have too many files

When the basic indexer runs on full speed, it consumes a LOT of cpu.
Virtuoso easily reaches about 80% of one core. This might be slightly
annoying to the user, hence we slow it down a little bit once we hit 200
files, and again on 500, 750 and 1000.

This is useful in the case when someone upgrades to 4.11 and their
Nepomuk database is migarted. At that point all of their files will be
reindexed. We do not want to use too much cpu.

Vishesh Handa committed changes in [nepomuk-core] /:

FileIndexer: Do not specify which file is being indexed

One can still request the current file via currentFile. It however does
not make much sense to send it along with the status string.

The user does not need to know about each file that is getting indexed.
Additionally, since we index over 15 files per second, this just leads
to a LOT of dbus traffic.

Diffs: 1, 2, 3, 4, 5 Revision 80a7d4b...


Vishesh Handa committed changes in [kdepim-runtime] agents/nepomukfeeder/nepomukhelpers.cpp:

Nepomuk Feeder: tell the storage service to merge duplicates in the graph

This is a slightly costly operation, but it is required. Lots of emails
seem to often have the same contact in both the from and to. If the
contact doesn't already exist in the database, then 2 copies of it are
made. This slows down future email indexing related to that contact
cause the duplicate detection code always needs to choose one.

Vishesh Handa committed changes in [kdepim-runtime] /:

Merge branch 'vhanda/feeder'

Brings better scheduling for the feeders and makes it run silently in
the background. Also, results in massive cleanup of the entire code

Sergio Luis Martins committed changes in [kdepimlibs] /calendar:

Another 15% less cpu time on loading big calendars.

By compressing calendarChanged() signals.

Sergio Luis Martins committed changes in [kdepim] calendarviews/agenda/agendaview.cpp:

50% less cpu time when unchecking a big collection.

We don't need to call updateEventIndicators() when the removed
incidence isn't in the visible timespan.

Sergio Luis Martins committed changes in [kdepim] calendarviews/agenda/agendaview.cpp:

15% less cpu time on loading big calendars.

Don't call KDateTime::toTimeSpec() if we don't need it.


C. Boemann committed changes in [calligra] /:

Improve painting of gradients by caching the values. It now takes about 40% of what is used to
for a 4000x4000 8bit image

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


Mark Kretschmann committed changes in [amarok] /:

Optimization: On X11/Linux, only draw Analyzer if on current desktop.

This nice trick can shave off as much as 50% CPU load from Amarok if
you can't see it anyway, and it also prevents unnecessary wakeups.

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

Networking Tools

Emmanuel Lepage Vallee committed changes in [sflphone-kde/abstractmodels] /:

[ #25424 ] Make load time 12% faster

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



Peter Grasch committed changes in [simon] /simonrecognizer:

Detailed error reporting for the SPHINX recognizer

Because PocketSPHINX lacks proper error channel redirection, we write
the debug output to a file that is then read by the recognizer
abstraction. Sadly this won't work properly in multi-user environments
*and* introduces additional overhead but should at least cover the
standard use case of a local Simond.

KDE Base

Vishesh Handa committed changes in [nepomuk-core] /fileindexer:

FileIndexer: Always run the FileIndexing

Do not only run when idle. Not everyone leaves their system idle, and
their files should still be indexed.

The File Indexer will only index 1 file every 3 seconds and is barely
noticable. On idle it starts indexing the files at full speed.

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

Nepomuk: Remove the Controller

This is probably a controversial decission, but I do not think the
controller is required any more. It's main purpose was to inform the
user when files were being indexed, so that they could pause the
indexing if they wanted.

Since 4.10, our indexing speeds have improved dramatically. With 4.11,
the indexing speeds have improved ever more, also, we have better
scheduling in place so that the indexing happens slowly over time and
the user does not notice.

In the case when stuff (files and emails) are being indexed slowly over
time, one does not want the user to be aware of it by having an active
system tray icon.

The ability to pause/resume indexing is still going to be possible
through the KCM. It's currently hidden away a little bit, but other
commits will make it more obvious.

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


Raphael Kubo da Costa committed changes in [kdepimlibs/KDE/4.10] akonadi/resourcebase.h:

Correctly expose that ResourceState is a friend class.

ResourceState is a class that lives in kdepim-runtime and is outside the
Akonadi namespace.

clang < 3.3 and all versions of GCC erroneously consider the friend
declaration in

namespace N {
class C {
friend class A;

class A {

to refer to the class A outside namespace N (technically speaking, this is
item 3 of section of the C++ standard). clang 3.3 fixes this
behavior and makes the build of kdepim-runtime fail.

Fix it by explicitly referring to ::ResourceState in the friend declaration.

Alternatively, we could remove the friend declaration and make
ResourceState::collectionsRetrieved use ImapResource::Append instead of
Akonadi::ResourceBase::Append (since ImapResource also declares
ResourceState as a friend).

REVIEW: 110777