Issue 254

23rd September 2012 by KDE Commit-Digest Team

Contributors

Aleix Pol
Marta Rybczynska
Martin Cigorraga
Bernhard Friedreich

This Week...

KDE-Workspace introduces dedicated OpenGL1 and OpenGL2 compositing types and sees more work on compositing. User interface improvements in KDE-Workspace: a keyboard shortcut can stop the current activity in Plasma, drop behaviour is improved. Konqueror re-adds the ability to select the sessions to restore. Calligra adds a slide chooser. Rekonq offers integrated spell-checking. Internationalization work in KMyMoney. Refactoring work in Amarok.

Statistics

Commits 1968 by 159 developers
Open Bugs 21362
Open Wishes 15960
Bugs Opened 352 in the last 7 days
Bugs Closed 393 in the last 7 days

Commit Summary

Module Commits
/trunk/l10n-kde4
171
 
/branches/stable
114
 
/trunk/l10n-support
65
 
/trunk/extragear
33
 
/krita/sketch
25
 
/plasma/generic
17
 
/trunk/www
15
 
/generic/applets
14
 
/plasma/declarativeimports
12
 
/src/main.cpp
7
 
Files Developer Commits
216
 
Marco Martin
80
 
168
 
Aleix Pol Gonzalez
56
 
147
 
Jonathan Michael Thomas
49
 
141
 
Roman Paholík
47
 
111
 
Albert Astals Cid
44
 
126
 
Lasse Liehu
42
 
93
 
Gilles Caulier
40
 
117
 
Pino Toscano
39
 
90
 
Laurent Montel
38
 
90
 
Dan Leinir Turthra Jensen
31
 

Internationalization (i18n) Status

Language Percentage Complete
Estonian (et)
97%
 
French (fr)
96%
 
Dutch (nl)
96%
 
German (de)
94%
 
Italian (it)
91%
 
Norwegian Bookmal (nb)
89%
 
Danish (da)
87%
 
Chinese Traditional (zh_TW)
84%
 
Catalan (ca)
84%
 
Low Saxon (nds)
84%
 

Bug Killers

Person Bugs Closed
Christoph Feck
48
 
Jekyll Wu
41
 
Myriam Schweingruber
19
 
Andrea Diamantini
17
 
Thomas Lübking
15
 
Gilles Caulier
13
 
tdfischer fedoraproject org
12
 
Ben Cooksley
10
 
etienne rebetez oberwallis ch
10
 
Albert Astals Cid
9
 

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

Bug Fixes

Development Tools

Ivan Shapovalov committed changes in [kdevplatform] /:

Fix KCM selection for the project settings: use only suitable/related builder plugins.

Accomplish this by adding a new method to KDevelop::IProjectBuilder,
"additionalBuilderPlugins(IProject*)". It returns a list of
builders that shall be considered for this project beyond this builder
itself.

REVIEW: 106512

Diffs: 1, 2, 3 Revision 5ada18e...
Ivan Shapovalov committed changes in [kdevelop] languages/cpp/codecompletion/item.cpp:

Fix stale suffix text removal in SIGNAL()/SLOT() code completion.

Stop using a complicated regex; instead, scan string to the next
expression delimiter (comma, semicolon), EOL or an unrelated closing
bracket and remove everything that's in between.

REVIEW: 106451

Olivier Jean de Gaalon committed changes in [kdevelop] /cpp/cppduchain:

Fix detection of function definition vs declaration.
This will be necessary for processing function specialization declarations.
Also add a bunch of tests that don't yet work and some infrastructure
for exhaustive verification of declarations.

Diffs: 1, 2, 3, 4 Revision 75192f5...

Graphics

Tobias Koenig committed changes in [okular] /:

Fix visibility of VideoWidget on page change events

We have to differ between the initialization and the
'page entered' and 'page left' event.
This avoids that all VideoWidgets with poster image show up
on first slide or do no disappear when changing slide.

Diffs: 1, 2, 3, 4, 5 Revision f70dc3c...
Aurélien Gâteau committed changes in [gwenview/workaround-phonon-gstreamer-fin] lib/documentview/videoviewadapter.cpp:

Work around for phonon gstreamer bug

Current phonon gstreamer does not emit the finished() signal immediatly
after reaching the end of the video.

@Phonon people: do you think the workaround in this commit is
acceptable?

KDE Base

David Edmundson committed changes in [kde-workspace] /icons:

Fixed smooth scroll by mousewheel in SystemSettings

Work around a bug in Qt, where ScrollByPixel does not work, which makes
scrolling in a view with large delegates very un-usable.

David Faure committed changes in [nepomuk-core/KDE/4.9] /resource:

Fix race conditions in nepomuk's ResourceData.

So that no AB/BA deadlocks happen, the rule is that the RM mutex must never be
locked after the modificationMutex. It's either modification alone, or RM and then modification.

I had to move some code from RM to RD, because RM was using data->m_cache directly,
without locking data's mutex first!
This new code is not only more threadsafe (no helgrind warning anymore in my tests)
but also much better object-oriented, RM is no longer accessing RD's private data directly.


REVIEW: 105562

Lukáš Tinkl committed changes in [kde-workspace] /:

propagate changes from the Date/Time control module (kcmclock)

by sending a DBUS signal "clockUpdated" which interested parties
can react to.

Fix the "time" dataengine to react to that signal.

Also tweak the analog/digital clocks so that they react
on updated data (I made sure no unnecessary repaints are made).

Fix the analog clock to update every minute at most (60000 milliseconds,
not 6000 ;)

Diffs: 1, 2, 3, 4, 5, 6 Revision 45bd3bf...
Emmanuel Pescosta committed changes in [kde-baseapps/KDE/4.9] dolphin/src/panels/places/placesitemmodel.cpp:

Fixes Bug 304878 - Dolphin shows "ghost" folders in places after autofs umount nfs shares


REVIEW: 106456
FIXED-IN: 4.9.2

David Faure committed changes in [kdelibs/frameworks] kdeui/tests/kmainwindow_unittest.cpp:

Fix kmainwindow_unittest with my weird multi-monitor setup this week.

Make the window bigger than 50x50, otherwise, at (0,0 50x50) it was
outside of any screen, due to screen one starting at (0, 100) due to
a smaller resolution than screen two. Fun.

Back to "100% tests passed, 0 tests failed out of 125". Yay.

Jekyll Wu committed changes in [konsole] desktop/konsole.desktop:

Specify $HOME as working directory through the .desktop file

This is just a workaround for the problem of opening "~/Documents" on startup.
Although it is simple (just one line) and easy to understand, it is still a
not-so-pleasant hack which doesn't need to be added at the first place.

Note, the per-profile working directory still takes precedence if it is set

KDE-PIM

Jeremy Paul Whiting committed changes in [kdepimlibs] /plugins/ldapkio:

ldap: put ldap resource config security settings in same ldapconfig widget.

This fixes the lineedit properties getting enabled/disabled based on the
security chosen in the radio box at the bottom. When the security buttons
were in a separate ldapconfig widget they couldn't be tied together in
that way like they are in the ldap kcm currently.

Office

Dag Andersen committed changes in [calligra] plan/plugins/schedulers/rcps/libs/src/librcps.c:

Keep population size correct to avoid accessing lists outside boundaries



Raul: could you possibly test this to on 2.4.2?
(I managed to crash it in the same place, but AFAICS not in exactly the same *way* as you)

Multimedia

Christian Esken committed changes in [kmix] backends/mixer_alsa9.cpp:
Harald Sitter committed changes in [phonon/4.6] cmake/PhononMacros.cmake:

manually set cmake_install_prefix on the icon_install_dir

when doing a cache update we apparently need the full path, which may
be limited to this case, not quite sure.
at any rate our code is vastly different from kdelibs' so a resync is
out of the question for phonon4.

would be good if one of the windows guys were to test this change.


FIXED-IN: 4.6.1

Networking Tools

Joris Guisson committed changes in [ktorrent] /:

Use translatable unit names in connections stats graph

Utilities

Michel Ludwig committed changes in [kile] /:

Only synchronize the cursor position when the cursor line has changed

This only applies to actual changes in the cursor position and not when re-synchronizing
after a compilation, for example.

Other

Daniel Calviño Sánchez committed changes in [kross-interpreters] python/pythonscript.cpp:

Fix crash when a PyQt signal is connected to a C++ method that calls a function in the script.

I would have prefered that someone with experience in the code had
reviewed the fix. Unfortunately, it seems that krosspython is currently
unmaintained, so I have decided to push the fix myself.

Features

Graphics

Albert Astals Cid committed changes in [okular] /:

Add warnings about --unique errors


REVIEW: 106476
FIXED-IN: 4.10.0

KDE Base

Aurélien Gâteau committed changes in [kdelibs/qmljsdebugger] kdecore/kernel/kcmdlineargs.cpp:

Pass -qmljsdebugger option to QCoreApplication

Makes it possible to use Qt Creator QML debugger and profiler with KDE
applications.

David Edmundson committed changes in [kde-workspace] /desktop/shell:

Add a keyboard shortcut to stop the current activity

REVIEW: 105279

Dawit Alemayehu committed changes in [kde-baseapps] /src:

In the session restore dialog, allow the user to select which sessions should
be restored.


FIXED-IN: 4.10
REVIEW: 106503
GUI: new strings
DIGEST: Ability to select the session(s) to be restored in Konqueror.

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

Introduce a helper class to automatically push/pop Shaders

The ShaderBinder class can be used for the case that a block of code
should be executed with a given Shader being bound. This is useful for
all the cases where there is a if-block for OpenGL2 execution with a
Shader being pushed in the first line to the ShaderManager and popped in
the last line of the block. With the helper this can be simplified to:

ShaderBinder binder(myCustomShader);

or

ShaderBinder binder(ShaderManager::GenericShader);

The ctor of ShaderBinder pushes the given Shader to the stack and once
the helper goes out of scope it will be popped again from the stack.

In addition the helper can take care of OpenGL 1 compositing, that is it
just does nothing. So it can also be used where there is a shared OpenGL1
and OpenGL2 code path where the Shader should only be pushed in OpenGL2.
This basically removes all the checks for the compositing type before
pushing/popping a Shader to the stack.

REVIEW: 106521

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 3f2d3e0...
Sebastian Kügler committed changes in [kde-workspace/kickoff-qml] /desktop/applets/kickoff:

Improve Drop behaviour

When a favorite is dropped under the list, the drop doesn't succeed. The
reason is that the drop is only caught by the items, so there's nothing
catching it when it goes somewhere where there's no item.

Reproduce: in Favorites, drag an item to the bottom of the list. It
works as long as you drop it onto the last item, but silently fails
if/when you drop it under the last item.

We work around this by creating a variable size, invisible footer item
which catches the drop.

This patch also makes the list non-flickable if it doesn't have to,
and fixes a crash when the new list index of the item is bigger than the
number of items.

Aurélien Gâteau committed changes in [kdelibs/qmljsdebugger] /libkdeclarative:

Add KDeclarative::setupQmlJsDebugger()

This static method must be called early for the QML debugger to work.

Vishesh Handa committed changes in [soprano] /virtuoso:

Virtuoso Backend: Make empty graph support optional

Virtuoso doesn't support empty graphs, so we use a fake graph which acts
as the default empty graph.

This approach, while useful, does have a performance impact, as the
graph needs to be regularly checked against this default graph.

Therefore, we add an option to disable this feature. By default, this
feature is enabled in order to preserve compatibility.

REVIEW: 106520

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

Introduce dedicated OpenGL1 and OpenGL2 compositing types

The CompositingType enum turns into flags and two new values are
introduced: OpenGL1Compositing and OpenGL2Compositing.

Those new values are or-ed to OpenGLCompositing so that a simple check
for the flag OpenGLCompositing works in case of one of those two new
values. To make the generic check for OpenGL compositing easier a method
in EffectsHandler is introduced to just check for this.

The scenes now return either OpenGL1Compositing or OpenGL2Compositing
depending on which Scene implementation. None returns OpenGLCompositing.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 24 more) Revision a471185...
Martin Gräßlin committed changes in [kde-workspace] /:

Do not use ShaderManager::isValid to check for OpenGL2 compositing

The main usage of ShaderManager::isValid was to have OpenGL2 specific
code pathes. Now we have an actual OpenGL2Compositing type and we know
that the ShaderManager is valid if we have this compositing type and we
know that it is not valid on OpenGL1Compositing. This gives us a much
better check and allows us to use the isValid method just for where we
want to check whether the shaders compiled successfully.

In addition some effects require OpenGL2, so we do not need to check
again that the ShaderManager is valid. Such usages are removed.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision adc3719...
Aleix Pol Gonzalez committed changes in [kde-workspace] /generic/tools/wallpaperviewer:

Make it possible to configure a wallpaper from the viewer

Extend the plasmawallpaperviewer with a --configure flag that will
show the configure dialog additionally to the wallpaper.

It's useful because there it's easy to debug the config dialog, I
don't know other ways of doing that besides installing+restarting
plasma.

REVIEW: 106495

Hugo Pereira Da Costa committed changes in [kde-workspace] /oxygen:

Added blur behind transparent tooltips.

KDE-PIM

Allen Winter committed changes in [kdepim] /:

Now you can access the Category management dialog from within
the incidence editor. So for example you can add a new category
while creating/editing the incidence.

Isn't perfect, since any currently set categories are cleared
after the category manager is accepted.

Diffs: 1, 2, 3 Revision 6bb8691...

Office

Shantanu Tushar Jha committed changes in [calligra] /:

Add a slide chooser.
ensurevisible behaves the same as KoCanvasControllerWidget's ensurevisible.
Preliminary slide switch on flick.
Tune the gotopage method of the textdochandler.

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

Networking Tools

David Edmundson committed changes in [ktp-presence-applet] /:

Set plasmoid state to Passive if a user has no accounts.

REVIEW: 106507

David Edmundson committed changes in [ktp-common-internals/kde-telepathy-0.5] /:

Set lastLoginFailed to false when changing password

Also expose lastLoginFailed to the library

REVIEW: 106386

Andrea Diamantini committed changes in [rekonq] /:

Integrated spell checking

- inline spell highlighter. This requires WebKit 2.3 to work.

- Addition of a suggested replacement word list to the context menu,
for the word right clicked on

- A standard modeless spell check dialog that works on the current
editable text (or selection).
Heavily cribbed from Dawit's work on kdewebkitpart.



REVIEW: 106417
REVIEWED-BY: adjam

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision b2b2692...
David Edmundson committed changes in [ktp-send-file] mainwindow.cpp:

Update features required to include Account::FeatureCaps, as this is now used by the AccountsModel

Reviewed-by: Martin Klapetek

User Interface

Ruslan Kabatsayev committed changes in [oxygen-gtk] /:

Add blur behind transparent tooltips

Giorgos Tsiapaliwkas committed changes in [plasmate] /:

Hide the konsole after close project

REVIEW:106478

Optimization

Development Tools

Ivan Shapovalov committed changes in [kdevplatform] /:

Refactor BuilderJob: generate a human-readable job name; flatten job hierarchies.

1. If a BuilderJob is added to another BuilderJob, the former job is embedded
into latter rather than having two composite jobs.
2. A BuilderJob now has a meaningful name which is generated from subjobs' metadata
(build method and related project model item).

REVIEW: 106461

Educational

Aleix Pol Gonzalez committed changes in [analitza/aucahuasi/analitzaplot] /:

Remove the FunctionsView

Doesn't make sense at all with analitzaplot

Diffs: 1, 2, 3 Revision 0012f02...

KDE Base

Vishesh Handa committed changes in [nepomuk-core] services/storage/resourcemerger.cpp:

Optimize ResourceMerger::existingTypes

Fetch the existing types by using a query instead of relying on
listStatements. A query is faster, specially since less time is spent in
converting it into a query.

Plus, we can send a shorter version of the the property this way.

Vishesh Handa committed changes in [soprano] /virtuoso:

Virtuoso Backend: Make fake booleans optional

Add a backend parameter which enables fake booleans. This is being done
cause fake booleans and very quite slow, and not everyone wants me.

In order to preserve compatibility, they are enabled by default.

REVIEW: 106469

Diffs: 1, 2, 3, 4 Revision b6ee38a...
Vishesh Handa committed changes in [nepomuk-core] /storage:

ResourceMerger: Optimize resolveUnMappedNode

Only convert the node to n3 once. And insert the statements in one go,
thereby avoiding the extra conversion via Soprano::Node::resourceToN3( .. )

REVIEW: 106492

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision b9b997b...
Vishesh Handa committed changes in [nepomuk-core] servicestub/main.cpp:

Use KApplication instead of QApplication - Required for KIdleTime

This reverts part of commit 5e60ad6fc0aae.

REVIEW: 106487

David Faure committed changes in [kdelibs/frameworks] /:

"Move" componentdata-related methods from KGlobal to KComponentData.

mainComponent, activeComponent, setActiveComponent, hasMainComponent

The methods are still there in KGlobal, deprecated.
This allows to remove dependencies on KGlobal.

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

Office

Pino Toscano committed changes in [kmymoney] /:

i18n fixes

- use i18np where needed
- fix string puzzles
- remove extra spaces in messages
- remove extra exclamation marks
- spell "CSS", "GnuCash", "iCalendar" and "SQLite" correctly
- remove contractions ("don't" -> "do not", "can't" -> "cannot")

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

Multimedia

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

Implement Meta::Track::finishedPlaying(), ditch redundant implementations

code sharing++! Also harmonize the logic, it is now:

Raise play count if one of these hold:
* song is shorter than 30s and it has been played fully
* song is longer than 30s and at least 50% was played
* at least 5 minutes of the song was played

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision d47534c...
Matěj Laitl committed changes in [amarok] /:

Adapt StatisticsProvider & co. to Meta::Statistics, rename

...and use directly in Track implementations, which saves some code.
Also move all to core-impl/suppor - it is just an implementation
detail.

Also modify PersistentStatisticsStore (legacy StatisticsProvider) to
call notifyObservers() as appropriate, which needs some friend
declarations in Meta.h. Use new Observer functionality to track
linked tracks without holding a reference to them. (to avoid circular
reference counting)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision d84b318...
Matěj Laitl committed changes in [amarok] /:

Meta::Track: move statistics methods into statistics() interface

* introduce Meta::Statistics, an interface to statistics-related
methods. Memory manager using KSharedPtr.
* remove (set)score(), (set)rating(), first/lastPlayed(), playCount()
from Meta::Track and move it to Meta::Statistics
* Because Meta::Statistics uses KSharedPtrs, existing track
implementations can just inherit Statistics and return this; in
Track::Statistics()
* Existing Track subclasses with dummy implementations of (set)score(),
(set)rating(), first/lastPlayed(), playCount() have it removed.
* Existing Track subclasses with meaningful implementations of
(set)score(), (set)rating(), first/lastPlayed(), playCount() turned
into Meta::Statistics and statistics() method is added for them.

Next steps:
* Make StatisticsProvider an implementation of Meta::Statistics, which
will in turn immensely simplify all tracks that use them.
* Add setPlaycount(), setFirst/LastPlayed() to Meta::Statistics and
ditch StatisticsCapability.
* Implement trackPlayed() in Meta::Track, ditch custom implementations.

Heavily based on Ralf's idea and patch in
https://git.reviewboard.kde.org/r/106276/ it is just attribute vs. the
subclass pattern + some minor details like notifyObservers() in
StatisticsStore, circular refcounting avoidance etc.

I want to deal with other track Capabilities in similar way in future,
the next one being EditCapability: I'd like to introduce Meta::Editable
and Meta::Track::editable() and rename {begin,end}MetaDataUpdate() to
just {begin,end}Update() to share even greater portion of code in Track
implementations.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 56 more) Revision a512da3...
Harald Sitter committed changes in [phonon] /:

also use automoc builtin for exectuables

+ port demos over to phonon_add_executable macro. truly exciting how we
all managed to not use the available macros and instead used the Qt4
macro magic (yes, we did not even use automoc...)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 78e67a9...
Matěj Laitl committed changes in [amarok] /core-impl/collections/nepomukcollection/meta:

Clean up NepomukMeta constructors a bit

Phalgun,
* we prefer : m_field( initvalue ) initialization to { m_field =
initvalue }, because the first calls the constructor directly,
second calls the assignment operator.
* initializing class (non-primitive) types to their default values is
redundant, C++ guarantees their constructor is called. This applies
to QString, KShaterPtr and virtually all Qt class types.
* I wonder that KUrl m_playableUrl = NULL; even compiles, don't use
NULL in Amarok code at all.

Also removed unnecessary crippling of NepomukTrack::discNumber() and
a comment in NepomukArtist constructor that was invalid. (or I didn't
get it).

Diffs: 1, 2, 3, 4 Revision 8db3e5d...

Other

Educational

Sebastian Gottfried committed changes in [ktouch/next] /:

refactoring: give ResourceModel a setter for the data index

In preperation to make ResourceModel available to QML. For this it has
to have a normal QObject-style constructor with no additional params,
like the data index to use.

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

KDE Base

Raymond Wooninck committed changes in [kdelibs/KDE/4.10] /:

Include possible building of the udisks2 solid backend. This is guided by using a cmake build switch to enable the udisks2 backend and disable the udisks backend.

Reviewed by Luca Beltrame

Diffs: 1, 2, 3 Revision 893ed69...

Other

Albert Astals Cid committed changes in /:

Move system-config-printer-kde to unmaintained

It's being replaced by print-manager that resides in git inside kdeutils
If you want to do 4.9 fixes use the still maintained branch in 4.9