23rd June 2013by KDE Commit-Digest Team
|Commits||1461 by 155 developers|
|Bugs Opened||266 in the last 7 days|
|Bugs Closed||302 in the last 7 days|
|Shantanu Tushar Jha||
|Aaron J. Seigo||
|Aleix Pol Gonzalez||
Internationalization (i18n) Status
|Brazilian Portuguese (pt_BR)||
There are 76 selections this week
Direct (non-threaded) call to poison phonemes to avoid race condition
Fixed "mouse double click collision."
This patch fixes the 'delete point' collision:
- remove of 'delete points' double click action
- a new context menu entry named 'delete point'
- a new 'delete point' mouse action triggered by ctrl-mouse-left-click
Fixed "Combined fragment has incomplete color settings".
Try to ensure that the configuration is valid before returning it
This is an attempt to avoid running into (IMO incorrect) assert's in
KConfigGroup's read* functions when having kdelibs built in debug mode.
Unfortunately KConfig* has no other API to tell it that it should create
a KConfigGroup thats been fetched, other than causing a filesystem access
So this trades crashing KDevelop with one doing potentially more fs syncs.
I couldn't verify wether this fixes the issue since I don't have a
Correct Basic C++ Template
Removes unnecessary new lines in Header & Create proper implementations for functions (with return type.)
Save code files of projects correctly.
Script files that were added to project after initial project creation
were not being saved. Upon reopening the project, these script files
would be missing and potentially irrecoverable. Script files were also
not being closed in the actual editor.
-Rocs now prompts user to name the untitled script that is created for
all new projects if the user decides to save the new project.
-Script files that are added to the project after initial project
creation are saved to it.
-When the user closes a project, script files open in the editor are now
-Scripts can now only be saved if the project has been saved.
-Scripts are given unique names to prevent files from being overwritten.
Fully disable menus when changing the tab
This way we get to disable the shortcuts as well, so we have better
scoping. If you press Ctrl+S in 2D, you'll get to save the thing you
Additionally Ctrl+- or Ctrl++ won't change the zoom in 2D.
Use a QPersistentModelIndex to store the index under cursor
This fixes the crash described in:
Only ThumbnailBarViewDelegate seems to suffer from this, but it is not a good
idea to store a QModelIndex anyway (see QModelIndex doc)
Committing w/o review because this is a minor change and I want it to go in
before beta2 gets out
When going from view to browse, ensure thumbnail view is scrolled to show the current item
ignore full screen windows that are on different physical screens
imho this is doing window management, and since it really crosses over
into knowing which window has focus ought to be done by the window
manager. kwin devs disagree, so here we go implementing window
managery logic in libtaskmanager.
Port time_t to QDateTime in HTTP (KIOSLAVE)
--Fix some warnings about parentheses in conditionals.
--Delete some includes that apparently weren't used.
--Port QRegExp to QRegularExpression
--Port QLatin1String to QStringLiteral where needed
FileWatch: Do not delete metadata for files in a folder
When we receive an event to delete the metadata of a folder, we do not
need to query for all the files in that folder and delete the metadata
for those files.
Inotify gives us a separate event for each file that has been deleted
before it gives the folder deletion event. So the query being used was
This seems to have been implemented in 1b7ea56fbf0 in 2010 to mimic what
we were doing for file moves. Strange.
Enable color correction only after successfuly contacting KolorManager
Prevents the possiblity of using shaders modified for color correction
without valid data from KolorManager. If that happened, everthing
Now the color correction shaders are enabled only after successfuly
The issue was highlighted after ab7e228d.
Kinotify: Handle overflow events
There are cases when we are not able to handle all of the events fast
enough, and an overflow event is generated. In that case, we just need
to continue processing events.
Prior to this patch, the path would get constructed as '/' and that
would lead to an assert being hit.
This behaviour can be reproduced by running the nepomukfilewatch in
valgrind and creating 10000 files. The event occurs somewhere between
the 9200 and 9500th file on my system.
Ensure that the "Sort by Type" setting is respected
Before this commit, switching from, e.g., "Sort by Name" to "Sort by
Type" sometimes had no effect until the view was refreshed. The problem
was that the re-sorting was triggered before the type information was
actually added to the model.
exclude padding from snap delta of screen snap
using the actual delta this casewise causes false
preference for window snapping (less to move)
this restores the pre snap-to-content behavior
in that regard and delta isn't used for anything else.
Do not use fixed widths for the widgets in the status bar
This fixes the problem that the Dolphin window has a rather large
minimum size. A side effect of this was that splitting the view could
resize the window (because twice the minimum status bar width was
Dolphin: Do not try to connect to Nepomuk if it is not running
Each time one uses any of the Nepomuk classes, an attempt is made to
connect to the database. This slows down the application since
connecting to Nepomuk is not so cheap.
SMTP: do not signal success after hitting a failure earlier on
OK, this is some ugly code -- but it appears that it makes QwwSmtpClient more or
less work. That class is in a bad need for replacement :(.
The problem was that the onDisconnected event handler within the QwwSmtpClient
simply checked whether there are any pending commands, and if there are none, it
proceeded further towards emitting success even though the connection has never
succeeded. This is a wrong assumption in the client's code -- signalling success
just because the connection was severed before any command had a chance to be
queued is not what I would expect when using such component.
This code does *not* prevent duplicate signals about success, but I have yet to
see a situation where it breaks something.
Be sure to show a vcard even if we have several item with same emails
Fix bug in running job count
Fixes problem where the count of running jobs becomes less than zero
(-1), causing an assert in itemqueue.cpp at line 113 to trigger. This
was happening because ItemQueue::clear() was setting the running job
count to zero when there was unfinished jobs, when the jobs actually did
finish the running job count was decremented to below zero.
The batch fixes this by keeping a QList<KJob *> of running jobs, adding
them when created and removing when the job finishes (via the result
signal). When ItemQueue::clear() is called any outstanding jobs are
silently killed and the list cleared.
Fix FolderSelectionDialog not always selecting matching folders
Easiest way to reproduce the bug is to type slowly enough to cause
QTreeView::keyboardSearch() to reset itself.
Fix Bug 111324 - shortcut for show/hide of an application bar
(bug was created in 2005...)
Fix Bug 225720 - Journal/Calendar (etc) dialogs do not remember their last size
Fix bug 320679: correctly convert input pixels to textures
We hardcoded GL_BGRA, but we actually have GL_RGBA as a possibility now,
for the floating point colorspaces.
Fix a bug when enabling mirroring and trying the scratchpad
When enabling horizontal and vertical mirroring, painting on the scratchpad
was broken. This was because the scratchpad creates a KisResourceSnapshot
with a 0 image pointer. The snapshot then created a default KisDefaultBounds
object with a 0 image pointer.
That means the KisToolFreehandHelper was told to use an infinite rect
for calculating the mirroring, and iterating over infinity takes a bit of
Fixed by passing the scratchpad's defaultBounds object to the freehand
tool helper, which passes it to the resources snapshot.
Add dbus methods for updating podcasts and adding new podcasts.
Bug 205509 - JJ: add dbus functions to update podcasts and download podcast tracks
I added two new methods for dbus: UpdateAllPodcast and AddPodcast
Fix potential null pointer dereference.
Error was introduced with b2149a7. Detected by clang-analyzer.
Let fixed behavior when site is NOT loaded
work also when you don't have connection from the beginning.
[ #25283 ] Fix double click with calls on hold
[ #21732 ] Make call categories sortable again
Manage some ImageMagick crashes.
1. Do not crash when saving in a directory where we don't have write
2. Do not crash when using path names with non-ASCII characters.
Add fullscreen mode to KAlgebra
Query close for Quit action.
Simplify query for closing unsaved project and connect Quit
standard action to query.
Indexer: Make the plugins only extract a part of the full text
Introduce a maxPlainTextSize() which informs the plugin how much text
they should extract.
This is useful in two ways -
1. Sometimes one doesn't want any of the plain text, so one can set it
to 0. This is used by the FileMetadataWidget to directly display the
indexed data. Since we do not show the plain text, we do not need to
2. Virtuoso cannot handle queries above a certain number of bytes.
2500243 seems to be the magic number. If you go above this limit,
just a '0' is stored. Therefore it doesn't make sense to extract all
of the plain text, when virtuoso can clearly not handle all of it.
Virtuoso does not support streaming in text
Allow renaming multiple files without number if extensions are different
Normally, we only allow renaming multiple files if the new file name
contains a contiguous sequence of '#' placeholders, which are then
replaced by numbers.
However, if all extensions are different, we can also rename the files
without such a placeholder because the original extension is preserved
This had been possible some time ago already. That this "accidental
feature" was lost was a side effect of the fix for bug 318942.
kmail-mobile: move Identities to the Settings page
Make it possible to send email from contact applet even when contact is offline
Slightly changes behavior of the applet: the avatar is always clickable, but the
individual actions are enabled only when online (except for the "send mail" action,
which is enabled all the time)
Add the sub mime types too (event/todo/journal).
The calendar ETM doesn't listen to the generic text/calendar
mimetypes for optimization reasons ( korgac doesn't want journals,
plasma doesn't want todos/journals, summary view doesnt want to-dos
all other resources already use the sub mime types.
Use KatePart to display debug output in the debugger
To get old features back:
- to save the log, just press Ctrl+S
- to set marks, press Ctrl+B; you can jump between them with Alt+PgUp/Dn
- to search, press Ctrl+F
You might need to focus the editor widget.
When a new message arrives, the view jumps to the current cursor position.
Add the ability to load only specific mime types.
Will save memory in plasma-clock, kontact-mobile, summary-view
etc, which don't need all 3 mime types ( events, journals, to-dos).
Load the resultion information from the embedded PNG images
Now Krita can roundtrip the resolution information in ora files,
but other apps will still reset that to 72 DPI. We need to extend
OpenRaster for this.
Change the image docker combobox to show common locations and drives
Improve the old loading code for borders.
The old code didn't check for individual edges (-top, -bottom, -left,
-right) when there was a common border definition.
Make the crop tool able to grow
Introduce an option to have different kinds of decorations on the croptool. For
now the following guides are implemented, but they are defined in a parametric way so
it is a junior job to create more guides:
- passport photo
Volume fadeout is now also available for pause.
We had fadeout on stop before, but as Amarok uses pause instead of stop
in its default configuration, the feature was lost for many use cases.
The new (optional) fadeout on pause fixes this.
Show a busy indicator when streaming
Restore key bindings for media player
Add tooltip to analyzer applet explaining how to configure it.
As the analyzer applet does not have a header with a configure button
like the other applets do (it would take up too much space I think),
it's not obvious how it can be configured. So I've added this tooltip
saying that you can right-click it.
Is this a good compromise?
Follow / Unfollow and Images
Switched from get method to post method for follow, unfollow and block.
Changed URL for Image uploading.
Show a message when no logs are available for given contact or day
Shows a label saying "There are no logs for this day" or "There are no
logs for this contact" when user selects a date without logs or starts
logviewer with ID of a contact for which we have no logs.
Reload the sources list after adding a debline for the newly-purchased app.
(Still todo: only reload for the single repository)
Add preprocessing based on the technique developed by Tan and Triggs:
Tan, X., and Triggs, B. "Enhanced local texture feature sets for face recognition under difficult lighting conditions.". IEEE
Transactions on Image Processing 19 (2010), 1635–650.
I noted an unsignificant change in recognition performance on the ORL database,
the real value will need to be evaluated with real-world pictures.
ActiveFileQueue: Use a QHash instead of a QList for the emitted entires
By default everything gets inserted in the emitted entries list, and
then when it appears the second time, it's forwarded to the actual
Since we need to do a find operation on the emitted entries, it's much
better to use a hash, instead of a list.
Tested by creating 10000 files
Simplify handling of preview jobs
This patch changes two things about the way we handle the preview jobs:
(a) Rather than passing a KFileItemList to startPreviewJob(),
remembering the leftovers in the member variable
m_pendingPreviewItems and then starting a new preview job for
these, we append items that need a preview to this member, and let
startPreviewJob() take its input from there. This simplifies the
(b) To prevent that we start preview jobs with just one item and also
that the GUI is frozen too long by startPreviewJob(), we take the
* If the mime type of the first pending item is known, the function
has probably been called by startUpdating(), which has determined
mime types for the visible items already. startUpdating() has
also blocked the GUI, so we just take all items at the beginning
of the list with known mime type, and do not do any expensive
mime type determination in startPreviewJob().
* If the mime type of the first pending item is unknown, the
function has probably been called by slotPreviewJobFinished(). In
that case, we can afford to block the GUI for a short while, so
we determine mime types for 200 ms.
New Indexer for EPub files
Avoid a unnecessary resorting when items are changed, only resort the items when the sorting role value is changed.
Try to do at least a "fast" icon loading for all items
If all icons for the visible items could be loaded in 200 ms, we
continue loading icons without mime type determination for all items
until the 200 ms are over. This reduces the risk that the user ever
sees "unknown" icons.
Don't load journals for groupware purposes.
Delay initialization of mOrganizer until first use.
Reduces Incidence's memory footprint since you wont call
organizer() for most Incidences.
Reset dirty fields after reading the incidence.
The incidence is new, nothing is dirty.
This saves 500 bytes of heap per incidence.
12MB for my test calendar.
GUI: enable loading of cached items not immediately shown when offline
Previously, the second part of a multipart/alternative (i.e. something which is
not shown on startup) was replaced by a label showing "Offline" even though the
actual data were available in the cache. That was not correct.
Do not save the original image when saving a backup
Apparently, the original design was to save the current state both as
a backup and under the original filename. That makes sort of sense,
but it is confusing because F4 doesn't tell the user it is "Saving the
plus a backup", but that it is "saving a backup".
more unused private members removed
Please double check the "never been used" items, especially if the
authors are still available.
ServiceBrowser::m_usingContextView has been left over since
SqlPodcastEpisode::m_batchUpdate has never been used since its
introduction in 680b5102d0f9f011ec993d5277b3a9b417848443
Transcoding::AssistantDialog::m_defaultEncoder has never been used
(introduced in 1a0287f7925d92a05a530ab83fffbc9afae67e86)
AppletToolbarAppletItem::m_labelPadding left over after
LikeBackDialog::m_requestNumber_ unused in the library imported in
DynamicView::m_expandToggledWhenPressed _was_ used, but the code has
always been commented out since 40b768ec4a08d23dceea8f72df1c601574614081
and removed completely in 2fe7dd743c66b2fb9f9a6bbb7b2d50730a843056
Daap::Reader::m_loadedTracks has never been used since patch of
OpmlDirectoryMetaFactory::m_service never used (introduced in
Speed up construction of the history page
The old version was taking ages to even appear on my setup ("ages" being defined
as many minutes at least). Callgrind was crashing, perhaps due to webkit's JIT,
so I simply sampled the backtrace "randomly" by hand to see where the most CPU
time was being spent. These two methods came up way too often, so I did the
1) Do not use KIconLoader within the inner loop, it's slow. It was slow when I
debugged too long startup of KPhotoAlbum, it produced visible file IO, and it is
trivial to speed this up. However, it was still taking time.
2) Do not request the ".historyitem" over and over again. A cached "pre-found"
copy (we're still cloning it) seems to help.
Together, these make it possible to load the history in <4 minutes here. It's
still a completely insane amount of time, but at least it appears, ultimately.
svn: Remove SSL signature for https://svn.kde.org/
In the past some KDE SVN modules used the "svn external" feature to pull
in other SVN repositories. These svn-external links were on the *server*
side so the link URL had to use a single scheme.
This scheme was https, which caused quite some problems for anonsvn
users just trying to update from SVN being an unattended kdesrc-build
run, as the SSL cert for svn.kde.org was not signed by a well-known CA.
As a result kdesrc-build updated svn automatically with the expected KDE
SVN SSL signature to avoid blocking on the interactive warning.
This is no longer required. The modules that used svn externals have
pretty much moved onto git now. The new svn server does not even have an
https interface, so this is dead code now, and removed accordingly.
Added Blur Detection Methods
Simplify the pattern language
Translators do not need to know that the parser wants to match a comparison
operator, a literal string or a type hint. This kind of matching is now done
directly into the passes.