Issue 317
8th December 2013 by KDE Commit-Digest TeamContributors
Alex Fikl
Giacomo Barazzetti
Danny Allen
Jürgen Appel
This Week...
Statistics
Commits | 1626 by 144 developers |
Open Bugs | 21155 |
Open Wishes | 15905 |
Bugs Opened | 205 in the last 7 days |
Bugs Closed | 244 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
119
|
/trunk/l10n-support |
77
|
/branches/stable |
49
|
/krita/plugins |
25
|
/trunk/www |
25
|
/src/oxygenthemingengine.cpp |
15
|
/plasma/generic |
14
|
/src/lib |
14
|
/krita/ui |
13
|
/lib/marble |
12
|
Files | Developer | Commits |
462
|
Laurent Montel |
165
|
195
|
Martin Gräßlin |
65
|
177
|
Ben Cooksley |
61
|
150
|
Dmitry Kazakov |
60
|
150
|
Hugo Pereira Da Costa |
54
|
132
|
Milian Wolff |
52
|
141
|
Boudewijn Rempt |
47
|
108
|
Patrick von Reth |
42
|
111
|
Sébastien Renard |
37
|
108
|
Dominik Haumann |
36
|
Internationalization (i18n) Status
Language | Percentage Complete |
German (de) |
99%
|
French (fr) |
98%
|
Dutch (nl) |
97%
|
Estonian (et) |
93%
|
Galician (gl) |
92%
|
Danish (da) |
89%
|
Catalan (ca) |
85%
|
() |
83%
|
Greek (el) |
83%
|
Chinese Traditional (zh_TW) |
83%
|
Bug Killers
Person | Bugs Closed |
Christoph Feck |
26
|
Gilles Caulier |
26
|
Myriam Schweingruber |
25
|
Jekyll Wu |
21
|
Dmitry Kazakov |
16
|
Dan Vratil |
14
|
Jarosław Staniek |
9
|
Christian Mollekopf |
9
|
Teemu Rytilahti |
9
|
Michal Humpula |
6
|
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 71 selections this week
Bug Fixes
Development Tools
Do not blindly access type before checking its validity.
Check the validity of currentAbstractType before accessing it.
Apparently there can be cases where m_gotTypeFromDocComment is true
but the type is invalid. To prevent crashes, we check this now and
fall back to the cases of m_gotTypeFromDocComment being false.
Parse '$' in macro identifiers
At least GCC and MSVC support this. See diff for further explanation.
See http://stackoverflow.com/a/369524
REVIEW: 114310
Don't handle debugger state changes during shutdown.
KDE Base
fix KeyError in actions decorator on Python 2
apparently Python 2's xml.dom.minidom doesn't have __contains__
on attributes :-(
REVIEW:114306
Make KFileItemModel::createMimeData() faster
Moreover, this commit ensures that the order of the URLs in the
QMimeData object is the same as the order of the items in the view.
Selecting many items and copying them to the clipboard could take quite
a bit of time. This is because we used
KDirModel::simplifiedUrlList(urls) to remove child items from the list
of URLs, and this function sorts the URLs internally to make it easier
to find out which of them are child URLs.
However, since commit 5c5d87fec44e7c5934e4b24060200173153f0ff4, the
selected indices are already stored in ascending order, and this makes
it easy to detect if an item is a child of the last item that has been
added to the QMimeData.
REVIEW: 113515
FIXED-IN: 4.13.0
pate: install only plugins compatible with the used Python version
This prevents useless plugins from being installed, and also
eliminates build failures on distributions that byte-compile
Python code during their package build process.
REVIEW:114261
vi-mode: fix crash in "Vj>u>." sequence
don't remember the "u" key after Undo command
REVIEW: 114248
Fix traceback in Python runner plugins
Plamascript.Runner is the base of python krunner plugins. These plugins
implement the C++ signals prepare, teardown, createRunOptions and
reloadConfiguration in actual methods (the signal wiring happens in
pyrunner.py which is the loading component). As a result of this calls
to any of these methods will fall through to plasmascript.Runner whenever
the actual runner does not implement them. However plasmascript.Runner is
missing the implicit 'self' argument such that one gets silly python
backtraces like
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyrunner.py", line 90, in reloadConfiguration
self.pyrunner.reloadConfiguration()
To prevent this from happening the functions now have the implicit self
argument.
Also see:
https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1258088
REVIEW: 114314
KDE-PIM
Always verify writing data to external file was successfull
Always make sure that QFile::write() has written all data to prevent data
loss in case we run out of disk space.
FIXED-IN: 1.11.1
When fetching last contact photo fails, don't fail the entire job
Job::replyReceived() sets error to NotFound if it receives 404. In case
of ContactPhotosFetchJob that's not a fatal error though, but a notification
that the contact does not have a photo. Subsequent success will reset the
error, but in case the very last contact does not have a photo, the error
would remain set to NotFound, which would then fail the entire task in Google
resource.
FIXED-IN: 2.0.3
Respect calendar-wide timezones
Each listEvents reply contains timeZone field in header that specifies
a calendar-wide timezone that applies to all events, but was ignored by
parseEventJSONFeed(). The timeZone is now passed to JSONToEvent(), which
will first check for timezone override in "start" and "end" fields
and then apply the global timezone.
FIXED-IN: 2.0.2
Delay initial call to PersonsModel::onContactsFetched
onContactsFetched() emits the modelInitialized() signal, so when it's
called directly from constructor, the signal's emitted before anyone
can connect to it.
Be much more resilient towards re-entering the event loop
Previously, there used to be a rather primitive guard which attempted to keep
stuff from hitting the fan when the event loop was reentered from within a slot
connected to some signal which was emitted by the IMAP event handlers; the
motivation heind this was that some of the followup events might very well break
stuff by e.g. deciding to kill the parser, or perhaps by deleting some tasks.
Unfortunately, the guard was rather primitive and only ever guarded against
reentering the loop once. It was utterly useless when the loop was reentered
multiple times.
One way of triggering the issue was via connecting to a server which refused our
conneciton due to too many attempts (with a cached password). The three
overlapping dialogs proved to be too much for the primitive guard to handle.
Thanks to paalsteek for reporting this.
This change instead makes sure that the signals which are "likely" to have
something connected to them, and where that "something" might be willing to
re-enter the event loop by e.g. using of QMessageBox' static methods, are only
emitted after a while via the Qt::QueuedConnection.
v2: use EMIT_LATER instead of CALL_LATER for cases where it's about emitting
signals as suggested by Thomas during review.
REVIEW: 114337
Office
Fixed a memory leak in KisSelection
The circular dependencies between shared pointers in
KisSelectionMask<->KisSelection<->KisPixelSelection
caused memory to leak.
Fix selecting the source of the Duplicate Op
Fixed Scatter Paint Op option to handle Gimp brushes correctly
The brush scale and rotation should also be taken into account.
Disallow the start of prohibited actions
Now the tool can choose not to get move/release events for the actions
it doesn't want to have. If the tool calls event->ignore() in
beginPrimaryAction(), it will not get any further events for this
particular action.
- Fix for 'Dividend and IntInc investment activity types do not observe the security field'.
Fix KisToolTransform not to transform anything if the node is locked
Fix Keep Aspect Ratio for KisToolTransform
There are two changes currently:
1) Shift modifier now "flips" current AspectRation setting,
not just enables
2) Default Value is "Disabled"
Fixed usability issues in the Crop Tool
Here is the list of changes:
1) Now you can restart the crop rect by click-dragging outside
of the current crop rect. Just start dragging a new rect and
it will replace the current one.
2) When activating the tool, the crop rect is created automatically
*only* if you have some global selection active.
3) If you "click" on the image, the whole image will be selected
4) If you "click" outside of the current crop rect, it will be deselected
automatically
Wish for fixed table row header
Fixed the rounding bug in Optimized Composite Ops
The vector and single-pixel versions of the op must generate absolutely
the same pixel values and with absolutely the same rounding rules.
This patch implements not-the-best way of rounding, because Vc doesn't
support single instruction round-and-convert-to-int opcodes (which are
present in the Intel architecture). Ideally, we should implement
Vc::iRount() method to do this.
Right now, using a separate-opcode rounding makes CompositeOver about
5-10% slower.
TODO: Implement Vc::iRound()
Substitute too small brush outlines with a 1px circle
If the brush outline is too small to be shown on screen, substitute it
with a small 1px-diameter circle.
Fix KoCompositeOpCopy2 to handle source alpha channel properly
The value of the source aplha should be taken into account while blending
two pixels. Otherwise black aerials appear on screen. This might not be
too mathematically correct, but at least something.
Fix a crash in Krita due to accessing to an unsupported action in TextTool
The action "insert_table" (as well as other table-related actions) is added
by the Text Tool only in case the app supports 'useAdvancedText' feature.
That is why accessing the "insert_table" outside 'useAdvancedText' check
will cause a crash.
Please revert/change this commit if I understood something wrong :)
CC
Multimedia
Simplify gphoto2 interface by using a shared gpcontext wherever it's possible, fixes hopefully #322652 as a side-effect.
FIXED-IN: 4.0.0
Networking Tools
[ #36252 ] Add 'HistoryItem' class instead of using 'Call' directly
Hopefully it prevent a race condition and a SIGSEGV when the call move from the CallView to the HistoryView.
User Interface
Use IconEffect for disabled state in QIconItem
Reason for this change: a QIcon might not contain the disabled pixmaps.
Using the icon effect allows to get also the disabled state for such
icons.
REVIEW: 114334
set default alpha channel when reading color from kde options
added diff operator to RGBA
use color provided by ThemingEngine for button background.
Utilities
Change LaTeX::updateBibs() to avoid implicit check of the master document
This patch takes part of Info::lastModifiedFile() that works with file list, and
splits it into a free function. The last one is called from Info::lastModifiedFile()
and from LaTeX::updateBibs(). This allows updateBibs(true) to avoid an implicit
check of the master document.
Patch by Eugene Shalygin.
Features
Educational
Support for KML tours
GCI task #6459946090627072
REVIEW: 114308
Add option to automatically update solver coordinate after a successful slew
Deactivate MapQuest routing.
As of 2013-07-15 (or rather in effect around 2013-12-01) MapQuest
requires an API key, and has this nice section in their terms of usage:
"You are responsible for maintaining the confidentiality of your
Credentials and for any usage or abuse of the MapQuest Services or
MapQuest Content by anyone using your Credentials."
(from http://developer.mapquest.com/web/info/terms-of-use)
kwallet support for owncloud sync
GCI task #5279620895080448
REVIEW: 114089
Essential implementation of movie capturing
Implementation of timer-based fps marblewidget caster.
Current impl saves video file, compiled from bmp files saved in
temporary directory with avconv/ffmpeg (avconv is a prior one).
REVIEW: 114170
Implement an action to go back
By using it we don't need the on-screen button anymore
Merge branch 'learner-profiles'
Enable initial learner profile support in Artikulate. This allows
users to set their favorite languages. Later the learner profiles
will be used for statistics as well as cross-language learning
progress information.
KDE Base
Bring back statusnotifierwatcher
So far the easiest port I've ever done:
* removed aboutData
* adjusted CMake
Integrate video into the UI
A video button is shown if the model provides an url for a video.
If the button is pressed the video element is added in a similar way
to the aboutInfo and starts the video directly. Once the playback
stopped a play again button is shown.
If one clicks the video button again, the video gets hidden.
Room for improvement:
* add a button to open in external player
* ensure video is centered correctly in the list view
KDE-PIM
Extend AgentSearchInterface to support server-side search
Note: I should consider moving the server-side search elsewhere, as it does
not strictly align with the 'Interface' concept here and also forces agents
to implement addSearch() and removeSearch() methods, which is not always
necessary.
Gui: Control the InReplyTo Header from Composer
Add a QCheckBox in ComposerWindow, that controls whether the current
message will be marked a reply to some other message.
Drafts save/load the state of checkbox. Draft version updated to 3.
REVIEW: 114319
Implement the SearchResultsRetriever, based on ItemRetriever
The retriever will block while performing an asynchronous operation.
It will invoke a search via DBus-call to every agent that implements
Search interface and will wait for SEARCH_RESULT reply from the agent.
Time to convert knotes to akonadi
Support WHERE ... IN (...) conditions for any type of list
Office
Add a third Brush option slider
Add an optional third brush option slider as there's enough space for it on big screens, and as we have 3 brush parameters available in the list.
Add a third Brush option slider
Add an optional third brush option slider as there's enough space for it on big screens, and as we have 3 brush parameters available in the list.
Support saving vector layers (as raster) to multi-layer tiff images
Support export vector layers to psd
(Only as raster for now)
added Apple Keynote document import filter
Started adding onlinebanking including sending credit transfers
Started to add a system for creating jobs which can be executed by a
plugin.
Tasks for german and sepa credit transfers were ceated including ui.
KBanking (aqbanking) can use them to create credit transfers.
This is work in progress.
Multimedia
Adding keyboard navigation support for popupmenu
Adding keyboard navigation support for popupmenu.
REVIEW: 114318
Signed-off-by: Sujith Haridasan
Networking Tools
Initial Pump.io implementation
[ #36301 ] Add support for adding contact without reloading the model
[ #36301 ] Implement collection monitoring
This commit implement the backend, some more work is required for the ContactProxyModel.
User Interface
- set some background to transparent explicitly in css, rather than using if statement in
render_background
- disable background on GtkOverlay
- cleanup some code
Crash recovery for plasma-shell
We restart plasma-shell after crashes. When it crashes subsequently on startup,
and more than two times in a row, we give up in order to not endlessly loop.
Once the shell process stays alive for at least 15 seconds, we reset the crash
counter, so a later crash, at runtime rather than on startup will still be
recovered from.
This logic is very similar as to how kwin handles it.
DIGEST:
Optimization
Development Tools
Remove google sparse/dense hash code.
Replace the single place where it was used with a simple QSet.
Also cleanup the code, as this is not a hot-path thus the performance
is really not that important here.
Comparing before/after showed that DUContext::imports is roughly being
called 10k times when importing GammaRay as a project with a clean
cache. Parsing takes ca. 40s, of which 0.08s where spent in ::imports
with the old code. The new simpler QSet based variant takes ca. 0.1s
which is just as fine - esp. if we can get rid of so much code!
Optimize: Make KDevelop::Use movable.
This type is movable and stored in KDevVarLengthArray,
which can make use of this trait for optimizations.
It is especially noticeable for the sorted insert
operations done in DUContext, where this function showed
up before in profiling data.
Now, we can simply memmove the Uses, which is much faster.
Optimize: Deduplicate code and use the faster Qt implementations.
This mostly applies to remove and insert, both of which are available
in Qt nowadays and make proper use of Qt's internal type traits. Thus,
for movable types, insert and remove become much faster as no O(N)
iterations and copies are required anymore to move around stuff.
Optimize: Cache data for empty {Qualified,}Identifiers.
Even on a smallish project (GammaRay), Identifier() is called ca.
567600 times, whereas QualifiedIdentifier() is even called 2257000
times.
Up until now, each object construction lead to a call to
ItemRepository::item which internally uses mutex locks as well as
the item repository hash lookup to find the item.
Instead, we now allocate a static const object on the stack and
reuse that for empty {Qualified,}Identifiers and thereby speed up
this codepath tremendously.
KDE Base
[kwin] Use a QIcon in Client for the icons instead of Pixmaps
Client used to have dedicated methods for different icon sizes instead
of combining all pixmaps into one QIcon. This resulted in various parts
of KWin having different access to the icons:
* effects only got one pixmap of size 32x32
* decorations only got the 16x16 and 32x32 pixmaps combined into a QIcon
* tabbox could request all icon sizes, but only as pixmap
Now all sizes are available in one QIcon allowing to easily access the
best fitting icon in a given UI.
Lazy-load the item data also in Compact View
The recent changes which prevent that all data for each item are saved
in a QHash already when loading the folder (see
https://git.reviewboard.kde.org/r/112725/), which save both memory and
time, do not work yet in Compact View, because
KItemListWidgetInformant::itemSizeHint() calls the model's data(int)
method for every item, which then initializes the hash.
This patch prevents that by accessing the file name directly if only
the "Name" is shown in the view, just like it's done in Icons View.
REVIEW: 113849
kate: add dialog box to catch opening large files
GUI: warns the user if he tries (very probably accidentally)
to open large file (>10MB), which might lead to kate freezing
for a long time.
REVIEW: 114315
Other
Port favicons dataengine
REVIEW:114253
Make QFileDialog use KFileWidget inside
Implement a QPlatformFileDialogHelper in KDE's QPlatformTheme implementation
so that we get a file dialog that integrates with KDE when running a KDE
session.
REVIEW: 114256
[screenlocker] Port LockWindow's x11 event filter to QAbstractNativeEventFilter
With that the heart of the lock screen is ported, though not yet tested.
KDE-PIM
Stop trying to find Nepomuk...it's not coming back.
Long live KPeople2!
Remove unmaintained Windows CE 5 support.
With that already gone from Akonadi and KF5, there's very little point in
keeping this around here.
REVIEW: 114255
Multimedia
Don't hide youtube search