|Commits||1477 by 133 developers|
|Bugs Opened||249 in the last 7 days|
|Bugs Closed||393 in the last 7 days|
|Patrick von Reth||
|Aleix Pol Gonzalez||
Internationalization (i18n) Status
|Brazilian Portuguese (pt_BR)||
|Albert Astals Cid||
There are 49 selections this week
Fix number of plural forms in files that don't have the plural forms header
lupdate creates .pot files without the Plural-Forms: line, when opening them lokalize ends up in this "if branch" where it adds the line to the header it will write when saving but it does not update the numberOfPluralForms variable so fields with plurals don't show with multiple options to translate (until you modify the file, save it, and open it again since then lokalize will have added the header and it'll work).
With this fields do properly shown on first open.
Acked by Nick, Luigi and Chusslove
Fix image import for kim files with external images.
Use relative paths in ImportHandler::copyNextFromExternal().
Improvements to zoom behaviour
No need for double digit precision in the UI
ZoomIn/ZoomOut moves you through the well known steps + fit page, fit width; if you need any other you can always write it manually or use MMB zoom
convert selection to ARGB32 format so that transparency mask works
according Qt doc, image format must be set to Format_ARGB32Premultiplied
or Format_ARGB32 for the composition modes to have any effect.
This is needed for the transparency mask to work here.
Update window timestamp before activating from dbusservice
This patch, conditionally on X11, updates the window's timestamp before
activating the window. This is needed for kwin to bring a unique app
window to the front when a second instance is started (which activates
the first one).
Partial fix for (needs small adaption in systemsettings as well):
XapianSearchStore: Split the string based on + * / - =
When we receive a search string, we typically split it up by spaces and
dots. Then each sub string is checked, if it is <= 3 characters, we use
our own expansion scheme (imperfect) otherwise xapians.
We need to use our own completion scheme because xapian's consumes too
much memory in the case of very few characters. It basically expands the
string to every possible completion result it has in its db, this
results in loads and loads of memory being consumed.
We now split based on some extra characters so that when searching for
'2*2=' will not consume all your RAM in the case when your DB has many
words starting with 2.
Reject font shorthand property when inherit value is present in font-family subproperty.
Remove space from an argument passed to postgres server
Some users reported problem with starting PostgreSQL when there's a space
between name and value of an argument passed to postgres. Removing the
space fixes problem for them (withouth breaking PostgreSQL for those who
didn't have a problem with the space)
Thanks SergTruf for the patch.
IMAP-Resource: Fixed stuck BatchFetcher
The continuation request can be delivered while a fetch job is in progress
if we deliver too many messages (which is likely with the uid based fetches
where we can't predict the exact amount of fetched messages). In this
case we need to remember the continuation request, and automatically proceed.
This causes m_fetchedItemsInCurrentBatch to be off by the messages we delivered
too many, but that's not a problem as it means we just deliver too many messages
during every batch.
IMAP-Resource: Properly count started and completed jobs.
I.e. if no job was started because of no metadata capabilities the job would get stuck otherwise.
Fix PostgreSQL start when postmaster.pid is not removed after non-clean shutdown
When PostgreSQL is not terminated nicely, a pidfile is left behind in db_data,
which will prevent pg_ctl from starting a new PostgreSQL server.
We check for postmaster.pid file and verify that postgres server with PID
specified in the pidfile is not running anymore, then delete the pidfile to
allow pg_ctl to start a new server. If the postgres server is still running
(possibly after Akonadi server crash), we try to connect to it right away.
Prevent an infinite loop when checking multi-paragraph text
I've seen this from my debugger where Trojita got stuck after I typed a couple
of paragraphs using multiple languages. The 'block' was invalid and the
operator<() evaluated to an unexpected value. Either way, attempting to advance
an invalid iterator is not something which would work anyway.
Fix bug 'Notes content is not persistent.'
The bug has been fixed by editing note widget text through the documentation window
instead of the special note widget dialog.
This commit open a way to use the documentation window as property editor.
sketch: Make tooltip work nicely with touch on Win 8
Windows implements its own press and hold behaviour that
sends a right click event, so rather than waiting for
another press and hold, use the right click to show the
Fix using a transaction in the Filter Op
Otherwise the filters like Gaussian Blur and Unsharp Mask will not work
Update Track Position when returning from system tray after Pause.
Amarok wouldn't update the track position when restored from the system
tray. This patch rememdies that. Patch by Abhay Sombanshi
Update URL for Jamendo Database.
Jamendo has changed hosts. This updates the url to the new location.
The api is deprecated, but it works again at least.
Adjust maximum allowed length in CollectionBrowser filter dialog
[tabbox/qml] Do not export the item's model data as a variant
The hack to get the model data from the currently selected item to the
areas outside the list view apparently broke in Qt. Now we have to export
the model data elements we actually use.
Use contrasting foreground color for pen.
Start a new AI and display for every new game.
LSkat AI would play illogically after you hit New during a move.
Fix anagram creation duplicating letters when word is short.
Thanks to for the patch.
Support for default include path and definitions on CLang compiler.
When I compile Kdevelop using only in my Debian Testing Clang 3.4, the defaults include paths is not recognized. In the code I will see that the functions are only for GCC and MSVC, with this patch now with Clang are recognized both, the include paths, and standard definitions.
OilPaint Tool : add support of multicore CPU based on QtConcurrent API.
Merge branch 'kcm2'
This implements a completely new version of the KScreen KCM, based on
usability research and advices from Bjoern and Heiko.
The UI has two parts: a QML-based view with monitors that can be dragged
around to reposition screens, and a widget-based part, that provides
detailed configuration for each screen, like resolution, rotation, etc.
Actions to add apps to the panel/desktop containments and the task manager.
Containment mutability is taken into account, the smart thing
is done for Folder View (symlink the .desktop file, don't spawn
an Icon applet) and the Task Manager (if found) is asked if it
already has a launcher.
We're pretty unhappy with all the coupling, though it wasn't any
better in Plasma 1. Long-term, a more generic framework to re-
gister launchers and allow containments and applets to work with
that data is to be implemented.
Bare-bones new Formats KCM
This forms a stab at the the new Locale settings, which need to be
transplanted to QLocale. Currently, this means much coarser setting,
that is no specific settings for the individual items, just a country
setting. From there, we can add back more fine-grained settings,
transplanted from the locale KCM.
Primarily, this makes language settings available to startkde, so the
LC_* variables can be exported.
This is currently non-functional, just a bare-bones KCM, loading a basic
Run "kcmshell5 formats" to test.
Bring back a KCM for the screen locker
Together with adding back the KCM the settings are slightly adjusted to
have them fit the UI without needing a transformation in the KCM.
* timeout is stored in minutes (used to be seconds)
* grace time is stored in seconds (used to be msec)
* lock is enabled by default
Also disabling the locking after idle timeout is no longer possible. An
endless grace made some sense with the screensavers, but not with the
screenlocker. In order to not break an unknown but maybe valid use case
the option is still available, just not exposed through UI.
Incremental changes for MERGE and tag support for MERGE and APPEND.
Incremental changes make it possible to i.e. only update the flags.
Tag support allows clients to create a new item with tags specified via
\Tag['tagRemoteId'] flag (the flag can be repeated with different
remote IDs to assign multiple tags. The tags MUST exist.
When SILENT is specified on MERGE, the resulting item won't be sent in the response
of MERGE, instead just an UID is sent.
Daniel Vratil is of course responsible for writing the patch ;-)
GUI: make sure the composer always has a window title
Simply opening the composer as a new fresh mail, without replying to an existing
subject, would leave the window title uninitialized, which means that the user
would get an ugly "trojita" instead of a nice, localized "Compose mail".
IMAP-Resource: Allow to override the encryption mode.
Some ssl servers advertise an ssl version they don't actually support.
This config-only option allows to override the used encryption mode, and
supports all available options, so the auto-negotiation can be skipped.
ItemCreateJob: Explicit merge API + support for incremental changes + tag support.
* Merge only by certain identifiers.
* Only merge certain parts of an item (such as flags)
* allow to pass tags with a created/merged item.
Added support for SQLCipher database driver in KMyMoney
Database backend supports SQLCipher driver. Added a new method to
KMyMoney's SQL driver which stores information if a password is
Also a new QSQLDriver for SQLCipher was introduced.
This is still work in progress as some features are missing (e.g.
encrypt not encrypted database and vice versa, change password). But
install is hard so only sophisticated users and engaged package
maintainer can do that. I do not think this will be useful in near
future. However I wanted to shared my code.
How to install/use this patch:
1) You need SQLCipher, http://sqlcipher.net , build and install it (to
my knowledge it is not packed in any major distribution).
2) Get the qt source code (or just the one for QSQLiteDriver) and
build it (needed as this will create the necessary folder hierarchy).
3) If you do not install to default location, enable CMake to find
these folders (SQLCipher install folders, Qt source folder, Qt build folder).
4) Create KMyMoney with ENABLE_SQLCIPHER=ON (default is off)
Forgot: I have no clue how secure SQLCipher is! Just wanted to see if I
can get it running.
Try to prioritize photos taken by a camera-like device
The list of images that we get from Baloo has lot of noise because it
usually contains small images from data files of software, games and so
We do two things-
* Ignore images unless they are wider than 500 pixels
* Make images with EXIF data appear first by giving them preference in
sorting by date/time
Optimize PluginController::pluginForExtension for common case.
When we look up an already loaded plugin by its extension, we can
bypass the costly KPluginInfo::fromServices call by just checking
the extension of the loaded plugins directly.
The benchmark shows that this is much faster:
0.00080 msecs per iteration (total: 53, iterations: 65536)
1.1 msecs per iteration (total: 72, iterations: 64)
This is especially noticeable with the new IDefinesAndIncludesManager
plugin, which will be queried for every file we parse. In kdev-clang,
the call to pluginForExtension was a bottleneck when we reload an
already parsed session with many files.
Do not put Function contexts into the symbol table.
The arguments to functions should not be visible from there. This
should give a noticeable speedup and greatly reduce the size of our
symbol table for large projects.
RadialBlur effect : add support of multicore CPU based on QtConcurrents API. Computation time is divided by 5 with i7 (8 core CPU)
IMAP-Resource: Check available UID's first & retrieve 50 time more flags.
This way we avoid the UID fragmentation problem (we try to fetch a lot of
messages that are not available on the server).
It's also a nice first step towards only syncing a certain time-frame.
Retrieving 50 times more flags than full messages should still result in
low memory consumption while greatly reducing roundtrips.
Stop needlessly calling KDirWatch::stopScan().
Not only should the call be unnecessary, but it also causes an infinite
loop when KDirWatch is set to use QFileSystemWatcher: the
KDirWatch::stopScan()/addDir()/startScan() combination makes the slot
where they're called end up being infinitely triggered.
Discussed with dfaure.
Kill the MissingIncludeCompletionModel and worker.
Most of its functionality was already copied in the CompletionContext.
Just removing it showed nearly no regressions in my tests. The stuff
that is required, I now added to other places to make it work.
Also, for the fun of it: Note how not only was the functionality
partially duplicated by the MissingIncludeModel and normal completion
context, no! The doSpecialProcessing method in the model was also
usually called twice, once via updateCompletionRange and once from
Additionally, I don't see the need for a special worker thread here
in the first place. Only if normal code completion fails do we want
the missing include completion items, no?
Since this code is not unit tested at all, please test this! I hope
I did not miss any magic functionality of the model...
Remove Okular archive from the Export formats
[screenlocker] Add a unit test for KSldApp
The unit test so far only tests establishGrab. This is a little bit
tricky as we need a different X Client which grabs pointer or keyboard
to make establishGrab fail. For that two small helper applications are
included which do nothing else than connecting to X and the one grabbing
keyboard the other grabbing pointer.
The applications are started from the test to get the keyboard/pointer
grabbed which results in ::establishGrab to return false.
What this test is not yet able to test is handling the sleep between two
As the test is using doUnlock() from KSldApp, the implementation is
changed to use xcb for ungrab pointer/keyboard. With XLib the test would
have needed an XSync which would have required to either add the XLib
call to the test or doUnlock or implement the sync using xcb.