Issue 288
19th May 2013 by KDE Commit-Digest TeamContributors
This Week...
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 65 selections this week
Bug Fixes
Educational
Fix crash while exporting image
The crash in setLegendAlpha() while exporting images, introduced when
I separated the ExportImageDialog dialog from the ImageExporter
"backend", was (most likely) caused because of an uninitialized
ImageExporter pointer. This caused ImageExporter to never be
constructed, but used, naturally leading to a crash. This should
hopefully fix the bug. More testing is necessary, but preliminary
testing shows that it works.
Graphics
Fix clicking on notes being hard on high zooms
It is still not perfect because for some reason poppler is painting outside the boundaries box (or we are not creating/setting it correctly)
but at least now it's not ultra hard to click in a note application at high zoom
FIXED-IN: 4.10.4
KDE Base
Notifications history popup now hides if it loses focues when there are no jobs runnning
REVIEW: 110420
Do not add a space after comma if already present (just move cursor).
Do not add closing angle bracket if '<' typed in a middle of the word.
Do nothing if '<' typed in a comment.
Fix crash when an xmlgui file has shortcuts for viewmode actions.
FIXED-IN: 4.10.4
KDE-PIM
Save current selection before clearing the messagelist.
And prevent losing that information when saving happens again, in
setStorageModel() (which has to stay, I think, for the case where kmail
sets the current folder directly, without messing with the selection)
Fix Drag and drop in ProjectStrategy
A todo is project if it has children or if is tagged like a project, in
the case the todo was not tagged, the drag and drop was broken because
the parent type returned StandardTodo instead of ProjectTodo.
Destroy the models immediately when returning from the settings dialog
Previsouly, there was a possibility that the SQL cache might be involved in some
activity at the time the nukeModels() was called. However, due to the delayed
deleting, the Model's actual destructor (which destroyes the cache, which ends
the active transaction) might be run only after the setupModels() has finished,
which meant that the newly-created sqlite connection hit a locked database.
Thanks to Stefan Kögl (hotte on IRC) for reporting.
Force full-resync if last sync was more than 25 days ago
Fixes 'The requested minimum modification time lies too far in the past'
error from Google Calendar resource that users saw after they returned
from vacation :-)
Also simplifies the code and speeds up sync by not fetching all existing
items before fetching data from Google (I probably copy-pasted it from
somewhere in the early days without actually understanding what's going on)
FIXED-IN: 4.10.4
Office
Do not crash when editing a filter mask on a clone layer
Some filters need direct access to a paint device, and the clone layer
doesn't have one. Return the original paint device in that case.
Multimedia
Fix file-browser becoming empty when a file was moved to trash.
This was caused by a Progress operation. I don't know why. Removing
the call made it work, and I don't think progress status is much
needed for moving stuff to trash.
FIXED-IN: 2.8
MountPointManager: fix inability to deselect "Use MusicLocation"
...and also inability to clear the Local Collection if collection
folders are cleared.
BUGFIXES:
* Fix inability to reverse "Use Music Location" decision and inability
to clear database once all collection directories have been unset.
This patch is a candidate for inclusion into 2.7.1
FIXED-IN: 2.8
Playlist{Actions,Controller}: refactor code, fix queueing
The actual fix for bug was to remove the isPlayable() check in
TrackNavigator, however this fixes more potential problems (like the
queueing being affected by the current playlist filter) and cleans up
the code.
BUGFIXES:
* Fix `amarok --queue` which didn't actually queue the tracks.
FIXED-IN: 2.8
Networking Tools
Reload plugins immediatelly when config is saved
FIXED-IN: 0.7.0
REVIEW: 110440
Automatically logout and login with suspend/resume
This patch logs off each account when PC is suspended and restores the online state of each account on resume.
This patch also addresses another problem of kopete: When the user was setting kopete to "Offline" and the network connection was lost and recovered kopete would reset all accounts to "Online".
Thanks Benni Hill for patch!
FIXED-IN: 4.11
REVIEW: 6511
Games
Avoid a run-on of animation after New and Stop actions.
Features
Development Tools
Bear in mind that the project root might not be the repository root
In the git side, look up the project root.
In the consumer side, don't assume it's the root url.
Educational
Move image and info links in the popup menu into dedicated submenus.
The popup menu for some objects would end up becoming too long because
of the number of information and image links. So moving them into
dedicated submenus helps keep the context menu short and improves
usability. Besides, grouping the links as image / info resources helps
users find them more easily.
I decided not to put the DSS / SDSS imagery under the image links
submenu, because they are available for any point on the sky (within
the footprints of the surveys). If we ever create a submenu for sky
surveys, it should possibly go in there.
Add separator between image and info resources only if DSS is available.
It looks weird if there's a separator between Image Resources and Info
Resources, when there's nothing else between them. So if no DSS
imagery is available, but image / info resources are (eg: for
planets). Like this:
Xplanet (for eg.) >
------------------------
Image Resources >
------------------------
Information Resources >
------------------------
If DSS images are available, things look better:
Angular Distance [ (eg.)
------------------------
Image Resources >
Show DSS Image
Show SDSS Image
------------------------
Information Resources >
------------------------
So, it's best to throw in the separator only when DSS / SDSS links are
shown.
Reorganize menus in KStars.
+ Created the "Data" menu and moved "Download New Data" (GHNS / KNS3)
and "Updates" (which provides options to update comet / asteroid /
supernova data) under it.
+ Moved the Observation Planner to the "Observation" menu.
+ Changed internal name of the Observation Menu from oal to
observation.
+ Indentation improvements
Graphics
Remove two timers of unknown purpose which create flicker after each database operation
Make "Save As" default path point to where the file was opened from
FIXED-IN: 4.11.0
REVIEW: 110419
KDE Base
Introduce cross-fading with previous pixmap
Cross fading with previous pixmap is achieved by referencing the old
window pixmap. WindowPaintData has a cross-fade-factor which interpolates
between 0.0 (completely old pixmap) to 1.0 (completely new pixmap).
If a cross fading factor is set and a previous pixmap is valid this one
is rendered on top of the current pixmap with opacity adjusted. This
results in a smoother fading.
To simplify the setup the AnimationEffect is extended and also takes care
about correctly (un)referencing the previous window pixmap. The maximize
effect is adjusted to make use of this new capabilities.
Unfortunately this setup has a huge problem with the case that the window
decoration gets smaller (e.g. from normal to maximized state). In this
situation it can happen that the old window is rendered with parts outside
the content resulting in video garbage being shown. To prevent this a set
of new WindowQuads is generated with normalized texture coordinates in
the safe area which contains real content.
For OpenGL2Window a PreviousContentLeaf is added which is only set up in
case the crass fading factor is set.
REVIEW: 110578
Explanation on failed snippet validation
Forward port of: https://git.reviewboard.kde.org/r/103904.
REVIEW: 110481
Improve Battery Monitor with multiple batteries:
- Show Battery Name, if available, instead of just Battery 1, Battery 2,
- Don't add non-power-supply batteries to the overall percentage
- Drop "Show battery status for each battery", it is now always on,
given that in systray it only shows one icon anyway and now does that
right, and if there's a mouse you wouldn't want it to be not shown,
so it would show them anyway which is a contradiction to the setting
REVIEW: 110431
Egl Backend using a Wayland surface for rendering
This backend is able to composite on a Wayland surface instead of an X11
overlay window. It can be considered as a prototype for a Wayland session
compositor.
For texture from X11 pixmap the backend uses XShm. This is far from
optimal, but the KHR_image_pixmap extension is not available in Mesa's
Wayland backend. It's a temporary solution till we have XWayland and
texture from Wayland buffer.
To use this backend one needs to specify the environment variable
KWIN_OPENGL_INTERFACE with "egl_wayland". In future KWin should probably
use this backend if the Wayland display env variable is defined.
To use this setup:
1. Have a normal X-Server running on e.g. VT7
2. Start Weston on VT1
3. Start a terminal on Weston
4. start KWin with:
DISPLAY=:0 KWIN_OPENGL_INTERFACE=egl_wayland kwin --replace &
This should map a Wayland surface to Weston showing the content of the X
setup. At the moment it's not yet possible to interact with the surface
as input events are not yet recieved in the backend.
There are still a lot of limitations as documented in the code.
Add support for the Power Supply property of UPower which indicates if a battery
is actually powering the machine (ie. laptop battery) or just reported by one
of your peripherals (eg. mouse, keyboard).
This will eventually allow other parties such as the battery notifier to disregard
them when calculating overall battery percentage or PowerDevil to notify about
REVIEW: 110384
Add "Configure" button to notifications that opens KNotify settings for the app that emitted the notification
REVIEW: 110389
Add support for Wayland seat: keyboard and pointer
Rudimentary support for input events. Events from Wayland are forwarded
to X's root window using the XTest extension.
Currently supported:
* left/middle/right mouse button
* keyboard events
Not supported:
* additional mouse buttons
* mouse wheel
* touch events
Obviously this is a rather huge hack and is only intended till we have
XWayland support and proper input redirection inside KWin.
Add GUI to alter profile setting handling Page Up/Down
This adds the GUI to setup the page up/down scrolling to either full
or half height.
The non-GUI code was in 3cd4d2e44031cfbbb84e6cda2fbdebf5c02042d6
GUI:
`Insert Color` action now shows a completion-like widget w/ #colors used in
document (for quick reuse) instead of KColorDialog. Latter still can be opened
by pressing 'Other...' button in the widget.
Whooho! Much more easy to (re)use color selection now!
Pretty cool to edit CSS files!
Modify Tasks applet to display in which activities a window is on
Shows information about the activities on which a window is available on the
tooltip of task items.
Depending whether the applet is configured to show tasks which are not
available in the current activity or not, the information displayed will be
different.
If the applet is configured to show only tasks in current activity, only the
tasks which are also available in other activities will have this information
in the tooltip.
Two new methods were added to TaskItem, both of them returning QStringList
- activities: Returns the id of the activities on which the window is
currently available.
- activityNames: Returns the names of those activities.
Hide the message widget when the URL changes
Most error messages are only relevant when trying to open a URL, e.g.,
they inform the user that opening the URL failed. After the next
successful URL change, these errors are not relevant any more.
Therefore, it makes sense to hide the message widget automatically to
prevent that the user is forced to close it manually.
FIXED-IN: 4.11.0
REVIEW: 110369
KDE-PIM
Allow to configure whitelist
GUI: systray support
fixes #67
REVIEW: 110461
Merge branch 'akonadi-batch-notifications'
Demonstratively port the IMAP resource to Akonadi::AgentBase::ObserverV3 and
batch notifications.
Reviewed-By: Volker Krause
rfc2047: treat unrecognized encoding as utf-8 and don't enumerate the list of known codecs
Merge branch 'batch-notifications'
Introduce NotificationMessageV2 that supports batch operations
on set of entities. It's used internally everywhere and is delivered
to clients via notifyV2() signal.
Backwards compatibility is ensured by emitting "V1" messages when
there's at least one client without "batches" capability listening.
Reviewed-By: Volker Krause
Add support for decoding of RFC 2231 parameter names
refs #639
Use loading of IPv6 addresses from map from the old networkmanagement
Office
feature: Notifications and error messages are now based on KMessageWidget
Signed-off-by: Stephane Mankowski
Add resource categorizing with tags
Patch by Sascha Suelzer
REVIEW:110429
FEATURE: Add resource categorizing with tags
Todo: keep the comboboxes synchronized
This improves the way the user can organize resources into named sets
that can be added, deleted and chosen from a drop down menu that I've
added to KoResourceItemChooser. This made the changes available to the
paintoppreset choosers, the gradient choosers and the pattern choosers.
Usage right now is:
Mostly mouse based version:
Right clicking any resource can assign it to or remove it from any tag.
There is an option to create a new tag for the resource as well.
It's fairly intuitive.
-----------------------------------------------------------------------
Mostly keyboard based version:
Resource dockers and popups start with an unfiltered view, in this view
the tag search bar at the bottom is disabled.
To add a tag category, press the plus button and enter a name for the tag.
This creates an empty view and enables the search text box at the bottom.
Terms in double quotes "like this" will be matched to the resource name
exactly.
Entering terms without quotes will partial matching, good for filtering
many resources. filtering eraser would remove all resources with eraser in
their name.
Putting an exclamation mark in front of a term will exclude the term from
the set.
Pressing enter saves the set and will clear the search box, so we don't end
up with something like erase,sketch,fur,!paint,smudge_1,smudge_2,... etc
Once a set is defined, it can be used as a search term as well.
For example:
We've created a set that contains all erasers and is called 'erasers'.
If we switch to a different set and type [erasers] in the search box then
all the items of that set will be added to the current set, exclusions work
the same way.
============================================================================
Remarks about the patch:
Currently only adding and deleting categories is supported, renaming them
is in the code but lacks an UI feature, which I was unable to implement.
(I wanted the unfiltered view to be immutable and tried dis and enabling
the editable state of the drop down box based on which index was active,
but that introduced a segfault.)
All in all the UI parts I've written aren't exactly amazing, maybe
someone more experienced can take care of that? I can do it but it'd be
slow since I have very little experience with that.
I have removed the `show all' checkbox in the paintop preset docker and
all references to that functionality since it made filtering a bit more
complicated as well as just not making too much sense with the
improvements to the tagging system.
I have also removed the proxy adapter in KisPresetChooser since it
didn't do anything useful after these changes, yet required attention
since it overloaded some now improved functions.
Current shortcomings of the system, most of them are UI related:
- Since I used the already existing KoResourceTagging class to handle all
the tagging bits, and ultimately save tags to disk, in alphabetical
order, restarting Krita, and thus repopulating the combo boxes also
fills them in alphabetical order and not in the order they might have
been defined by the user.
- Adding a new tag in a pop-up chooser closes the popup since I used an
input dialog after failing to implement it with combobox editing.
- Combo boxes aren't updated for all item choosers of the same kind.
For example adding a few categories in the preset docker does not update
the combo box in the preset chooser popup that can be found in the toolbar.
I also had a crash at one point in time where some brush presets got
changed around in master and clicking some resources in the brush preset
box crashed the program, but I was not able to reproduce that after a
clean rebuild of my local workspace and changing presets around
externally, so it might not be an issue, but I'm including it for
completeness sake.
feature: Notifications and error messages are now based on KMessageWidget
Multimedia
folder-scan: Support a list of folders to ignore when auto-scanning.
Feature initially authored by Tom Li (see the Review Request and bug for
more details).
The idea is that the Manage Folders dialog now will have a list of
folders that should not be automatically searched (which would override
the list of folders to scan on startup). This way you can avoid having
to completely change up your music layout on-disk just to keep JuK from
automatically grabbing songs you don't want or need managed from within
JuK.
I ended up having to rework a bit to fix some corner cases (such as the
directory watcher which might flag new files under an excluded directory
after JuK startup), and avoid accidentally removing the ability to
manually select files under these excluded directories for addition to
the collection.
If a user does want to remove files that are already in the collection
list, they can enable the "File Name (Full Path)" column and then use
the search bar to find the offending path name, and select and remove
the files that are shown.
Note for posterity that the "Fixed In" version specifies the next
KDE-wide Software Compilation release, not the internal JuK version.
Thanks again to Tom for drafting the initial patch and being
extraordinarily patient while I tried to find time to review, re-review,
and make the finishing touches.
GUI:
REVIEW:110273
FIXED-IN:4.11
Add an audio analyzer visualization applet.
The analyzer code itself is lifted from Amarok 1.x and then adapted for our
needs. The architecture allows adding multiple different visualizations, both
2d (QPainter) and 3d (OpenGL). Currently I have only implemented the
"BlockAnalyzer" which is rendered with QPainter, so it's guaranteed to work
everywhere.
Caveat:
Due to limitations in Phonon-VLC (and libVLC), the analyzer currently
only works with Phonon-GStreamer.
Collection browser: pressing enter when searching appends to playlist
FEATURES:
* Pressing enter when searching collections now adds found tracks to
the playlist and clears the search bar, this is a very convenient
way to populate your playlist.
Based on request from an anonymous commenter on
PlaylistController: fix inability to play just loaded tracks
...that was caused by asynchronism of playlists and MetaProxy::Tracks.
Now that we have TrackLoader which will magically solve all our
problems. :-)
This fixes Amarok not playing tracks passed to it via command line.
BUGFIXES:
* Fix `amarok --play file.mp3` option didn't actually start playback.
@Anmol, now you can fix the "core" part of the bug 317385 as I outlined
in http://git.reviewboard.kde.org/r/110362/ (please reopen the review).
@Ralf, this is the "recommended" way to handle asynchronism in tracks
and playlists now.
CCMAIL: Chris
DIGEST: Amarok fixes playing of tracks passed on command line
Networking Tools
Add 'Contact Details' action to incomming contact request menu
FIXED-IN: 0.7.0
REVIEW: 110445
Add Wimax support
But needs to be tested!!
Allow inviting users to groupchat by drag-n-dropping
Thanks Teemu Rytilahti for patch!
FIXED-IN: 4.11
REVIEW: 6628
Another history plugin based on sqlite.
Most important changes:
- based on sqlite3 instead of xml-files
- import history button in config dialog
- import option added for the other xml-based history-plugin
- pidgin import improved
- test and skip duplicates on import (so it is possible to synchronize
regularly from a windows-pidgin installation for example)
- more speed in most cases
The main reason I began to rewrite the complete plugin was, that I had
dataloss by importing from pidgin with the old history plugin.
The months, which where imported from pidgin, did overwrite the kopete
history. This was unacceptable.
Strip wrapping HTML tags when importing logs from Kopete
Also disable check whether the logfile already exists in TpLogger and
just overwrite it. This allows users to reimport their Kopete logs
FIXED-IN: 0.6.2
Reviewed-By: David Edmundson
Utilities
Make the printer filter work
Add back the feature to filter which jobs to shows
Optimization
Educational
Make supernovae update process asynchronous.
Make the supernova update process asynchronous so that it doesn't slow
down KStars startup even if the network connection is down.
To do this, the update method was split into two methods, one to
trigger the update, and the other to reload the data after the update
process is finished.
KDE Base
CopyJob: replaced huge recursion with delayed invocation.
Otherwise there's a risk of filling up the stack, when copying a very
large number of files (and they are all available in the KDirLister cache).
FIXED-IN: 4.10.4
Office
Use Qt::SmoothTransformation when rotating
Networking Tools
Wait 20s before notifications (contact online/offline) are visible.
Before it was only 5s and it was not enought. Kopete more times spammed user about each online contact.
Utilities
Do not use forceActiveWindow to bringToForeground
The AttachThreadInput used by forceActiveWindow
interacts with gpgol that also uses AttachThreadInput
in a way that can cause a deadlock somewhere between
Kleopatra and gpgOl with outlook runing at 100% CPU.
The reason for this is not understood but just doing
a setForegroundWindow is actually all that we want here.
Other
KDE Base
Fix type-punning/non-standard-aliasing issues.
Reported aeons ago as bug 259826, somehow evaded interest up to this
point.
The issue is essentially that the C++ standard allows compilers to
optimize some forms of crazy type changes, which makes the flagged code
dangerous in the face of "future optimization improvements".
None of the flagged code was so crazy that it couldn't have been
implemented in a more straightforward fashion though. The only change
I'm not 100%-alright with is the change to dds.cpp, but that code has
other issues anyways (though I did test that it still works as much as I
could).
However because of the risk of breakage I do not intend to backport.
Hopefully sufficiently-smart compilers will wait until the next major
release.
FIXED-IN:4.11
Drop explosion effect
It has been unmaintained and mostly broken for years.
FIXED-IN: 4.11
REVIEW: 110513
BackupRestorationJob: Start the % with 3%
Gives the user a sense that something is happening when restoring a
backup.
Normally, when the user resets a backup a large amount of time is spent
in removing the old database and loading all the ontologies, so they do
not receive any indication when that is happening. This way they at
least see a '3%'
Change default refresh rate to 60Hz
This changes the default refresh rate (which KWin uses if it cannot get the rate from the screen) from 50Hz to 60Hz.
There are two reasons for this:
- When plugging out the last active screen, even without calling xrandr the X server changes the screen geometry to some built-in minimum (320x200), with, of course, no information about the refresh rate. As a result, KWin assumes 50Hz and restarts the compositor to accommodate for this change, only to change it again soon thereafter when there's a screen again.
- I know of nobody using a 50Hz screen. Most people use 60Hz, some use 120Hz, but 50Hz seems pretty rare to me.
REVIEW: 110454
KDE-PIM
Perform foreign-character-insensitive matching with Qt::CaseInsensitive
FIXED-IN: 0.7.0
Reviewed-By: DAVID EDMUNDSON
Merge Search and Stop buttons, move the Search/Stop button to the bottom