Issue 365
9th November 2014 by KDE Commit-Digest TeamContributors
Danny Allen
Giacomo Barazzetti
This Week...
Statistics
Commits | 1940 by 138 developers |
Open Bugs | 23136 |
Open Wishes | 16108 |
Bugs Opened | 191 in the last 7 days |
Bugs Closed | 158 in the last 7 days |
Commit Summary
Module | Commits |
/branches/stable |
94
|
/trunk/l10n-kf5 |
92
|
/trunk/l10n-kde4 |
71
|
/trunk/l10n-support |
56
|
/trunk/www |
44
|
/krita/ui |
16
|
/libkcal/incidenceformatter.cpp |
12
|
/branches/kdepim |
12
|
/krita/plugins |
11
|
/libs/editor |
9
|
Files | Developer | Commits |
555
|
Laurent Montel |
189
|
357
|
David Faure |
120
|
243
|
Albert Astals Cid |
86
|
216
|
Gilles Caulier |
74
|
153
|
Jonathan Riddell |
51
|
126
|
Aleix Pol Gonzalez |
43
|
120
|
Boudewijn Rempt |
42
|
111
|
Burkhard Lück |
38
|
102
|
Jeremy Paul Whiting |
37
|
108
|
Yuri Chornoivan |
36
|
Internationalization (i18n) Status
Bug Killers
Person | Bugs Closed |
Boudewijn Rempt |
30
|
David Edmundson |
23
|
Jan Grulich |
11
|
Dawit Alemayehu |
10
|
Eike Hein |
9
|
Gilles Caulier |
9
|
Christoph Feck |
6
|
lukas kde org |
5
|
Martin Klapetek |
4
|
Joerg Ehrichs gmx de |
4
|
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
Don't offer completion in strings and comments
Fix assertion about unknown projects in the IDAIM.
The problem was that projects opened before the IDAIM plugin gets
initialized where never added.
To add these in the ctor (synchronously! otherwise we get races),
we must restructure the code a bit. It is notoriously overdesigned
and really should be simplified. Why is the CompilerProvider a plugin?
Why is there ICompilerProvider? Why the distinction across so many
libs/plugins?
Well, more work for later.
KDE Base
Validate timezone name before setting
This patch ensures that the symlink /etc/localtime always points to a
file in /usr/share/timezones and not an arbitrary file in a user's home
directory.
Preserve whitespaces in Alert window's text.
Other browsers do the same and it helps debugging stuff.
Use the correct export macro in PasteJob.
Was using KIOCORE_EXPORT despite being part of KioWidgets.
On Windows that made it use dllimport when compiling itself,
which broke the build.
fix opening a removable drive when the mountpoint contains a space
KPassivePopup - Set default hide delay
REVIEW: 120854
Alleviate the annoyance of Job Finished notifications
Whenever a job disappears for whatever reason (cancelled, finished, error, ...) we display
a persistent "Job Finished" notification. When the user explicitly cancels the job, there's
no need to confirm since the job will be gone. This solution is not ideal since we just track
it inside the plasmoid (ie. when you click Cancel in a "Override this folder?" dialog, it will
still show the notification) but at least the obvious "You don't say" moment is gone that way.
Ideally in the future whoever is responsible for the job (KIO, ...) should be given the
responsibility for an appropriate notification since the owner knows best why a job quit.
Sync default favorites to Kickoff again.
Picks up the default browser via a libtaskmanager-style preferred://browser
favorite entry, with the same logic as in libtaskmanager and Kickoff.
fix the action icon and progress bar for optical discs and MTP players
get the mounted state using the dedicated isMounted(udi) function;
this allows to simply eject e.g. an Audio CD which can't be mounted otherwise.
Also remove the action icon from an MTP player, it doesn't make sense
there and is non-functional anyway (one cannot mount/unmount it)
Install taskmanagerrulesrc again and add a mapping for Google-chrome-stable.
Google Chrome Beta uses a WM_CLASS matching it's .desktop storage id but
the stable version does not.
Remove uneeded code to stop alt+f4 killing the window
This fixes ksmserver not being able to logout or shutdown correctly as
it was unable to kill Plasma.
Tests showed that pressing alt+f4 no longer kills the window anyway
(possibly a change in kwin?)
REVIEW: 121004
KDE-PIM
kioslave: fix SMTP SIZE handling, add test for it
CppCheck detected unused branch in capabilities.cpp. It was unused
because variable 'size' was never changing after initialization. Now
kioslave can change it and handle SIZE properly.
Office
Don't crash the grid brush if no current node is set
This is a stop-gap: the real issue is figuring out why we don't set
the node on the preset's settings when selecting it anymore. However,
it never hurts to be careful with pointers.
Skip color profiles with named colors
The Crayons and X11-colors profiles installed by colord claim to be
LAB profiles, but contain named colors and cannot be used in Krita
to convert colors, so skip those.
Fix crash when using paintops that need a node
We need to set the actual current node of the active image, not the
node selected for the previous preset.
Refresh the image graph so the filter dialog can show a preview
We want to show a preview of what the filter will do, so we need to feed
the dialog the new adjustment layer's original paint device. But unless
we synchronously recompute the image projection, that original paint
device will empty at this point.
Check that the image is homogenous before converting to PSD
PSD cannot handle images with layers in different colorspaces and bit
depths, so give an error message if that's the case.
Multimedia
Fix crash with LastFM during startup
Amarok crashed during startup reproducable due to virtual function
being called while still in constructor.
Don't increase iterator after it's already at the end
Don't increase it after it's already at the end. We are increasing the iterator inside of the loop, and as part of the for so it'll be past the end and the it != l.constEnd() will be true and we will crash.
Changed the code so that it only increases the iterator if we know it's not at the end already.
Did some stand-alone code that runs over
const char * processResult = "p1445\ncchrome\nf5\nf6\nf12\nf13\nf16\nf17\nf21\nf22\nf26\nf27\nf32\nf33\np1453\ncchrome\nf6\nf7\np1528\ncdbus-launch\nf8\np1530\ncenlightenment\nf5\nf6\nf10\nf11\nf34\nf37\nf38\np1533\ncefreetd\nf6\nf7\np1540\ncgvfsd\nf6\nf7\np1565\ncterminology\nf5\nf6\nf10\nf11\np1566\ncfirefox\nf10\nf11\nf12\nf13\nf14\nf15\nf22\nf23\nf161\nf162\np1619\ncenlightenment_f\nf5\nf6\np1631\nctempget\nf1\nf5\nf6\nf37\nf38\np1679\ncat-spi-bus-laun\nf5\nf6\np1736\ncplugin-containe\nf6\nf7\nf11\nf12\np1822\ncthunderbird\nf10\nf11\nf12\nf13\nf14\nf15\nf21\nf22\nf44\nf176\np2261\nckdeinit4\nf0\nf3\nf5\np2263\ncklauncher\nf0\nf3\nf4\nf5\nf6\nf10\nf11\np2265\nckded4\nf0\nf4\nf6\np2267\ncgam_server\nf6\nf7\np2346\nckuiserver\nf0\nf4\nf6\np2381\ncknotify4\nf0\nf4\nf6\np2633\nck3b\nf5\nf6\nf14\nf21\nf22\nf25\nf26\nf28\nf33\nf34\np2791\nclsof\nf0\nf1\nf2\nf4\nf5\np2792\nclsof\nf3\nf6\n";
And it crashed, now doesn't crash anymore
REVIEW: 120944
FIXED-IN: 2.0.3
scriptable service: fix a crash due to double deletion of an object
Thanks go to Ralf Engels for pointing out the problematic code.
The problem is IMO not directly in insertItem() using KSharedPtr, but
in addTrack() which creates a KSharedPtr out of a track pointer, but at
the same time calls delete on the track pointer in some circumstances.
Once a pointer is KSharedPtr-managed, delete must not be used.
I've kept KSharedPtr for track in insertItem(). While using it is a bit
inconsistent wrt. surrounding code, it should have no effect (the crash
is IMO caused by addTrack() code alone). It feels more correct as it
prevents a hypothetical (currently unreachable) memory leak.
Interested folks, please test whether this really fixes bug 334479 for
you.
FIXED-IN: 2.9
Networking Tools
Fix some magnet links not working in webinterface plugin
REVIEW: 120808
Fix double click not working when double clicking on subdirectory in fileview
Show name of the column under the mouse pointer at the top of the treeview header context menu
This makes it easy to hide a column. We can right click on the column
we want to hide and select it from the top of the list instead of having
to go through the big list and selecting the required one from that.
REVIEW: 118913
Fix bugs in pidgin history import for kopete
Thanks Timo Schlüßler for patch!
REVIEW: 6561
CC
User Interface
step into the focus chain at the beginning
if the index is 0, we close the circle, but if the
index is -1 (invalid) we're "somewhere" and step
into the focus chain - reasonably at the beginning
REVIEW: 121024
Added WeakPointer typedef to oxygendecorationdefines to allow compilation against both KDE4 and KF5
Use WeakPointer<Client> inside Oxygen::SizeGrip to keep track of client deletion and avoid crash.
Utilities
Includegraphics dialog should recognise Postscript figures
Patch by Yngve Inntjore Levinsen.
Features
Development Tools
Move getSearchPaths to Helper and implement
import package completion
Educational
Added highlight on click feature
REVIEW: 118717
Allow custom resolutions for PNG-export.
Graphics
Added a nice dialog to accept or decline a tag proposed by face recognition.
Apply patch #89410 from Vincent Tassy about to add Album Category as a search criteria in advanced Search tool
FIXED-IN: 4.5.0
KDE Base
Add a small utility to sync kde5 config's back into kde4 settings
I dont' think it needs to be in frameworks, as the only user of
backporting settings will be the plasma kcms, but it's code that's
duplicated across these KCMS at the moment
REVIEW: 121002
Implement KPluginTrader::query() using KPluginLoader::findPlugins()
REVIEW: 120199
Launch new instances on Shift+Click.
Bring back Notifications applet settings UI
REVIEW: 121006
Make KNotificationPlugin a public class
Now it's finally possible to write custom extension plugins for
notifications
REVIEW: 120728
Add thumbnailAvailable property to PlasmaCore.WindowThumbnail
This property tells us whether a thumbnail is actually being rendered or it has
fallen back to the window icon
REVIEW: 120946
Allow user to cancel out of the certificate accept duration dialog box.
FIXED-IN: 4.14.3
REVIEW: 120975
Office
feature: New advice detecting scheduled operations having date not aligned with the last inserted operation
Add support for 'NOT LIKE' SQL operator
from Calligra master 26818f22b2669f72a6
feature: New dock to be able to see all messages displayed
feature: Show sum of spendings in tables when operations are grouped
Networking Tools
Display also channel in the BSSID combobox
Show emoticons in contactlist
The contactlist no longer shows emoticons in recent kopete versions. This patch
re-enables this feature for both status title and status message.
Thanks Stefan Geuns for patch!
REVIEW: 2542
CC
Add frequency to the BSSID combobox
Properly support x-scheme-handler/magnet mimetype, and drop old hard-coded magnet.protocol.
Patch from Rex Dieter
Review: 108648
Implement Unique Mode Properly in Rekonq
The current patch just makes it possible to open several Rekonq
applications. It does not do the right thing when a Rekonq window is
already open in the current activity and a user clicks a link elsewhere
(step 4 in the Testing Done section) because it starts a brand new
Rekonq window, but that's a different patch. It also does some funky
thing asking you if you want to restore the previous session when
nothing has crashed
REVIEW: 120794
User Interface
Add implementation for wl_data_device in Server and Client
On the client side anything related to wl_data_offer is not yet
implemented.
Add DataDeviceManager and DataSource in client and server
Basic implementation of the DataDeviceManager and the DataSource it
creates.
Still needs support for DataDevice and DataOffer to complement the
API.
Utilities
only show those algorithms supported by the GnuPG binary when creating a key
Make the file browser widget's LaTeX filter toggleable
Initial patch by Ryan McCoskrie.
Optimization
Development Tools
Rework message ownership when passing from / to Transceiver.
Since Message is noncopyable but movable, there is no reason to use a
unique_ptr - the move semantics are fully built-in with the d-pointer
and all. If we have an indirection, might as well use it.
Also add a cookie parameter to PendingReply, which should often save
its clients a hash / map if they intend to do any routing of their
own. Save a pointer elsewhere in PendingReplyPrivate by exploiting
the fact that transceiver (which supplies a reply) and reply are
never relevant at the same time.
KDE Base
Run the query through KServiceTyperTrader as well
to allow performance comparison. This actually reveals that we're only
faster when querying for the first time. All subsequent queries are
blazingly fast (down to 32 microseconds on this machine), KPluginTrader
without caching takes in the range of 24 milliseconds, with caching it
gets down to 4 - 6 milliseconds.
Perhaps we can speed subsequent queries up by keeping the json structure
read from disk in memory to speed up subsequent queries as well.
In any case, with caching it's much faster already.
Note: to create the cache files, you need to build
kcoreaddons[sebas/kpluginindex] and run
kplugin-update-index -a
(Use -a -r to remove all index files).
KDE-PIM
Do not consult all messages for flags when just a single one got deleted
This cuts the time spent in handleExpunge to about a 1/3 compared to
HEAD~1. The total savings compared to the state before we switched to
QVector amount to a speedup by a factor of eight (16e9 callgrind
instructions -> 2e9 instructions).
Change-Id: I6b45e15ab689accf458c421e29161e010aad4e91
Use iterators instead of operator[] for iterating a QVector
Both of these should be essentially free, but it happens that the debug
builds of Qt use boundary checking in the operator[], but not when using
iterators. Since there's absolutely no reason to use boundary checking
with this already-checked iteration, let's make sure it isn't needlessly
slow even in debug builds.
Change-Id: I9787c05f6489789bb1dad7bd2ea762436fc87fd4
Defer UID map saving when there's heavy incoming traffic
Previously, the seq->UID map would get rebuilt and saved into the DB
upon every EXPUNGE. That was quite expensive, as the test which deletes
15k out of 30k messages quite clearly indicates. This code makes sure
that the rate in which the data are saved is limited.
Originally, this was implemented by maintaining a pretty short time
window. The goal was to prevent excessive actions while the responses
still continue to flow, but at the same time to avoid excessive delays
in case the burst stops. I wanted the time window to be reasonable small
so as not to require adding multiple qWait()s into other tests. A single
EXPUNGE is typically less than 18 bytes ("* 1234567 EXPUNGE\r\n"), so in
order to send 100+ of them in a 10ms, it could require a 180 kBps, i.e.
about 1.44 Mbps bandwidth (at least as a burst). That might indeed be a
bit too high for a cell phone connection :(, as Thomas pointed out.
That's why the time window is a bit longer now.
Also make sure that no events get lost when the KeepMailboxOpenTask dies
prior to a timer firing, such as when switching mailboxes.
Change-Id: I77e638b3278918961d316cf4a615b5c78d15a79d
Use QVector for passing lists of UIDs
OK, this is a big patch. Stuff started when I was profiling quite a slow
operation of mass expunges which was reported by Luke-jr on IRC. Some
profiling indicated that quite a lot of time was spent within
QListData::append. Adding a call to QList::reserve didn't help that
much, while replacing this with a QVector led to interesting results.
The cache format stays the same -- QDataStream uses the same
serialization format for both, which is cool.
Unfortunately, this change propagated into quite a few places. As I was
modifying the code anyway, I decoded to do it properly, with typedefs
and what not. Of course, QVector and QList have slightly different APIs,
especially the removeOne/removeAll/removeAt vs. just remove (until Qt
5.4 which actually added compatibility API, but we cannot depend on 5.4
yet).
The speed improvements suggest going from 2.5 to 1.5s on a synthetic
benchmark, Looking at callgrind's output, the total time spent in
Imap::Mailbox::Model::saveUidMap went from 34% to ~17%, which is IMHO a
pretty cool improvement.
Majority of time is now spent in comparing strings when determining
unread status of flags -- that's the next item on my list, because this
test exercises that code path a lot, again in an O(n^2) manner.
Change-Id: Ifb86903118b996c4bf5764965c06f4145eda6e07
Speed up rechecking of message flags
The old code was calling QString's operator==, which in the end leads to
comparing stuff byte-by-byte just to see if they happen to be the same
(with, I hope, a quick path for comparing identical objects). However,
we have an architecture which guarantees that the system flags are
always implicitly shared, and hence their D-pointers are the same.
This change speeds up things at least by a factor of two by comparing
the D-pointers directly. As a bonus, it also adds an optimization for a
special case of TreeItemMsgList::recalcVariousMessageCounts by looking
for the two flags which are needed at once.
Change-Id: Ie240307550b3c11f8c782493194bbe7ac0c5fed8
Security
KDE Base
Do not pass ntpUtility as an argument to datetime helper
Passing the name of a binary to run to a polkit helper is a security
risk as it allows any arbitrary process to be executed.
This patch moves the detection of ntp utility location into the helper
function.
REVIEW: 120977
Other
Development Tools
Initial port to Qt 5 / KF 5.
It seems to load and work OKisch now.
Educational
Port KBruch to KDE Frameworks
Merge branch 'frameworks'
Conflicts:
RocsCore/DataStructures/LinkedList/rocs_ListStructure.desktop
RocsCore/DataStructures/RootedTree/rocs_RootedTreeStructure.desktop
RocsCore/LoadSave/Plugins/kmlFileFormat/rocs_kmlfileformatplugin.desktop
DIGEST: frameworks is stable enough to become master \o/
Python 2 backend ported to Qt5/KF5
DIGEST: Python 2 backend ported to Qt5/KF5
Graphics
Initial port to Frameworks
tested the part in KF5 based konqueror, local files open fine
KDE Base
Remove keyboard click volume
They keyboard daemon had a weird option for making your system make a
short beep whenever you pressed a key.
This doesn't work and doesn't seem particularly useful anymore
REVIEW: 120352
Update default applications in kickoff
Instead of defaulting to konqueror find the first browser from a list
Change konsole to ktp-contactlist, we want to appeal to non geeks
Change kmail for kontact, we provide a lovely PIM suite so we should show it by default
Change kwrite to Kate, everyone knows how to use tabbed interfaces these days
FEATURE
CHANGELOG
REVIEW:120538
GUI:
DIGEST:
Multimedia
Simple new build files, main file.
This is a simple version of the build files and a main.cpp
with some basic stuff.
The CMakeLists.txt files should get extended when functionality
is added to avoid unused dependencies.