Issue 254
23rd September 2012 by KDE Commit-Digest TeamContributors
Marta Rybczynska
Martin Cigorraga
Bernhard Friedreich
This Week...
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
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
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
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.
Graphics
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?
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.
KDE Base
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
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
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 ;)
Fixes Bug 304878 - Dolphin shows "ghost" folders in places after autofs umount nfs shares
REVIEW: 106456
FIXED-IN: 4.9.2
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.
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.
KDE-PIM
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
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
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
Fix: Not set capture volume in case of error
CC
Networking Tools
Use translatable unit names in connections stats graph
Utilities
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
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
Add warnings about --unique errors
REVIEW: 106476
FIXED-IN: 4.10.0
KDE Base
Added blur behind transparent tooltips.
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.
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.
Add KDeclarative::setupQmlJsDebugger()
This static method must be called early for the QML debugger to work.
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
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.
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.
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
Add a keyboard shortcut to stop the current activity
REVIEW: 105279
Pass -qmljsdebugger option to QCoreApplication
Makes it possible to use Qt Creator QML debugger and profiler with KDE
applications.
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
KDE-PIM
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.
Office
Add a slide chooser.
ensurevisible behaves the same as KoCanvasControllerWidget's ensurevisible.
Preliminary slide switch on flick.
Tune the gotopage method of the textdochandler.
Networking Tools
Set lastLoginFailed to false when changing password
Also expose lastLoginFailed to the library
REVIEW: 106386
Set plasmoid state to Passive if a user has no accounts.
REVIEW: 106507
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
Update features required to include Account::FeatureCaps, as this is now used by the AccountsModel
Reviewed-by: Martin Klapetek
User Interface
Hide the konsole after close project
REVIEW:106478
Add blur behind transparent tooltips
Optimization
Development Tools
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
Remove the FunctionsView
Doesn't make sense at all with analitzaplot
KDE Base
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
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
Use KApplication instead of QApplication - Required for KIdleTime
This reverts part of commit 5e60ad6fc0aae.
REVIEW: 106487
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.
"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.
Office
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")
Multimedia
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).
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)
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...)
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.
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
Other
Educational
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.
KDE Base
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
Other
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