|Commits||1940 by 138 developers|
|Bugs Opened||191 in the last 7 days|
|Bugs Closed||158 in the last 7 days|
|Albert Astals Cid||
|Aleix Pol Gonzalez||
|Jeremy Paul Whiting||
Internationalization (i18n) Status
|lukas kde org||
|Joerg Ehrichs gmx de||
There are 69 selections this week
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
Well, more work for later.
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
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
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?)
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.
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.
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
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
Fix some magnet links not working in webinterface plugin
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.
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
Includegraphics dialog should recognise Postscript figures
Patch by Yngve Inntjore Levinsen.
Move getSearchPaths to Helper and implement
import package completion
Added highlight on click feature
Allow custom resolutions for PNG-export.
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
Launch new instances on Shift+Click.
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
Allow user to cancel out of the certificate accept duration dialog box.
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
Display also channel in the BSSID combobox
Add frequency to the BSSID combobox
Properly support x-scheme-handler/magnet mimetype, and drop old hard-coded magnet.protocol.
Patch from Rex Dieter
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
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.
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.
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
(Use -a -r to remove all index files).
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).
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.
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.
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
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.
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.
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
Merge branch 'frameworks'
DIGEST: frameworks is stable enough to become master \o/
Initial port to Frameworks
tested the part in KF5 based konqueror, local files open fine
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
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.