Issue 303
1st September 2013 by KDE Commit-Digest TeamContributors
Giacomo Barazzetti
Jürgen Appel
This Week...
Statistics
Commits | 1663 by 155 developers |
Open Bugs | 21281 |
Open Wishes | 15974 |
Bugs Opened | 310 in the last 7 days |
Bugs Closed | 283 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
120
|
/branches/stable |
86
|
/trunk/l10n-support |
45
|
/generic/applets |
25
|
/staging/frameworkintegration |
20
|
/plasma/desktop |
18
|
/trunk/www |
17
|
/plasma/generic |
13
|
/server/src |
13
|
/plugins/projectfilter |
11
|
Files | Developer | Commits |
192
|
Sebastian Kügler |
65
|
153
|
Marco Martin |
51
|
138
|
Alex Fiestas |
48
|
108
|
Sven Brauch |
39
|
102
|
Milian Wolff |
38
|
102
|
Sayak Banerjee |
34
|
54
|
Laurent Montel |
26
|
78
|
Andreas Cord-Landwehr |
26
|
75
|
Wolfgang Rohdewald |
26
|
72
|
Boudewijn Rempt |
26
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
100%
|
Ukrainian (uk) |
100%
|
Swedish (sv) |
99%
|
French (fr) |
98%
|
Polish (pl) |
98%
|
Spanish (es) |
97%
|
Dutch (nl) |
97%
|
German (de) |
96%
|
Estonian (et) |
95%
|
Italian (it) |
92%
|
Bug Killers
Person | Bugs Closed |
Jekyll Wu |
40
|
Dominik Haumann |
40
|
Cristian Oneț |
20
|
Thomas Lübking |
16
|
Christoph Feck |
15
|
Dan Vratil |
10
|
Dmitry Kazakov |
9
|
Simeon Bird |
7
|
Boudewijn Rempt |
6
|
David Edmundson |
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 99 selections this week
Bug Fixes
Development Tools
Double click on a state other than initial, normal or end crashed the application.
Fixed by using a string instead of an array.
CC
Crash fix.
The crash is fixed by setting PinWidget as child of the related
UMLWidget, which ensures that PinWidget is deleted along with
the parent by QGraphicsScene.
Additional the PinWidget instance has to be removed from the
UMLScene widget list, which happens in PinWidget destructor.
Graphics
Fix schema updates from old versions: updatev4tov6 is updatev4tov7
Disable read of old tag paths and use setXmpTagStringBag in dmetadata
KDE Base
TagLibExtractor: Check if the tag exists before dereferencing them
Prevents a crash
enable animations again
Correcte the check for max_bits, so we avoid the overflow.
FIXED-IN: 4.11.1
re-read dashboard kcfg on reconfigure
FIXED-IN: 4.11.2
REVIEW: 112280
Storage Service: Check that a list is not empty before taking its first
element.
FIXED-IN: 4.11.1
REVIEW: 112323
inconsistency fix: really hide message only on user interaction
FIXED-IN: 4.11.2
Move cursor to begin/end of selection before canceling it
Makes Left/Right keys consistent with QLineEdit behavior.
FIXED-IN: 4.11.1
REVIEW: 112256
Fix reordering of apps for a derived mimetype.
This fixes a bug introduced by 871cccc8a88a60 that made it impossible to re-order
file type associations both in System settings and in the open with list. Hence
it contains a new way of detecting duplicate (inherited) mimetype entries, that
the original was supposed to fix.
Unittest is in kde-runtime, commit 967979f (if I can commit it fast enough ;)
Patch by Mathias Tillman.
REVIEW: 111951
FIXED-IN: 4.11.1
Fix filename trucation issues in Icons View with maximum number of lines
When the name of a file is too long to be shown inside the maximum
number of lines, the last line is elided. However, there were several
problems before this commit:
(a) "lastTextLine", which contains the text to be elided, was not
assigned the complete remaining text, but only the part that would
be put into the last line if there were more lines following. This
may be less than what would fit into the line because we try to not
break the text at random points.
(b) QFontMetrics::elidedText() was not given the width that is available
for the last line (that would be maxWidth), but only the width that
would be occupied by the text if there were more lines following
(line.naturalTextWidth()).
(c) The variable "nameWidth", which is required to calculate the QRectF
that is reserved for the name, was not updated correctly.
The result is that the text was sometimes trucated too early (especially
if there would be a line break early in the text if we had more lines
available), that there may be insufficient space to show the "...", and
that the hover/selection rectangle might be too narrow.
FIXED-IN: 4.11.1
REVIEW: 112265
Rough port of notifications widget to Plasma2
Change all the imports, disable the plotter for now (as it needs
GraphicsWidgets and we don't have a suitable QML replacement yet).
Fix a few API changes here and there.
Kickoff: Re-enable runners model
Queue signal delivery for launcher toggling.
This allows QGraphicsScene to perform a mouse ungrab after
the popup menu is dismissed before the launcher delegate is
destroyed, avoiding a crash.
epubextractor: Fix a potential crash.
While I can't reproduce this crash, there is the possibility for a
pointer to be null in about the right place. Hopefully this fixes the
crash.
FIXED-IN: 4.11.1
glsl is not supported on indirect contexts
and fglrx yells an invalid_enum error when being asked
for the version
FIXED-IN: 4.11.2
REVIEW: 112419
fix notification issues (showing / hiding)
FIXED-IN: 4.11.1
REVIEW: 112320
fix resizing issues in kate notifications
FIXED-IN: 4.11.2
fix scheduling the repaints
repaints caused by effects so far polluted the timing calculations
since they started the timer on the old vsync offset
This (together with undercut timing) lead to multiple frames in
the buffer queue, and ultimately to a blocking swap
For unsynced painting, it simply caused wrong timings - leading to
"well, kinda around 60Hz - could be 75 as just well".
REVIEW: 112368
that part is fixed in 4.11.2
Don't attempt to publish geometry for launcher items.
c++ cannot invoke other constructors
FIXED-IN: 4.11.1
Fix neverending spinner when jobs are disabled
FIXED-IN: 4.11.1
Reviewed by Christoph Feck
Queue signal delivery for launcher toggling.
This allows QGraphicsScene to perform a mouse ungrab after
the popup menu is dismissed before the launcher delegate is
destroyed, avoiding a crash.
epubextractor: publication date inside a longer string
Bug 323811 had a file where the EPUB_DATE string was:
"creation: 2011-02-22;publication: 1999"
This checks for such strings and cuts them to "1999".
Fix the synchronous-mode wallet open logic
The wallet opening logic, for the synchronous mode, had a nested
event loops problem, leading to frozen kwalletd. That was because
kwalletd wasn't using qdbus delayed replies. kdelibs used
asynchronous open methods even for the synchronous mode, coupled
with an internal event loop to simulate synchronous mode.
This commit removes that internal event loop, as the kwalletd now
blocks on synchronous wallet open requests.
KDE-PIM
Bug 323965: Fix error saving Edit Template dialog
Fix error preventing changed template from being saved when closing
the Edit Template dialog (Akonadi only).
Do not hide attachments when they are nested in a message part which is itself an attachment
I introduced a bug in commit c430463; the flags which control part display were
not properly trimmed when recursively descending into the nested MIME parts.
This had an unfortunate side effect that an attached message/rfc822 which itself
contained an attached PDF file would hide the PDF file from display.
This is a pretty critical problem -- hiding message parts which are there is
never a good thing :(.
v2: Changed the func name (to my taste) and simplified the bitwise operation.
Thanks to Thomas Lübking for review.
v3: Add an explicit enum close to the site where the original flags are defined
in a hope to catch mistakes when new flags are introduced in future. Thanks to
Thomas for this suggestion. I'm not adding it directly to the enum; I hope that
this way makes it clear that the result is *not* a flag in itself, just a
bitwise mask. Please comment within a review if you think this needs a change.
REVIEW: 112291
Use current date when saving mail drafts in case subject is empty and sanitize the suggested filename unconditionally
Thanks to Karel Volný for reporting this. Previously, a message with an empty
subject would produced file ".draft" which did not match the GUI's wildcard and
therefore was not visible in the file picker when resuming these drafts.
Thanks to Thomas Lübking for pointing out that some characters are best avoided
here. The code now sanitizes the suggested filename so that it does not contain
"strange" characters, even if they were present in the subject before. Of
course, the subject itself is not modified.
REVIEW: 112309
Change runner name + comment to clarify it does more than just contacts
REVIEW: 112306
Populate new contact alias, avatar and groups on initial load
Whilst this makes fetching data from Telepathy have a slightly higher
latency than inserting minimal data and then updating it the
stress this causes on Nepomuk and in particular anything using the database
having to update everything twice is much greater.
REVIEW: 112393
Office
Remove setPalette call
The tooltip palette is correct by itself, and calling this breaks the
theme color on Windows
Update annotations layout and connection lines when an anntation deleted.
Multiple imports can now be launched trough the webConnect interface
without crashing the application (the imports will be serialized).
Do not crash when clearing the text mode brush in pipe mode
Signal the fact that the QIF filter has failed to run to the user.
This is pretty important otherwise the user will not have any
idea about why the QIF import did not worked.
Restart the move tool stroke when the target node has changed
The target node can change due to the "Move Layer with Content" option
which was not taken into account previously.
Fix a crash in reports using the mysql storage backend.
This crash was caused by the fact that the report, after requesting
the transaction list, did not check that the transactions are inside
the requested date interval. Since the date is used to compute an
index in a columns list a date outside the requested interval would
cause an invalid index to be computed and causing the crash.
Now the report performs a validity check of the date after filtering
the transactions.
Also fixed the SQL backend implementation to properly filter by dates
even if an empty split filter is provided. Also added a testcase for
this scenario.
Fixed a mask offset loading bug
There is something a bit weird in the design of Kra format. The offset
of the paint device belongs to the node, but not to the device itself.
This causes problems when the actual paint device of the node is created
in a deferred way, like it is done for KisCloneLayer's and KisMask's.
Fix divide by 0 crash while importing from GnuCash.
The currency editor dialog now properly handles edit triggers.
The currency ID column is not editable as is should have been.
Moved the whole currency updating business logic to KMyMoneyApp
where we already had the currency creating, renaming and deleting
methods. Moved the initial loading of the currencies out of the
dialog constructor so that the initial currency selection will
enable the proper actions.
REVIEW: 112350
Fixed an offset bug when creating a thumbnail of a paint device with offset
The 'translation' seems to be some historical artifact and obviously
not needed anymore.
Fix a crash after the context menu is requested in the category line
edit while a new category is entered in that line edit.
Made it possible to end a polyline with Enter, Esc and a Handle
Now you can:
1) Press Enter key to end the Polyline/Polygon/Polygon Selection
2) Press Esc key to cancel them
3) If you move your mouse to the first point, a special handle appears
allowing you to close the polyline
(the bug is not closed, because Path Tool should also be fixed)
No need to resort the whole KisCategorizedListView on every data change
KMyMoneyCompletion should now work properly using input methods.
Remove previous workarounds that were added to hide this problem.
Changed Suffix to Prefix in the Image Split dialog
Fixed a subpixel precision calculation of mask sizes
Now the size of the mask is calculated depending on the fractional offset.
This is the second version of a commit 2c30521 which was reverted due to
the problems with the autobrush. Now the auto brush calculates the center
of the dab correctly using the hotspot information which gives the most
stable and correct results.
Multimedia
Fix reading Album Artist / Compilation / Disc Number in APE tags.
Fix reading of Album Artist and Compilation tag in APE tags.
Add support for reading Disc Number in APE tags.
REVIEW: 112266
UMS: Fix setting album cover.
When Setting->Config->Metadata->Write covers to file is enabled, it
should be possible to write covers for albums located on an UMS
collection. The current status is that amarok does the write but
never updates itself to reflect the new cover. There is code to
achive this but is has been broken at some point.
File_p.h:358 tries to create a signal/slot connection to an invalid
slot. This is fixed by my patch.
REVIEW: 112255
Networking Tools
Patch provided from Benedikt Gollatz added to prevent the crash
Fix LaTeX filter
Instead of trying to put the images inline we put a reference and insert the LaTeX images at the end.
REVIEW: 111501
Exclude enqueued messages from scrollback
Reviewed-By: David Edmundson
Prevention before possible crash when we are trying to get incorrect setting from VPN connection
User Interface
Check widget validity in group box drawing
Widget is an optional parameter and may be 0.
This currently causes a crash when GroupBox is used by QtQuickControls
REVIEW: 112329
Games
fix handling of "east won nine times in a row"
1. that rule is not absolute anymore because we still want to know
which rule lead to Mah Jongg
2. raise LongHand only for scoring games. In real games, the program
logic prevents this anyway.
FIXED-IN: 4.11.1
Features
Development Tools
Enable KDevelop to open files in running instances.
REVIEW:112226
Logic:
* If no sessions are running, behaves like "kdevelop <file>".
* If exactly one session is running, opens the file in that session
* Otherwise, shows the session picker and opens the file in that session
Make VCS folder and common file filter patterns customizable.
We cannot be sure that people do not want to show these files, thus
leave it to the user to customize the patterns.
Associations can now be drawn with different layouts.
The possibilities, which are set from the popup menu, are
- direct lines
- polylines
- orthogonal lines (only vertical and horizontal)
- splines
Single points or segments can be moved.
The controllers are now integrated into the widgets and therefore deleted.
This makes the code more readable and maintainable.
Simplify the filter configuration, remove "MatchOn".
This information can easily be deduced from the pattern and thus
gives a perfect opportunity for a simplified configuration UI.
It should thus also be closer to what a user expects and knows from
e.g. .gitignore and svnignore files.
Thanks to Andreas Pakulat for the suggestion.
The Filter struct now should be seen as a 'compiled' user filter,
whereas SerializedFilter holds the raw data the user entered and
thus is what is used in the configu UI.
Educational
proposal for new cooperative Pairs theme
ported runner plugins to Qt5
all plugins ported to Qt5 (components plugin's QML files not ported yet)
Graphics
Interroperability with Nikon NX : Use XMP Photoshop Urgency to save and restore Color Label properties
KDE Base
Basic declarative (QML) interface for Solid
It registers a class (org.kde.solid.)Devices (initially modelled after
DeviceNotifier) that contains the following features:
- ability to list all devices or just those that match a defined query
(Solid::Predicate)
- signals for when devices that match the query are ad->ed or
deleted
- isEmpty property - are there no devices that match the query?
- count property - the number of devices that match the query
- devices property - a list of udis of the devices that match
the query
- device method that returns a QObject interface to the device.
REVIEW:111964
Support for keyboards and pointers in udev backend
This patch adds the support (to solid and udev backend) for:
- keyboards
- pointer (mice, graphics tablets, touchpads and touch-screens)
REVIEW:111918
support drop of applets in desktop containment
drag and drop from the widgets explorer
Enable statusnotiferitem DataEngine on KF5
REVIEW: 112404
qml part of drag and drop support
support wheel events
Added digital_clock in plasma 2
port paste plugin
Port soliddevice DataEngine to KF5
REVIEW: 112327
Added "Display window borders for maximized windows" option.
Add utility function to paint icon overlays
As this was rejected from QIcon, I decided to implement it in
frameworks. The idea is new private icon engine (KOverlayIconEngine),
which paints the overlays itself, and then an utility function in
KIconUtils namespace, which takes the base icon and the overlay icons as
parameters and constructs new QIcon using KOverlayIconEngine.
As QPixmapIconEngine (QIcon default) is private in Qt and couldn't be
simply extended, the KOverlayIconEngine simply forwards the calls to
QIcon, which then forwards those calls internally to QPixmapIconEngine
(QIcon is really mostly just a wrapper around an engine).
There are two functions
QIcon KIconUtils::kIconAddOverlay(const QIcon &icon, const QIcon
&overlay, Qt::Corner position);
and
QIcon KIconUtils::kIconAddOverlay(const QIcon &icon, QHash<Qt::Corner,
QIcon> overlays);
The first one serves for single overlay icon, the second one is then for
multiple overlays, requires the QHash to be built up before passing
though.
REVIEW: 112079
DIGEST
KDE-PIM
KTp Logger
KTp Logger is an abstract interface, losely based on TelepathyLoggerQt
API with support for version backends - currently we only have a
TelepathyLogger backend.
By using this API instead of TelepathyLoggerQt directly we can simply
disable the backend on platforms where TpLoggerQt does not compile
(like Windows) without having to have many #ifdefs all around our
codebase.
In future we can have plugins that would provide access to log messages
from Facebook or Google Hangouts (if they ever publish an API) etc.
REVIEW: 112005
Office
Added support for choosing the composite op for Indirect Painting mode
Now the KisPainOpSettings-based class is allowed to choose which composite
op should be use for indirect painting mode. This is used by duplicate op,
which resets the op to COMPOSITE_COPY to store a real copy of the layer on
a temporary paint device.
Improvements to the Image docker
patches by Christer Stenbrenden ()
* Displays a color picker when hover over the image in the docker
* Image docker scales horizontally to fit filenames
* Use the theme highlight color for selected icon
Add additional configuration for the library to limit shown documents
Now the system library can be limited to certain folders instead of all
nepomuk known documents. In addition the Nepomuk NFO mimetypes tha shall
be used can be configured too
Multimedia
Bind more keys
M -> mute
Z -> prev
N -> next
Networking Tools
Pre-fill connection name, ssid and wireless security for uknown wireless connections
Add an option for hiding/showing wireless password
Add configuration for wired connections
User Interface
enable panel shadows
add shadows to dialogs
Utilities
Allow the server handler to open documents, if requested
Games
Ported to QML
Replace QGraphicsScene, QGraphicsView with KgDeclarativeView.
Use qml to manage user interactions and visual items.
REVIEW: 111049
Show the solution
Add new option to show the solution
Optimization
KDE Base
QueryLib: Remove optimizations on group terms
This isn't a proper fix, but more like a temporary patch, which I should
find a proper way to fix in the future.
REVIEW: 111496
Storage: Only allow one storeResources job at a time
This effectively only allows one item to be indexed at a time. So, when
emails and files are being indexed in parallel, only one item will be
indexed at a time, the others will be queued up.
This is important because with 4.11, everything has to be reindexed and
that seems to be causing a lot of virtuoso cpu usage as both stages of
file indexing and email indexing happen in parallel.
DIGEST: Do not allow items to be indexed in parallel - The cpu usage for
virtuoso is just too high.
KDE-PIM
Populate new contact alias, avatar and groups on initial load
Whilst this makes fetching data from Telepathy have a slightly higher
latency than inserting minimal data and then updating it the
stress this causes on Nepomuk and in particular anything using the database
having to update everything twice is much greater.
REVIEW: 112393
Other
Educational
finish porting plugins to Qt5
KDE Base
port notificationsengine to KF5
It compiles, but doesn't link yet.
port virtual desktops plugin to new framework
wheel events still have to be ported
Make notifications widget mostly work
There's still a lot of errors, something crippling functionality
visible, but it shows up, shows notifications and does a few things
more.
Factor drag instanciation out into a C++ helper.
This moves the drag source out of the task delegate, making
sure it survives the delegate in scenarios where it might be
destroyed prior to dropping (e.g. due to a virtual desktop
switch), avoiding a crash. I'd like to move this back into
QML in Plasma 2 if we can add a programmatic way to initiate
a drag to DragArea, or work through some of the event hand-
ling issues involved with having a single drag area below
the repeater (though this would mean pretty ugly spaghetti
code regardless), or QML gains the ability to reparent
objects including transferring object ownership (unlikely ...).
This also reduces the number of sub-items the task delegate
instanciates and specifically the number of mouse event-
handling items per task from two to one, simplifying the
scene mouse event filtering that's going on, which appears
to address a second rare crash (or at least it has become
unreproducable here), although further investigation to
prove this conclusively would be nice.
Multimedia
RIP silly interface macros
Upon week-long pondering I came to realize that in order to replace
the existing interface casting mess we do not need anything fancy
or anything generic. Why, you ask? Because we have well defined
interfaces to use...
Let's first look at why we need multi-cast targets anyway. Interfaces
use virtual functions -> backends implement interfaces -> backends
implement virtuals -> adding stuff to the interface breaks binary
compatibility with the backends. In short: without using new interface
classes deriving the old interface class we'd only be able to support
backends that were compiled against the latest version of libphonon.
Since we do not want that we dervice new interfaces and then cast to one
or the other.
So what's new?
A backing object (i.e. the backend implementation of the interface) can
either be casted to an interface version or not. This attribute does
not change over time, so repeated casting attempts will not yield
different results. Consequently we can simply store a casted version
as member somewhere (FooInterface *interface;). This renders the macros
useless as they basically just contained multi-casting.
That doesn't handle different versions yet. So the revolutionary solution
here is to simply have different members per version :O.
> FooInterface *interface; // Base interface of 5.0
> FooInterface51 *interface51; // Interface additions from 5.1
This relies on one very basic assumption: new functions are added to
the interfaces because we use them and therefor know where and when to
use them. If void bar() is introduced as new function in 5.1 then the
frontend (libphonon) function that needs it will have to use interface51
explicitly.
This finally renders the Iface template class useless as it's only purpose
was to contain on the fly multi-target casting in order to find an
interface version that is actually supported by the backend object.
It was pointless effort considering the basic assumption from
above anyway.
Note: changing behavior is not supported, as such a change would be rubbish
anyway. For example void foo() in 5.0 painted a lion but in 5.1 it is
supposed to paint a cat. Technically that can be represented through
q_interfaces() but we really don't care for that.
Utilities
increase amount of displayed users in the status bar