Issue 291
9th June 2013 by KDE Commit-Digest TeamContributors
This Week...
Statistics
Commits | 1724 by 159 developers |
Open Bugs | 21174 |
Open Wishes | 15841 |
Bugs Opened | 284 in the last 7 days |
Bugs Closed | 486 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
144
|
/branches/stable |
74
|
/trunk/l10n-support |
54
|
/trunk/KDE |
38
|
/server/lib |
31
|
/trunk/www |
26
|
/plasma/generic |
24
|
/libksieve/ksieveui |
14
|
/server/test |
13
|
/trunk/kde-common |
11
|
Files | Developer | Commits |
495
|
Laurent Montel |
173
|
432
|
Aaron J. Seigo |
145
|
165
|
Pali Rohár |
55
|
102
|
Albert Astals Cid |
39
|
105
|
Patrick Spendrin |
36
|
78
|
Vishesh Handa |
27
|
75
|
Alex Fiestas |
26
|
78
|
Burkhard Lück |
26
|
75
|
Jean-Baptiste Mardelle |
26
|
78
|
Sébastien Renard |
26
|
Internationalization (i18n) Status
Language | Percentage Complete |
Ukrainian (uk) |
100%
|
Swedish (sv) |
99%
|
Brazilian Portuguese (pt_BR) |
99%
|
Spanish (es) |
97%
|
Dutch (nl) |
97%
|
Polish (pl) |
97%
|
French (fr) |
96%
|
Estonian (et) |
96%
|
German (de) |
96%
|
Italian (it) |
91%
|
Bug Killers
Person | Bugs Closed |
Martin Gräßlin |
118
|
David Edmundson |
48
|
Dawit Alemayehu |
33
|
Jekyll Wu |
30
|
Pali Rohár |
28
|
Dan Vratil |
15
|
Kai Uwe Broulik |
15
|
Thomas Lübking |
12
|
Hrvoje Senjan |
10
|
Laurent Montel |
10
|
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 69 selections this week
Bug Fixes
Development Tools
Reenable including of inherited methods on adding messages to sequence diagram.
Fix builds for okteta in a separate prefix
The find-module already sets up the includedir to be
<prefix>/include/kasten2/okteta1 etc. so using the relative path here as
well breaks builds where okteta is installed in its own prefix and hence
there's no -I<prefix>/include on the compiler commandline.
KDE Base
Also set minimum size when it *is* constrained
FIXED-IN: 4.11.0
KConfig: fix long-standing bug where translations would not be loaded.
This happened in the following situation:
* KDEDIRS with two prefixes (let's call them global and middle)
* a kconfig file with the same name in both (e.g. a .desktop file)
* same value for Name[locale]= in both
* no override in the local directory (KDEHOME)
The Name= value in the "middle" desktop file would delete the
currently-loaded translated name, but didn't do so fully (it failed
to delete the one with bDefault==true, due to the line
"k.bDefault = false" a few lines before, which wasn't meant to
affect this). So when reading the Name[locale] in the "middle"
desktop file afterwards, it said "ok I already have it, do nothing",
and the english name prevailed.
The complexity comes from the fact that in such a setup, every key
is present twice, once with bDefault=false and once with bDefault=true.
(and then double that, for localized and non-localized).
After making bDefault=false operate on a copy of the key, a bug was
uncovered in the if (bDefault) block that was never executed before:
it should remove the key with bDefault==true, since it already did
that for bDefault==false (the 4th argument of the KEntryKey ctor).
Anyway, there's a unittest, so even if nobody ever understands my
ramblings above, at least it won't regress again.
REVIEW: 110865
Resource: Null guards for m_data
It is possible, during shutdown, for m_data to be null briefly (see
ResourceManager::cleanupResources). If a property were accessed
during this time, we could crash.
The patch checks whether m_data is null in various functions, and
returns empty items if so.
REVIEW: 110877
FileIndexer: Do not attempt to index files multiple times
If a file indexing job fails, set kext::indexingLevel to -1, so
that the next time the file queue fills, it is omitted.
This means we don't burn CPU trying to index things multiple times.
Almost all of the patch is actually moving updateIndexingLevel from
indexer/indexer.cpp to utils.cpp, and updating the build system to
match.
REVIEW: 110794
Don't access QDBusPendingReply value if it is not valid.
REVIEW: 110746
FIXED-IN: 4.10.5
Fix misuse of KUrl::relativeUrl, which returns relative urls (duh).
Not paths. So this was leading to double-escaping, especially after fixing
KUrl::relativeUrl to actually escape as it's supposed to do.
FIXED-IN: 4.10.5
It seems UPower sets the "Is Present" property to false for newly added devices that have
not yet been probed. This is a contradiction to the specs that say this property is invalid
for non-primary batteries (such as mice).
Now also taking that into account for non-power-supply-batteries. Have to see if that causes
regressions for other devices. At least my Trackball works better now ;)
rebuild quads when removing shadows for empty prop
FIXED-IN: 4.11
REVIEW: 110871
Do not try to raise a Plasma::Dialog which is a dock window
For a dock window the raise does not make much sense. A window manager
raises it anyway above most windows to get it into the dock layer. But
the raise can cause quite some side effects. KWin is setting demands
attention state in that case resulting in e.g. the notification window
having demands attention set. This conflicts with the general demands
attention handling like for example a chat window demanding attention and
emitting a notification at the same time.
REVIEW: 110864
Also update tooltip when DataModel changes
move focus to another view upon drop
When user drag and drop to another splitted view, the view will be activated,
thus if user close the split view, the view will be closed, while this is
usually the case when user copy file to remote/removable media.
REVIEW: 110167
Ignore a changed item if it cannot be found in the model
This prevents repeated attempts to reload the data for the non-existing
item. This was the root cause of bug 320791.
Thanks to Hrvoje Senjan and Jekyll Wu for testing the new code and
finding this bug!
Fix crash by not assuming standard shortcuts are present.
Neither of the two standard shortcuts used here are *guaranteed* to be
present (kdelibs filters both with some KAuthorized magic, and
help_contents also depends on the documentation subsystem), so avoid
crashing just because they're not around.
First noticed on my Gentoo-provided Konsole which is compiled without
the handbook USE flag.
(cherry picked from commit 8950584966bb77b19f77f64116c1f624c89f5236)
KDE-PIM
Fix Bug 320074 - KMail uses a wrong autocorrection filename
FIXED-IN: 4.11
catch a closeEvent in the IncidenceDialog, detect ifDirty and allow
the user a chance to continue without cancelling.
FIXED-IN: 4.11
REVIEW: 110900
The hash is indexed by instanceIdentifier, not uid now.
Fixes crash introduced by the recurrence-id stuff, everything should
be indexed by uid+recurrence_id
Fix highlighting of spelling mistakes
REVIEW: 110829
FIXED-IN: 4.11.0
Fix Bug 320862 - Import of mail address into addressbook: Capitals
turned into small letters
FIXED-IN: 4.11
Do not destroy the address book instance when updating settings
The previous code was leaking the abook instance every time we saved the
settings, which is wrong. Adding this to the setupModels()/nukeModels() is wrong
because that would break the existing contact windows.
REVIEW: 110830
Don't compress ModifyFlags into Modify operations
In a situation that ModifyFlags was emitted right after
Modify operation (for the same items), the ModifyFlags
operation was merged into the Modify operation, and thus
effectively lost, because addedFlags and removedFlags
fields are ignored in Modify operation.
Fixes a bug that caused emails that were marked as read (usually
during sync) to revert to unread state after next sync.
Fix Bug 319220 - Drag-n-Drop addresses removes name capitalization
FIXED-IN: 4.11
XtConnect - Use QDateTime consistently as UTC
Modify SQL to use ISO date string to specify that the time is UTC.
REVIEW: 110846
Fix skype protocol code which was incorrectly ported to KDE4
* Fix some missing calls to trimmed() string function
* Fix incorrect handling of duplicate skype messages
* This is propably root problem of bug 271277
cache: Remove mailboxes when they are, well, removed
Thanks to Caspar for the initial troubleshooting -- I've known about this bug
for several months, but haven't bothered to fix it properly. His analysis
pinpointed the root cause of the problem and made it easy to fix this.
REVIEW: 110896
Office
Don't mess up date input display format
Using any meta-character other than day, month or year in the KDE global
short date format setting screwed up the KMyMoney date input fields.
E.g. "%a, %d.%m.%y" caused the 'a' to be taken as separator where it
should have been the dot.
fixed disabled "Update" button after suggesting a new default category
The "Update" button remained disabled when a payee had already a default
category assigned and it was changed by clicking "Suggest a new
category" button.
Bug 317682 - Non-processing days no longer work for certain regions
This patch:
* Makes use of new HolidayRegion API, for KDE 4.5.0+, to generate list of regions with languages for holiday region selector in schedule settings pane.
Networking Tools
Remember to save zoom settings on change
Fix behavior on unloaded sites
- show url
- reload with f5
Features
Development Tools
Make it possible to pull includes and defines from the targets
To do this we need to forward the properties tuple all around the project
processing. This is important because it's a fairly new feature that was
introduced and was breaking for some projects, especially KF5 which should
be much more usable from now on.
Educational
Add edit state information to courses.
This commit introduces two new optional values for phrases:
i18nText:
the English text string that is defined in the course skeleton (if
present); this string will be used to notice changes in the skeleton
phrase wordings and possibly can used in the future for localization
editState:
this state reports whether the state of a phrase is "unknown",
the string is at least "translated" or if it is "completed" (including
phoneme tagging and recording)
These information can be omitted when distributing courses.
KDE Base
Sort batteries alphabetically and by power supply.
Power supply batteries come first, peripheral batteries come after.
Animate battery icon when battery percentage is below 5%.
It's a subtle nice animation similar to the charging animation in the popup.
Imho the battery almost empty state is not really alerting as it's just a plain
white rectangle. This nice animation makes the user more aware that he should
really plug in his battery or he'll lose unsaved stuff.
Keep plasmoid Active when PM is disabled, so you don't need to dig in the systray popup to turn it on again.
Usually you turn PM off temporarily when watching a movie or so. When your battery is fully charged, the icon
goes away. So you wonder where your icon went and have to dig in the systray popup to find it.
So it's a nice convenience to have the icon stay active while PM is turned off so you can easily turn it back on again.
And the tooltip now also tells you.
New Tool - nepomuksearch
This is a debugging tool which I have been using to debug search queries
and see how well virtuoso works. I think it's a good idea to ship this
by default since it will help users figure out if it's a problem with
Nepomuk or the application they are using.
Also, this shows search excerpts which are super useful!
KDE-PIM
Introduce MemoryCalendar::instance(QString identifier).
We didn't have a way, until now, to get an incidence by
instance identifier.
Instance identifier is the string returned by
Incidence::incidenceIdentifier() which is basically uid+recurringId.
If you had both uid and recurringId, you could just call
calendar->incidence(uid,recurringId), but if you had only the
instanceIdentifier, you couldn't.
instance identifier will be the remote id of akonadi items belonging
to ical resource (and others), currently the remote id is only uid
but that doesn't cut it because know we can have duplicated uids,
with different recurring ids.
Group multiple contact fields on the server
Normally a contact with multiple email addresses (for example)
will appear as multiple rows in the query.
Currently our model does not handle this and multiple emails/phones
etc. are missing in the model
By using group_digest we group all values into a single list on the
server
REVIEW: 110817
Office
Merge krita-resource-tagging-erius into master
I tested the functionality and that feels really quite good now.
With this patch, the tag categories the user can define for various
resources will update for any resource chooser of the same type.
Examples: Defining a new tag in the preset popup combobox will also create
the respective tag entry in the preset docker one. If both choosers
would display the same tag category, and the user adds a resource to the
category in one chooser, the view of the other would reflect the change
as well.
Both these things are achieved with a new set of signals and slots
regarding tag category creation and modification.
Other changes: Refactored KoResourceFiltering a bit to make intent more
clear and functionality a bit more fine grained, also fixed the naming
for its private support class members from m_foo to foo since the fields
are all public. Tag categories are now ordered in an alphabetical manner
at all times.
REVIEW:110541
Added UI for converting a Pixel Selection into a Vector Selection
Now you can click the menu and your selection will be converted into
a vector one. After this action you can edit it with a shape editing
tooleasily: rotate, scale, edid vertices.
DRAWBACK: you lose information about semi-transparent pixels during
this conversion!
The backward conversion (vector->pixel) happens automatically when you
start painting on a vector selection.
Multimedia
Creating model VideoDetailsModel to provide data for video selected by user to play in youtube
copying some files from Minitube to retrive realUrl (youtube video downloadable url)
GLWidget: show nice overlay for zones / markers
Now, youtube plays the selected video
goOneLevelUp and expand work in youtube
Networking Tools
Merging work from GSoC 2012 on Metalink HTTP Headers as planned feature for KDE SC 4.11
CCEMAIL
Use webkit general font to render rekonq pages
Utilities
Add an API for using different tray icons and context menu action icons.
Tray icons can be Plasma theme svgs that can't be used as the icons for context menu actions.
This fixes a missing icon for the software update notification's context menu.
FIXED-IN:2.1
sort keys by domain name of email address
FEATURE
REVIEW:109847
GUI
Other
make the first install run a bit smoother
* record all updates as completed when first installing (make sql)
* nicer output formatting
* run the create/drop commands as the postgres user so the script
can be run without su
allow setting an adminuser
this way people with 'normal' setups can use postgres, but you can
configure it to use bodega (or just leave away the adminuser altogether
and it will use the same user as used for normal access to the database,
which is backwards compatible)
store/:id/delete <-- the store name is now passed as part of the URL
Optimization
Development Tools
Simplify the way we store and fetch include directories
Use the property map instead of having separate variables for these. It will
make it easier to implement some further features and let the code be a
tiny bit more generic.
KDE Base
FileIndexer: Disable initial update by default
Do not scan for new files on startup by default. It consumes a lot of
CPU and disk load. The only reason this scan was there was to make sure
all the files are up to date in the event that Nepomuk had been swtiched
off.
Since Nepomuk should always be running, we can safely disable this
initial update.
KFileItemModelRolesUpdater: waste less ressources and fix some bugs
The main change in this commit is that we do not determine expensive
roles (like previews, mime types, etc) for all items, but only for the
visible ones and those close to the visible area or on the first and
the last page of the view.
This prevents that the CPU and hard drive are kept busy for quite some
time after entering a folder while all items are handled asynchronously.
There is one known problem at the moment: when sorting by "Type" or
another role that can be resolved by KFileItemModelRolesUpdater, the
icons of the visible items are sometimes not loaded while the sorting is
still in progress. I will try to fix this issue during the next few
days.
REVIEW: 110839
improve drop responsiveness ... a bit
QGraphicsView's drop method is a little broken; if you have a drag
and then it drags over another item that does not accept the drop
then your item gets a drag leave and then a drag enter immediately
really, it ought to only get a drag leave if the item the drag
passes over accepts the drag.
this makes proper state handling of drops in the panel where it
wants to only drop (and show a drag indicator) when a widget has not
accepted the drag pretty much impossible to get perfect.
appears some events also still just get dropped on the floor too
so it is possible to leave it in a state where the drag indicator
is shown.
i have l ittle hope of making this better for 4.x. need to confirm
that the drag support in QML scene graph is sane.
IndexScheduler: Slow down the BasicIndexer if we have too many files
When the basic indexer runs on full speed, it consumes a LOT of cpu.
Virtuoso easily reaches about 80% of one core. This might be slightly
annoying to the user, hence we slow it down a little bit once we hit 200
files, and again on 500, 750 and 1000.
This is useful in the case when someone upgrades to 4.11 and their
Nepomuk database is migarted. At that point all of their files will be
reindexed. We do not want to use too much cpu.
FileIndexer: Do not specify which file is being indexed
One can still request the current file via currentFile. It however does
not make much sense to send it along with the status string.
The user does not need to know about each file that is getting indexed.
Additionally, since we index over 15 files per second, this just leads
to a LOT of dbus traffic.
KDE-PIM
Nepomuk Feeder: tell the storage service to merge duplicates in the graph
This is a slightly costly operation, but it is required. Lots of emails
seem to often have the same contact in both the from and to. If the
contact doesn't already exist in the database, then 2 copies of it are
made. This slows down future email indexing related to that contact
cause the duplicate detection code always needs to choose one.
Merge branch 'vhanda/feeder'
Brings better scheduling for the feeders and makes it run silently in
the background. Also, results in massive cleanup of the entire code
base.
Another 15% less cpu time on loading big calendars.
By compressing calendarChanged() signals.
50% less cpu time when unchecking a big collection.
We don't need to call updateEventIndicators() when the removed
incidence isn't in the visible timespan.
15% less cpu time on loading big calendars.
Don't call KDateTime::toTimeSpec() if we don't need it.
Office
Improve painting of gradients by caching the values. It now takes about 40% of what is used to
for a 4000x4000 8bit image
Multimedia
Optimization: On X11/Linux, only draw Analyzer if on current desktop.
This nice trick can shave off as much as 50% CPU load from Amarok if
you can't see it anyway, and it also prevents unnecessary wakeups.
Networking Tools
[ #25424 ] Make load time 12% faster
Other
Accessibility
Detailed error reporting for the SPHINX recognizer
Because PocketSPHINX lacks proper error channel redirection, we write
the debug output to a file that is then read by the recognizer
abstraction. Sadly this won't work properly in multi-user environments
*and* introduces additional overhead but should at least cover the
standard use case of a local Simond.
KDE Base
FileIndexer: Always run the FileIndexing
Do not only run when idle. Not everyone leaves their system idle, and
their files should still be indexed.
The File Indexer will only index 1 file every 3 seconds and is barely
noticable. On idle it starts indexing the files at full speed.
Nepomuk: Remove the Controller
This is probably a controversial decission, but I do not think the
controller is required any more. It's main purpose was to inform the
user when files were being indexed, so that they could pause the
indexing if they wanted.
Since 4.10, our indexing speeds have improved dramatically. With 4.11,
the indexing speeds have improved ever more, also, we have better
scheduling in place so that the indexing happens slowly over time and
the user does not notice.
In the case when stuff (files and emails) are being indexed slowly over
time, one does not want the user to be aware of it by having an active
system tray icon.
The ability to pause/resume indexing is still going to be possible
through the KCM. It's currently hidden away a little bit, but other
commits will make it more obvious.
KDE-PIM
Correctly expose that ResourceState is a friend class.
ResourceState is a class that lives in kdepim-runtime and is outside the
Akonadi namespace.
clang < 3.3 and all versions of GCC erroneously consider the friend
declaration in
namespace N {
class C {
friend class A;
};
}
class A {
};
to refer to the class A outside namespace N (technically speaking, this is
item 3 of section 7.3.1.2 of the C++ standard). clang 3.3 fixes this
behavior and makes the build of kdepim-runtime fail.
Fix it by explicitly referring to ::ResourceState in the friend declaration.
Alternatively, we could remove the friend declaration and make
ResourceState::collectionsRetrieved use ImapResource::Append instead of
Akonadi::ResourceBase::Append (since ImapResource also declares
ResourceState as a friend).
REVIEW: 110777