|Commits||1566 by 130 developers|
|Bugs Opened||297 in the last 7 days|
|Bugs Closed||340 in the last 7 days|
|Albert Astals Cid||
|Aaron J. Seigo||
|Friedrich W. H. Kossebau||
Internationalization (i18n) Status
|Aleix Pol Gonzalez||
There are 58 selections this week
Don't crash in Okteta when opening non-existing file.
We now enforce a text/plain mimetype for non-existing files. This
then triggers the creation of a katepart editor view which gracefully
handles the case of non-existing files.
Don't crash in case of dangling updates
DUChain::waitForUpdate does QApplication::progressEvents() in a while-loop and
waits for an update from the background parser. In case the application
is shut down, CppLanguageSupport eventually is deleted, but the
while-loop may still be running. When the call to
CppLanguageSupport::switchDefinitionDeclaration returns, 'this' is
already invalid and the subsequent call to CppLanguage::standardContext
ends up in SIGSEGV.
Hence, always check if the context returned by waitForUpdate(...) is
valid and return immediately if not.
Don't show a message box when a plugin couldn't be loaded
IPlugin has a hasError method that is used to check if the plugin could
initialize itself. It's used to make sure that the runtime dependencies
are met, such as checking that git, cmake and ninja are installed.
Having a message box for those is too intrusive, given that if the user
needs the tool and doesn't have them installed, he'll have a bigger
problem than not having the plugin in KDevelop. Instead, a kWarning() is
provided, so we can tell our users to check the console output if one of
these problems happen.
Ensure to use a copy of an image in a load thread if the thread only requests
read-only, but exif rotation / post processing require modification of data from the cache.
This is meant to fix all mysterious crashes in the ImageHistogram calculation.
(as I cannot reproduce the bug, I cannot prove it is a fix)
Thanks to Simon Munton for his investigations.
Fix preview area auto-detection apparently not working when the
scanner background is white.
It did work really, but the UI was not intuitive because the
threshold slider sets the absolute value of the threshold. It works
as would be expected for black background - low threshold working
upwards from full black - at the left end of the slider, but for
white background the high threshold working downwards from full
white was at the right end of the slider. So if the scanner
background is white the user has to not only set the combo
appropriately but also move the tolerance slider to the other end
of its range. It's not obvious that the latter has to be done.
Now, the tolerance slider works the same way for either black or
white background - low threshold meaning less variation accepted
is at the left. The slider range is reduced to 50 (from 255) for
easier adjustment within the useful range. This also simplifies the
area detection code, black and white being treated identically with
only the averaged pixel values being adjusted for white.
Fix initial enabling of auto-detection and its GUI.
Do not turn on auto-detection on initial startup.
Make dust size GUI work (if it is enabled at compile time,
usually it is not).
Rationalise the Previewer class's member variables and names.
Not much point in having a PreviewerPrivate unless everything
is there, it just creates complexity.
Do not store a QWidget in a static variable to retrieve the IccProfile for thumbnails.
This crashes in case the thread is used from a non-UI thread.
Instead, store the IccProfile when the widget is set. This is not perfect, the
previous solution was not perfect either.
Note: For thumbnails, the profile setting is global for performance reasons
Only do a fast pre-sorting when "Sort by Name" is used
This is a follow-up to commit 0e9f4a398735cfc19ae783d2ab054d2400d95416,
which tries to speed up sorting the items naturally by their name using
the idea that a fast non-natural pre-sorting already sorts the items
mostly correctly and thus reduces the number of expensive natural
This change only makes sense if the view is really sorted by "Name". In
other cases, the pre-sorting will most likely not be useful.
Thanks to Christoph Feck for pointing this out!
Do not add dialog to DialogShadows before it became visible at least once
Calling DialogShadows::self()->addWindow(...) will create the low level window.
If this is called before the property windowFlags is evaluated the window flag
X11BypassWindowManagerHint has no effect as that one must be present when the
window is created through the low level xcb call.
This was breaking declarative KWin scripts as KWin's windows need to have the
Don't dereference null pointer.
It's normal for it to be null. When you drag a to-do out of a parent
and it becomes an orphan destTodo is null.
Fix ImapStreamParser CRLF skipping.
With the code before it was possible that either the carriage return or
the newline was not yet parsed, resulting in it ending up as part of the
payload. This resulted in broken payloads, depending on how the data was
read from the socket.
Fixed refcounting in ETM and Monitor
This is a combination of several commits in order to fix the buffering
in the ETM.
In particular it incorporates the following changes:
Fixed fetching of items that exited the buffer after being referenced.
After a collection exits the buffer after being referenced,
the monitor no longer emits updates for this collection.
It is therefore necessary for the ETM to refetch the items to get missing updates.
2. (regarding the removal of the MAXITEMS limit)
Don't keep outdated copies of items.
A collection is purged if reference counting is used and a collection
exits the buffer after being referenced. By not purging the items, it becomes
possile that we miss updates, and when refetching the collection because it's
referenced again, we don't emit change notifications because the items were in the model already.
Since we anyways have to fetch all items, we can as well purge all items.
* compare revisions and emit change notifications if necessary in itemsFetched
* Still emit notifications in the monitor for modifications only
Only buffer a collection after the refcount reaches zero.
Before, a collection that was dereffe'd at least once would
already be buffered (although the refcount is still >0), resulting in
the buffer being occupied by reffe'd collections (which is pointless).
don't chop-off the summary at 37chars in the treewidget column
save TNEF attachments with their filename property, when possible.
New implementation of the brush outline display
This patch effectively fixes two things:
1) Makes the outline painted correctly of rotated/mirrored canvas or/and dab.
This is achieved by using a special class for making all the transforms.
The class is called KisCurrentOulineFetcher.
2) Fixes the Drawing Angle sensor on the mirrored canvas, which has become
broken quite recently.
scroll to first entry in the preset strip when switching paintop
SqlMeta: fix off-by-one index in SQL results
...we had this error since commit b1bf9011 in 2010, but nobody noticed. :)
This is because it resulted in just slower paths taken, (but still with
some unwanted side-effects)
Ensure the PulseAudio envrionment is set up when running older backends
This ensures that pre-4.7 backends (expecting the environment to be
set up by libphonon) retain working volume control.
SqlRegistry: fix assert fail in SqlScanResultProcessor by always returning the correct track
1. User has 1.mp3, copies it as 1.new.mp3 and edits some tags of
1.new.mp3. Both files do *not* have AFT tag embedded.
2. Amarok registers the new file.
3. Users restarts Amarok (needed to reproduce because of internal state)
4. User renames 1.new.mp3 back to 1.mp3 by overwriting it, Amarok catches it
5. Amarok does not associate new 1.mp3 with the old 1.mp3 because it finds
previous 1.new.mp3 entry by uid (file hash) instead.
6. Amarok tries to remove entry for the old 1.mp3, but
SqlRegistry::getTrack( int urlId ) erroneously returns the new entry
7. SqlScanResultProcessor correctly asserts out, refusing to delete the
The fix is to enhance SqlRegistry::getTrack( int urlId ) to double-check
that it indeed returns the correct entry.
Fix a a signal/slot signature mistmatch Tp::ContactPtr to KTp::ContactPtr
Signature updates for change from Tp::ContactPtr to KTp::ContactPtr
The signal signature for ContactGridWidget::selectionChanged changed in ktp-common-internals and so the connection to the OK button in the UI never got the message to enable itself.
Move cursor at the end of line when moving through sent messages
When moving through history of sent messages in text-ui, move the cursor
at the end of the text. This is in par with Kopete and Konversation
Properly remove secrets when a connection is removed
Make the Python 3 plugin co-installable with Python 2
You can install both plugins next to each other, but only one of them will
work for some reason (removing one makes the other work).
The debugger plugin will need separate considerations.
New KColorSchemeManager to support changing color scheme in app
This class is inspired by functionality offered by e.g. Krita and
Digikam to allow the user to select a different color scheme for the
This manager simplifies this task and also ensures that the required
property on QApplication is set, so that a QStyle can pass the scheme
to the window manager/compositor for the windows of the application.
Basic component for statusnotifiers
add Latex indenter
new feature: flash matching brackets
Kate already highlights matching brackets. This commit adds the feature
of flashing the matching bracket. The flashing animation takes 250 ms.
[kwin] Window specific rule for decoration color scheme
Adds a new force rule to specify the color scheme to use on the window
decoration. The scheme is stored by the name of the .colors file name.
So for Oxygen.colors the value is Oxygen.
When loaded the scheme is located and the full path to the colors file
is used. This is because the X property also uses the full path.
Add support for knode
Add logo support
show timezone comboboxes if start/end datetime is not our local timezone
so for example if you a meeting that starts at 8pm you might suspect
that doesn't refer to your local timezone. now you don't have to guess.
Add new engine
Add support for photo
Implement alarm support
Add support for download new printing themes
Make spellchinking work with more dictionaries.
I believe this fixes a long standing bug for many people why spellchecking doesn't work
Allow multibrush to use an angled axis and have an option to show the axis
This feature allows multibrush to function with an axis that is rotated:
this means for the mirror mode it will use the rotated axis to mirror
over. Additionally a checkbox is added to allow the user to display the
axis being used for mirroring, symmetry and translation.
Awesome patch by Michael Martini. Thanks!
Introduce new notification types for messages received in group chats
Removed highlight notification type for 1-to-1 chats. There are now the
following 6 notification types for received messages:
* 1-to-1 chat message received (active/inactive window)
* Group chat highlight received (active/inactive window)
* Group chat message received (active/inactive window)
Make the update cache Transaction to mark the apt backend as progressing
This way we get a nice progress bar when updating the cache.
Add anagram feature.
Now words that are correct in the language of the document and anagrams
of the original word are also counted as a correct entry. For example if
the word is three and the user enters ether the word is counted as correct.
Developed as Summer of KDE by Ajay Singh
Improve "end turn" action handling.
The recently added KStandardGameAction::endTurn() action now has an own
default shortcut of Ctrl+E. The button is added to the toolbar by default.
Furthermore, the "end turn" button now is enabled/disabled depending on the
game state. It no longer is possible to end the turn while in the middle of
a send fleet command sequence.
Use the very same condition for enabling/disabling the custom "end turn"
button and the "end turn" action. This required some code cleanup.
The custom palette for the game board now colours disabled elements darker
so that they actually look disabled.
Major overhaul for Ekos and KStars FITSViewer tool.
+ Proper support for -32 and 32 bit FITS.
+ Reorganized CCD capture code to be more robust.
+ Auto focus updated to capture subframes of either auto or user selected stars.
+ Added autostretch to the FITS Viewer tool bar.
Big rewrite of ImageCanvas to use a QGraphicsView
Let that do all the hard work of drawing and scaling. Eliminates
having to paint the selection box outside a paint event, allows
multiple highlights with different styles and them not being
erased by the selection box.
Selection area API cleaned up for consistent interpretation of
the rectangle: functions and signals using a QRect refer to
absolute image pixels, while those using a QRectF specify a
proportion of the image size.
Lots of other API cleaned up, consistently named and documented.
Update OCR result image position tracking. Get the ImageCanvas to
detect the click and perform the coordinate conversion, so that
OcrEngine doesn't have to know about its implementation.
OcrEngine::eventFilter() is now OcrEngine::slotImagePosition()
and much simpler.
More repaint and powerfriendly needsattention animation
This animation is visually almost the same as the one it replaces, but
saves 80+% of the repaints, which can lead to large areas being
The trick here is instead of using a curve that is flat at the start
(but still leads to repaints) by sleeping at first, and then
accelerating much faster, thereby emulating the more rapid acceleration
of the longer animation at the end of the first animation.
Positive side-effect: By moving the pause animation at the end of the
first cycle we now react almost half a second faster to the change in
Rewrite obexftpdaemon, preapre for new way of doing obexftp.
The idea goes as follow:
The KDED will keep track only of sessions the rest will be done in the
slave, for example this is how listDir will look like:
-KIO asks KDED for a session
-KDED returns an already existing one, or creates a new one
-KIO then uses that sessionPath to call listDir
All KDED operations will be Async, all KIO Sync.
When a kio-slave needs a sessionm, will ask the KDED, in the case where
optimize: only alter bracket matching ranges if needed
[ #34120 ] Re-implement noise supression
Reduce reconnect attempt frequency
Connection attempts once per second seems quite reasonable, 10 per
second was overkill.
Don't store all secrets passed from the password dialog
Secrets from connections where we explicitly set that secrets should not
be saved or where secrets are not required should not be stored after we
pass them to the password dialog.
Adjust DesktopChangeOSD to QtQuick 2.0
The OSD does not yet work properly, though. It exposes the problem
that the window is broken once it got hidden.
[kwin] Drop testapp for detecting whether direct rendering works on glx
The main purpose of the opengl testapp was to set the environment
variable LIBGL_ALWAYS_INDIRECT if direct rendering is not supported
before glx gets initialized.
With Qt5 we may no longer set this environment variable. QtQuick
requires direct rendering. On IvyBridge QtQuick is crashing if the
variable is set. Thus we are no longer allowed to set it and thus the
complete test becomes pointless.
The test app basically whitelisted most drivers anyway, the only
drivers which were problematic are the proprietary Catalyst drivers.
It that's still a problem we can also disable OpenGL compositing on
those drivers through the recommendation in the GLPlatform.
This also means that the KWIN_DIRECT_GL variable is no longer useful.
Re-enable building of appmenu directory
Only a limited subset is used as the topmenu is disabled given that
it's QGraphicsScene based and uses Plasma widgets.
Update libiris from https://github.com/psi-im/iris.git commit e1e776b5b7752dca7b9383677850f72dc7375fdb
Ignore /[\r\n]+/ in vcard base64 photo