Issue 3123rd November 2013 by KDE Commit-Digest Team
|Commits||2031 by 139 developers|
|Bugs Opened||307 in the last 7 days|
|Bugs Closed||320 in the last 7 days|
|Aleix Pol Gonzalez||
|Sergio Luis Martins||
Internationalization (i18n) Status
|Sergio Luis Martins||
|José Manuel Santamaría Lema||
|Martin Tobias Holmedahl Sandsmark||
|Aleix Pol Gonzalez||
There are 72 selections this week
Escape cdata sections in string replacer xml export and unescape on import.
Thanks to Chen Levy for the bug report and patch.
Fix crash in marchingsquares
Make sure we don't overflow when looking for the triangles... I think.
Improve the tests while at it.
Don't crash when downloading .tar.7z files with KNS.
If I just download it manually, uncompress the *.tar.7z file and feed the kvtml
file into parley it doesn't crash.
There are 2 separate problems involved here:
1) KNS doesn't work with *.tar.7z files.
2) Even if the the file format of the file downloaded from KNS isn't recognized
for now, parley shouldn't crash.
The patch in this reviewboard is intended to fix the problem 2) and it was made
with help from Aleix Pol (thanks!).
Just in case you are curious about the problem 1) - the related code from
kdelibs is the following:
Here knewstuff tries to use KTar to deal with the downloaded file.
* files under kdecore/compression/*
Here is kfilterdev, if I'm not mistaken this is what KTar uses to deal with
files compressed gz,bzip,etc. The thing is: there is no filter for *.7z files,
so that's why they can't work in KNS right now.
Fix usage of polar functions with FunctionEditor
Make sure theta grows towards the correct end
Support rotation using arrow keys
This is a regression.
Make it possible to Zoom in and out using W and S.
This was a regression from the porting away from Graph3D
Support roots with an imaginary part
Use the same Variables in the console and 2D
apply patch from Jiri Slaby to prevent RajceExport tool crash at dialog init.
Apply patch #82683 from Tim Newsome about to make smug export work with smugmug's new interface.
Changed most http_post() calls to get() calls. Apparently POST doesn't
work with the new interface albums.
Upgraded the interface we use from 1.2.0 to 1.2.2, since that's the
latest version in the 1.2 train.
Sort the list of albums that we receive from smugmug before presenting
it to the user.
add eventloop in ProgressManager to wait progressitem deletion is complete when slotAbortAll() is called.
By this way, if user close digiKam when progressitems are currently running in background (as some maintenance tools),
this prevent violent crash due to close remain active objects in memory.
Change sidepanel events from activated to clicked
Change the events due to the single click, double click setting
in KDE not being taken into account.
swap file recovery: properly restore cursor position
Now undo and redo cursors are set correctly for the data that is
restored with the swap file recovery process. Thanks to this, you
can now undo/redo and see what text changed. This was not possible
before. So this is a nice improvement, since you now really know
what data is recovered, if you want this information.
Fix krunner calculator letter check
To make it work, you have to start or end the calculator
input with a '=' symbol again. For inputs not containing
letters, you can still omit it.
Fix brightness not being correctly reset on AC plugged-in
immediately trigger the simulated user activity by hand, otherwise it
will only be called later in mainloop after load the new profile.
Ensure neither queue nor thread keep a reference to a previous job.
See comments on JobTests::JobsAreDestroyedAfterFinish:
Verify that neither the queue nor the thread keep a reference to the job
after completing it.
This is necessary because user-allocated objects like queue policies may
be registered with the jobs. If the jobs stick around until the thread
or queue are deleted, the user-allocated objects may have gone out of
scope or been deleted already, causing potential errors. From
ThreadWeaver's point of view, a job seizes to exist once the processing
thread asks for the next job.
[kwin] Do not allow Qt to raise decoration widget above the Client
If the user actions menu is closed Qt looks for a QWidget at the mouse
position. If it finds one it tries to activate and raise it. If the
QWidget at the mouse position is a window decoration, it gets raised
above the Client. This makes the window unfortunately unusable.
To prevent this from happening we listen for the ZOrderChange event
in our event filter on the decoration widget and unconditionally lower
the decoration widget again - we never want the decoration widget to
be above our Client, so we can just always lower it. We have to use
the low level functionality and cannot use QWidget::lower as that would
result in a loop.
Fix crash when removing a notification while we are adding one
Reading https://bugs.kde.org/show_bug.cgi?id=311871#c41 you can see that it happens that we are doing a
78 0x00007f4eff8c5ffb in QDeclarativeListModel::insert (this=0x1ebbdb0, index=0, valuemap=...) at util/qdeclarativelistmodel.cpp:436
and then we end up reentring and doing
16 0x00007f4eff8c737f in QDeclarativeListModel::remove (this=0x1ebbdb0, index=6) at util/qdeclarativelistmodel.cpp:402
Some of the stuff that depends on the QDeclarativeListModel doesn't seem to like getting a "remove" while a "insert" is happening and to be honest m in no mood to fix that, so basically I'm protecting against that happening in our QML code. From what i read you have to be extremely unlucky since the timer only triggers each 10 minutes and it has to trigger at the same time a notification is being added, but oh well, the backtrace points to it and two different people in two different systems say it has stopped the crashes so I don't think it hurts to have this in.
Acked by Aaron J. Seigo
fix kcm botching unrelated user settings
Don't send CANCEL to attendees when deleting an event we didn't organize.
When deleting something that's not ours, only a REPLY with
PartStat=Declined must be sent, and to the organizer only.
Due to a bug, CANCEL was being sent to everybody, as if we were
Unit-test will go in master.
Bug 318394 should be similar, but for modification instead of deletion.
Fix Bug 314825 - KNotes opens an empty note on startup
Wait for changes from resource to be written to Akonadi before marking change as processed
This fixes a problem with invalid RIDs after inter-resource moves.
When there is an another changeReplay for the just moved item
scheduled in the new parent resource, the item will have invalid RID
(or rather RID assigned to it by the previous parent resource).
It's because the ItemModifyJob dispatched from ResourceBase::changesCommitted()
with the new RID is not finished yet when the next task is dispatched,
and so the item in resource's EntityCache is not invalidated
and the resource will use it instead of the updated one.
By waiting for the ItemModifyJob dispatched from changesCommited()
to finish before marking the change as processed and dispatching
next task we make sure that in case the next task involves the
same item the change will be stored in Akonadi and the item will
be invalidated in local caches, forcing the resource to fetch the
item again from Akonadi before starting the task.
This fixes 'Invalid uidset' error reported by IMAP resources after
the MailDispatcher agent moves the mail from local Outbox to remote
Sent folder and updates it's flags.
Fix Bug 231540 - Alternative row colours in contacts list
Apply patch from wuertz
MySqlEmbeddedStorage: fix failure to start embedded server because of wrong options
This was because we were passing --myisam-recover-options and this
options does not exist in MySQL 5.1 (and MariaDB). The *command-line*
option (as opposed to system variable name) to set recovery mode is
MySQL <= 5.1: --myisam-recover 
MySQL >= 5.5: --myisam-recover-options, should also accept
MariaDB: --myisam-recover 
*However*, the *system variable name* has always been named
myisam_recover_options, that's why it worked in Amarok <= 2.8.
No need to backport this because of the above.
Simple fix is to rename the option to --myisam-recover
Fix compilation with libc++. Workaround for QTBUG-25960.
Due to QTBUG-25960, compilation would fail with libc++ when STL algorithms
are used with Qt iterators. This patch works around the issue.
This should also fix compilation on OSX and FreeBSD, where Clang and libc++
is used by default.
Fix sorting in MUC contact list
Password input should be enabled, because the default value is store
Allow to have same connections under different names
i.e you can have two connections for some AP with different IPv4 configuration, before there was only one of them
Fixed window positionning issues when setting translucent background.
Patch is based on QtCurve code.
Many thanks to Yichao Yu
Fix the check for ignored paths.
Fix accepting multiple license agreements
This patch fixes the handling of more than one license agreement by
setting d->handlingActionRequired = false in requeueTransaction().
Before, this was still true when entering slotEulaRequired() for the
second license. That one was not shown therefore, but Apper aborted
The game will never end if none of the players has any planets. This
patch makes sure that the game can only be started if all non-spectator
players do have at least one planet.
Some internal variables are renamed to make the name match their
content/purpose much better.
Fixed the overwriting of the space-titles
init the tooltip manager
proxied connections are "close"
when doing proxy connection to the server, seems that if they are keep-alive only one request will work, subsequent requests will get lost. Probaby is an issue of life-span of the proxy_request and proxy_response objects
Improved package dispatch to the different plugins
Before this patch, all plugins had to discard received packages that were
not for themselves. This could be a security problem (a plugin could sniff
other plugin's packages) and also adds some complexity and processing.
This patch makes the device instance aware of what services are required
by the different plugins and when a package is received the corresponding
plugins will get the package.
These services will be listed on the plugin's desktop file, so the user
can decide whether to enable a plugin.
Note that this only works for receiving, not sending.
Add "cost per call" column in the call view.
This is especially useful when comparing two callgrind runs, if the number
of calls to the methods can vary between runs (e.g. number of widget repaints).
This column is unaffected by the "use percentages" setting, which makes
it even more useful (one can look at overall percentages and at cost-per-call
at the same time).
Paint full splash screen in QML.
This is especially nice since it reduces the maintenance whenever
we increase the version number. Now we simply show the version
of the compiled KDevelop application which is much better than having
to update a pixmap everytime.
And if the QML fails to load for some reason, well its a bug and
should be fixed. Having a pixmap fallback for that does not make
sense in my eyes.
Create a new calculator plasmoid, based on qml
It will deprecate the still QGV-based one, will do after KDE 4.12 branching,
hoping to minimize disasters
merge branch 'custom-lessons'
And with that, there is an easy way again to train on self-supplied
texts in KTouch. This fills the biggest remaining feature regression
in comparison to KTouch 1.x, only in a much improved way.
Instead of providing a simple file dialog to pick a text and use
that immediately, we organize the custom lessons in a special
course so the user can track his progress on these lessons like
for the built-in courses. Also the custom lessons are kept separately
for each user profile and keyboard layout.
In the editor for custom lessons, a much simplified form of the full
blown course editor, we offer the usual quality checks. This is
important, so the user has a chance to identify characters he can't
type with his keyboard before he actually hits them during training.
Pass down to lpr the printer margins
This makes automagically work the printing on printers with
hard-margins since the QPrinter dialog margins are initialized to the printer
hard-margins. If you still want the old and mostly unuseful
behaviour of not having any margin (and thus your printer not printing things on the borders) you
can always set the margins to 0 in the dialog
FlickrExport: apply patch #80324 to try to automatically guess new flickr set name from image folders
Systemtray: Delegate Sizing
This commit makes the gridview more dynamically sized. I think in a
world of Retina displays, we should move away from pixel-based sizes as
much as possible. From this point on, protocols are simply not allowed
to determine the size of their items. We can still apply tricks in the
possible x11 protocol, and have support for images and movies of fixed
size working well. The input area absolutely has to be client-defined,
we can't have applications tell us "the interactive area for this app is
22x22 pixels" -- that is not going to happen, as it simply breaks on
different dpi *and* input devices.
As such, the item size is now more dynamic, the logic is not complete
yet, but the direction of this gets clearer. This makes the "basic"
itemSize a "recommendation" to the UI for now (it will become an even
more internal detail later).
Otherwise, the system tray is coming along nicely. What works:
- Display of status notifier items (not interactive yet, just icons)
- Embedding of plasmoids such as battery, network
- Status: items are shown and hidden (moved between the models, really)
A few things that I want to improve at a later stage is the messy popup
situation. We can probably embed the popups of the plasmoids and
statusitems into the systemtray popup and streamline this navigational
process a bit, while keeping the same interaction model.
We're obviously not feature-complete yet and it's all very
work-in-progressish, but it's "coming along nicely". :)
Here's a screenshot: http://i.imgur.com/LuQdkDL.png
Improve mtp support
A simple hack to make media players more distinguishable until a better solution can be integrated in KF5 as discussed with afiestas at Akademy 2013. Follows up on his patches that never got integrated.
Returns the product instead of the description.
Approved by Lukáš Tinkl and Àlex Fiestas
Rework superbuild to make it easier to use
One can now build a framework with superbuild using `sb_<framework>` or build
all frameworks with `sb_all`.
port to UPower 0.99.0 which changed a couple of signals
Bookkeeping for tasks
This makes migration of task objects between shown and hidden work.
Depending on their status, and the shown property of the task, the task
is moved between the lists when its status updates. This commit also
fixes forwarding the status in the PlasmoidInterface, which wasn't wired
Memory management has changed a bit, too, we now keep references to the
declarative lists in the private object.
In order to make shown / hidden preferences for tasks work, we need to
book-keep this information in host, not in the individual tasks (as
these are global objects, and we want to change configuaration per host.
Implement IdleJob - client-side IDLE handler
IdleJob handles the entire IDLE session. It sends IDLE START
on start, automatically parses filters to generate IDLE FILTER
command and also listends for incomming notifications. Incoming
notification is parsed into IdleNotification and notify() signal
is emitted once the entire batch is received.
Add dialog box to show which notes will removed
Added scripts for automatic price download
The two scripts provided by Joe W. Byers for automatic
price information download have been added. They need
to be configured before they can be used in another
environment than the one of the original author.
Added an option for High Quality image downsampling for OpenGL canvas
1) This option activates a custom shader, which filters the image
with a variation of trapezoidal filter using "one-but-nearest"
mipmap level. This gives quite decent results, although it might
be not perfect from the maths point of view.
2) The patch also sets the default texture size to 256. Otherwise
activation of mipmap generation will make the painting with smaller
brushes insanely slow. This happens because the mipmap is regenerated
for the whole texture every time we change a small portion of it.
[ #33826 ] Add ability to add contact from File menu
Display loaded password in the VPN secret dialog
Patch from Peter Klotz
Improve the handling of passwords with respect to reconnection
1. Stop trying to reconnect if the password is bad/goes bad.
2. Don't get into reconnect mode if we don't have a password.
3. Don't keep an extra copy of the password.
4. Fix a pre-existing error where an auth failure due to excessives
retries is elided by a less specific message.
Make it possible to disbable notifications for certain highlights.
This is useful for "negative" highlights.
Added rewind and fast-forward buttons to MPRIS controls
a very raw activity manager
it's just a port of the old qml code, will need more rework
a generic asset handler
it just installed into Downloads and uses xdg-open to open the result
Added a settings activity to change the publicly visible device name
When changed the new name will be used instead of the one from
Improve the definition of some trigonometric functions
Especially Inverse hyperbolic functions
Reconfigure layouts even if only pointer device is connected
Store the selected items in a more efficient way
Since Dolphin 2.0, we have stored the selected items in a QSet<int>,
which is neither space-efficient nor particularly fast when inserting
many items which are in a consecutive range.
This commit replaces the QSet<int> by a new class "KItemSet", which
stores the items in a sorted list of ranges. For each range, we only
store the first index and the length of the range, so we need a lot
less memory for most common selection patterns, and we also save quite
a few CPU cycles in many situations, because adding an item to the
KItemSet will in many cases not need a memory allocation at all, and
it's particularly easy when inserting sorted items into the KItemSet in
KItemSet contains a minimal subset of QSet's API which makes it
suitable as a drop-in replacement for our needs. It also has iterators,
such that the items can be iterated through easily, also with foreach.
One advantage of KItemSet compared to QSet<int> is that the items are
always iterated through in ascending order.
Optimize Kate code completion.
a) Don't resort when we narrowed the filter, as then the sorting
should be preserved. This has a great effect (~50% faster).
b) Don't rematch items whose text did not change. This is mostly
an issue for KDevelop e.g. which has often multiple completion models
per view (word completion, language completion, snippets) and up
until now we would filter all items three times.
Sort in items in two stages to speed up natural sorting
Sort the items in a folder first according to their name, without doing
a natural/locale-aware sorting. This is very fast, but the order of the
items is then already close to the final order in most cases.
The number of expensive natural comparisons required to sort the items
is thus greatly reduced.
In my experiments with a folder with 100,000 items, the time required
to sort the files was reduced by 63% with this patch.
Prevent storing some redundant data in KItemListViewLayouter
In KItemListViewLayouter, we have always stored a QRectF for each item,
which is "the area that the item occupies". However, the size of the
QRectF is already stored in the size hint resolver.
Therefore, it is sufficient to store the position of the top left
corner of the QRectF in a QPointF and construct the QRectF on demand.
This patch reduces the memory usage by 16 bytes for each item in the
* a QRectF is 4 doubles -> 32 byes
* a QPointF contains only 2 doubles -> 16 bytes
Remove pulse animation when battery is low.
It can cause full-screen repaints and causes significant stress to the CPU/GPU and thus to the battery,
if and only if we should actually conserve battery.
Also, the systemtray in Plasma 2 is likely to have its own animation of tray icons when they set the
NeedsAttention status. So just kill it. :-)
Implement speed calculation for incoming/out-going transfers
This is not done automagically by KJob so we have to implement it
Add convenience API for queueing and creating job objects.
Move Weaver class into it´s own file. Make ThreadWeaver.h the catch-all
header to include the most important ThreadWeaver components.
Fix writing EPS files
QPrinter is no longer capable of producing PostScript files, so we
output to PDF then used GhostScript (or pdftops from Poppler) to convert
the result to EPS. Note that GhostScript is already used by the reading
Port sendFile to bluez5
First code dump of the port to bluez5 of send file, everything works
more or less.
Move KDED files into a proper Framework structure
Add support for retrying to KIO.
Add an explicit retry button to the kio skipdialog.