Issue 273
3rd February 2013 by KDE Commit-Digest TeamContributors
Aleix Pol
Thibaut Gridel
This Week...
Statistics
Commits | 2843 by 176 developers |
Open Bugs | 21122 |
Open Wishes | 15793 |
Bugs Opened | 354 in the last 7 days |
Bugs Closed | 343 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
277
|
/branches/stable |
218
|
/trunk/www |
76
|
/trunk/l10n-support |
64
|
/project/reports |
59
|
/applets/folderview |
22
|
/plasma/applets |
15
|
/blogilo/src |
14
|
/KTp/Models |
11
|
/package/contents |
10
|
Files | Developer | Commits |
384
|
Gilles Caulier |
132
|
351
|
Laurent Montel |
130
|
207
|
Chetan Khona |
69
|
192
|
Sebastian Kügler |
65
|
114
|
Aleix Pol Gonzalez |
41
|
120
|
Burkhard Lück |
40
|
117
|
David Edmundson |
39
|
111
|
Friedrich W. H. Kossebau |
37
|
102
|
Ignat Semenov |
34
|
96
|
Jan Kundrát |
34
|
Internationalization (i18n) Status
Language | Percentage Complete |
Ukrainian (uk) |
100%
|
Estonian (et) |
99%
|
Swedish (sv) |
99%
|
Portuguese (pt) |
99%
|
Polish (pl) |
98%
|
Spanish (es) |
97%
|
German (de) |
96%
|
Dutch (nl) |
96%
|
French (fr) |
95%
|
Italian (it) |
92%
|
Bug Killers
Person | Bugs Closed |
Martin Gräßlin |
30
|
Christoph Feck |
24
|
Jekyll Wu |
24
|
Dawit Alemayehu |
23
|
Lamarque Souza |
17
|
Myriam Schweingruber |
15
|
Laurent Montel |
13
|
ralf-engels gmx de |
11
|
Milian Wolff |
11
|
Thomas Lübking |
10
|
Commit Countries
Commit Demographics
Sex
Age
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 53 selections this week
Bug Fixes
Development Tools
Make it possible to kill DVcsJobs.
This is a safety measure, if a DVcsJob would be running and we close
KDevelop we cannot properly stop it. Then if result comes in we
might try to access our platform API in an invalid state.
This is the same reason why we see issues such as shown in bug
309715 - there for the CTestFindJob.
Set error state correctly so that KJob notices
Setting the error number and text is not enough to precent KJob
from trying to run a job. I've also changed the job state to
VcsJob::JobFailed.
REVIEW: 108689
Fix the memory pool thread local data access for good.
The issue was quite apparent yet I wonder how I could have been so
lucky as to never encounter it until today...
Thing is, we create the parse session (and thus also the memory pool)
in the constructor of the CPPParseJob which is still in e.g. the main
thread. Only later inside ::run() are we actually in the background
thread - and there we access the thread local data from inside
MemoryPool::allocateBlock.
Now we used to initialize the thread local data in the MemoryPool
but that is of course a different thread than what we encounter in
MemoryPool::allocateBlock later on.
The fix is quite simple and elegant, and actually makes the memory
pool even faster. We now initialize the thread local cache only
upon first destruction of a memory pool. Any access in allocateBlock
before could not find free blocks anyways.
Furthermore we now only allocate the first block once we actually
need it (i.e. upon first call to ::allocate()).
Make CTestFindJob killable to ensure it gets stopped on shutdown.
This should be the proper fix for the crash-on-close bug that
was encountered quite often. I do not understand how to trigger it
on startup though - can someone try with this patch again?
Educational
Respect dialog defaults and curve properties for point density.
Big changes in MarbleWidget (mostly MarbleLegendBrowser)
(*) The TemplateDocument class added
(*) Cities bug fixed
(*) MarbleLegendBrowser tweaked (support of Twitter Bootstrap)
(*) MapInfoDialog improved (see MarbleLegendBrowser changes)
REVIEW: 108511
Graphics
Bring back thumbnail buttons with Plastique or Cleanlooks style
The Qt::WA_Hover attribute was removed in commit 9c6ce9d5 to fix a
drag'n'drop bug, but setting WA_Hover was not the cause of the bug. The
problem came from the call to setMouseTracking().
Note that I set the attribute in the delegates instead of in the view,
this causes code duplication, but it makes more sense for the delegates to
set the attributes they need than to leak delegate needs in the view.
The code handling the thumbnail buttons should be moved out of the
delegates to avoid duplication, but that can't be done for 4.10.
REVIEW: 108660
FIXED-IN: 4.10.0
KDE Base
Notify effects when the screen gets locked
EffectsHandlerImpl starts to monitor DBus for the screen being locked and
provides this information to the Effect system by allowing them to ask
whether the screen is currently locked and by emitting a signal when the
screen gets locked/unlocked.
This information is needed to ensure that no private data is shown on the
screen. The following effects are adjusted:
* taskbar thumbnails
* thumbnail aside
* mouse mark
* screen shot
FIXED-IN: 4.11
REVIEW: 108670
when the activity changes, hide the controller
previously:
* open activity manager with meta+q
* change activity by clicking on activity
* press meta+q again -> nothing (the window is on the other activity!)
* press meta+q -> finally shows
i considered keeping the activity manager visible and putting it on
all activities .. but that would mean having to manually close the
thing unless we closed it automatically anyways.
fixed and extended python indentation mode
Indentation is now correct even if a comment is at the end of a line.
Added two regression tests.
The updated version of the script also deals with opening and closing
argument lists and sequences as suggested in PEP8.
REVIEW: 108644
the window needs to be *raised*
it is not managed by the window manager (explicitly) so it needs to handle
this itself.
this completes the "fix the situation when new screens appear while locked"
problem
REVIEW:108643
Remove flying highlight: it does not mix well with actionList button
update geometry of the lock window when screen changes
this is the window that lays *under* the acdtual lock UI, and which
prevents visibility of the underlying desktop (and lets the window
manager know what's up) thereby allowing us to care a lot less about
whether the greeter crashes while improving security with compositing on.
previously it was not changing geom when the screen would .. which was
not noticed due to a combination of issues; but with kscreen being used,
its magic revealed the problem.
based on a patch by Thomas Lübking
REVIEW:108643
REVIEW:108643
Fix mimetype handling when a desktop file lists base and derived mimetype.
I had the following issue:
emacs.desktop says: MimeType=text/plain;text/x-csrc;
My mimeapps.list says: text/plain=kde4-kate.desktop;emacs.desktop;
(and has no entry for text/x-csrc)
When opening a text/plain file, kate is selected, no problem.
But when opening a text/x-csrc file, emacs is selected, against my
expectations. Discussed on the XDG list, Alexander Larsson and I agreed
that when a desktop file lists both the base and derived mimetype, we
should simply ignore the derived mimetype, it's redundant.
The code is a bit complex, so let's test this in master before a possible
backport (if any; I couldn't find a bug report about this).
constrain maximization/restorage for fixed ratio
when eg. vertically maximizing a cinemascope video in mplayer
it would horizontally exceed the (16:9) screen, so this
case is translated to a full maximization (effectively binding
the window into screen dimensions)
also, when restoring such video from a horizontal maximization
the restore would usually keep the height (thus breaking the
window aspect) so pass geom_restore -> restore through adjustedSize()
REVIEW: 108702
Fix crashes in KFileItemModel::removeItems()
These crashes were caused by the recent commit
ff3267c6dcd0f6d0621b3a96b5462a9581a03883. It introduced two problems:
a) A logic error in the code that removes the ItemData pointers from
m_itemData that could cause crashes if multiple item ranges are
removed, and there were un-removed items behind the last one.
b) The implicit assumption that any call of removeItems() will actually
result in items being removed in the model. This is incorrect if
the model is first cleared and then the hidden-files setting is
modified, which happens if "Save view properties for each folder" is
enabled, and a folder where hidden files are shown is left. In that
case, the dir lister emits itemsDeleted for the hidden items after
they have been removed from the model due to the folder change.
I'll add a unit test covering these issues soon.
Many thanks to Romário Rios and Hrvoje Senjan for testing!
KDE-PIM
Generally fix MessageProcessor to match the original design
- Make Message constructor private and a friend class of the message processor. This simplifies code, and makes accidentally skipping the escape filtering impossible
- Message now has two extra properties isHistory and messageDirection
- Message filters have access to the "message context" the account/channel in which the message was received
- Remove the broken filterIncomingMessage / filterOutgoingMessages with just one method. Plugins can use messageDirection to get the same functionality
This is a setup to fix a range of bugs in the message filters
Calling reconnect from the disconnected signal confuses qt sockets.
Qt does some more cleanup after emitting disconnected, so if we're already
trying to reconnect, it will clean that up on the way. Better let Qt
finish, and only then reconnect.
Apply patch from Chuso Perez
"MainWindow tries to connect TrayIcon slots to some signals sent by
TimetrackerWidget. But these signals are not being emitted by
TimetrackerWidget, they are being emitted by TaskView.
This code patches TimetrackerWidget to receive those TaskView signals
and propagate them so MainWindow can receive them to connect them to
TrayIcon."
REVIEW: 107482
Fix Bug 310808 - Add context menus for list entries
Added menu when make sense.
FIXED-IN: 4.10
Fix Bug 314079 - Kmail crashes while counter-proposal an event invite
FIXED-IN: 4.10
mInvitationDispatcher can be null if CalendarSupport::KCalPrefs::instance()->useGroupwareCommunication()
is false
Fix Bug 314221 - composer attaches directory without confirmation if
also a file is selected
FIXED-IN: 4.10.1
Office
Make sure we actually apply strikethrough and underline styles from character dialog
typ
There were several logical errors in the previous code. Basically you had to select
both a type and a style in order to apply. Now selecting a type implies you have also selected
a style.
Multimedia
auto hide toolbars when user clicks on picture to view
Fix possible crash in monitor scene
Networking Tools
Fix window presence icon when more tabs are open
Reviewed-By: David Edmundson
- fix handling of usernames containing a domain
- fix default setting when you set a custom resolution
- cleanup some old stuff
Thanks to Norbert Marx for noticing and reporting these issues.
manually manage Konversation::Sound (Phonon::AudioOutput)
when parenting a phonon audiooutput to a qapplication an access to
pulseaudio happens after it was destructed already.
qapplication's ctor first destructs q_global_statics and after that
deletes children. however in the phonon's factory global static all
backend objects (including the root object) are deleted which in turn
will shut down the pulseaudio support. at that point from a phonon
perspective everything is shut down, except qapplication then goes on to
delete its children which then causes headaches.
generally speaking this is a problem all phonon frontend objects have,
except only the audiooutput does things that will trigger a sigsev.
so inside phonon a different workaround needs to be made for some future
release.
the fact that global statics are deleted before children seems wrong
though and perhaps needs addressing within qt.
Features
Development Tools
Add basic support for typedef'ed function pointers.
Properly deduce the function type and create correct declarations
with the identifier of the sub_declaration id in cases such as:
void (*funcptr)(int x);
funcptr myFunc;
int main() {
myFunc(0);
}
DIGEST:
Make it possible to search and open documentation from QuickOpen
With this patch you'll be able to query the available documentation by
using Ctrl+Alt+D through the QuickOpen, instead of having the ToolView
opened right away.
REVIEW: 108654
Educational
Annotate: a plugin to draw polygons and placemarks on a map
The revival of osmannotate plugin which never got to release state.
The plugin layer handles SceneGraphicsItems for mouse event actions,
and maintains a document which is rendered with classical layers.
Still lots of work needed for production delivery, but already quite
functionnal:
- Adds/Removes Point Placemarks, Polygons
- Import/Export to kml file
- Reshape Polygons by moving points
- Placemark "edit bubble" which sets name and description
Needs work:
edit bubble is weak with painting and refreshing
REVIEW: 108618
Basic .kmz support
Extends the KML plugin to handle .kmz files (zipped .kml files).
Introduces quazip as an optional dependency for that purpose: When
quazip is available, .kmz is available as well. Otherwise only .kml
support is available (as before).
TODO:
- Respect base url correctly (to load other resources from the archive)
- Register .kmz files to be handled by Marble (if quazip found)
DIGEST: Marble can now open .kmz files. See
KDE Base
Provide our own icon engine for QIcon::fromTheme
Now when the platform theme is active we reroute through KIconLoader and
its interprocess cache. Nice bonus for Qt based applications ran from a
KDE Workspace session. :-)
Note this patch needs a patch in Qt5 to have any effect, review is
there:
https://codereview.qt-project.org/#change,46458
Add platform theme plugin
Bring back some more integration in Qt, loads our settings, palettes and
fonts. Also pulls in KFileDialog use.
New Glow on approaching Screen Edge Effect
Feature stolen from hidden Plasma Panel now available for all edges on
approach by mouse.
Screen Edges may belong to fullscreen windows
Corners are still ours (it's a valid use case to still be able to switch
window through e.g. Present Windows even when running a fullscreen app).
How is it done? An Edge can be blocked and does no longer trigger if it
is blocked. For WindowBasedEdges the edge windows get unmapped in the
blocking case and mapped again when the blocking condition is no longer
valid.
The blocking is so far connected to:
* changes of active window
* changes of fullscreen windows
Whenever one of the events occurs it is checked whether there is:
1. an active client
2. it is fullscreen
3. on the same screen as the edge
If this is the case the edge will be blocked, otherwise unblocked.
FIXED-IN: 4.11
redo the title configuration ui
- move the title configuration UI to the Location page
- use one combobox + one lineedit
- use an enum instead of comparing strings
- clean up the code
FIXED-IN:4.11
Office
Added an ability to transform layers recursively with a Transform Tool
Now the transform tool supports transforming of a group of layers or
masks recursively in a single pass. You can use it for transforming a
set of layers grouped into a Group Layer or just transform a single
layer with all its masks (e.g. with transparency masks). This option
is enabled by default, but you can disable it by switching a small
button in the transform tool configuration docker. This button has a
icon of a small spider (the tool "crawls" through the layers :) ) [0].
It would be cool, if someone tested it a bit ;)
[0] - you can suggest any other icon for this, actually =)
,314176
feature: Buttons on dashboard widgets to discover the contextual menu
Networking Tools
Implement the model part of the macro subsystem (2/2)
Implement Wake-On-LAN features.
Optimization
Development Tools
Optimize: Cache the hash of indexed set nodes.
hashlittle is apparently quite expensive - it shows up quite often
when looking at KDevelop traces - e.g. using perf top while its
parsing a project. This way we only calculate the hash once per
node and not multiple times.
Looking at the new environmenttest benchMerge:500 benchmark in the
C++ language plugin, we can see in callgrind, that hashlittle is now
only being called ~300k times instead of ~600k times before. The total
cycle estimation cost decreased by ~7%. I'd have hoped for more but
thats a start.
KDE Base
Resource: Do not auto update the cache by default
The resource class generally connects to the ResourceWatcher, and
updates itself whenever any other application changes any data. While,
this may be desirable at times, most of the times, it is not required.
1. It creates a massive number of watches which increase the number of
messages that are sent across dbus.
2. It slows down the Resource class because its own changes are also
propogated back to it.
3. It doesn't really notify anyone that the data has been changed, so
the ui code doesn't know when it is supposed to refresh.
Added a function setWatchEnabled( bool ), which configures if the
Resource should be auto-updated.
Port Magnifier Effect to XCB
First XRender effect which gets ported over. Therefore required bits are
added to CMakeLists.txt.
Port to xcb is luckily rather straight forward. Though the QPixmap usage
needs to be replaced by xcb_pixmap_t together with a XRenderPicture.
add stricter heuristics to initial maximization
instead of just checking whether the decorated client will be bigger
than the workarea and take that as reason to maximize it, we will not do
so if it's smaller than the full are and the managed client bigger than
the screen (because it makes sense for the user to move it around and the
requested dimension is out of what the client could have stored when closing
maximized)
REVIEW: 108705
Port non-composited Outline to XCB
Use xcb to create and manage the X11 backend of Outline. In addition the
used background pixmaps are rendered with XRender instead of using a
QPainter on a QPixmap. This is done because QPixmap is no longer bound to
an X Pixmap.
To create the XRender Picture the available functionality from
kwinxrenderutils is used. To be able to use it in KWin core the compile
option to build without XRender is removed for kwinxrenderutils, but
still supported for effects.
Obviously the port to XCB is not complete as xremderutils itself is still
on XLib.
REVIEW: 108642
Light-weight wrapper class for an xcb_window_t
The idea behind this class is to relieve the developer from having to
call xcb_destroy_window once it is no longer needed. That is having a
RAII approach to windows.
In addition the class provides some simple method wrappers for the most
common use cases inside KWin:
* map
* unmap
* setGeometry - basically a moveResizeWindow
* ...
Performance improvements in KFileItemModel::removeItems()
The performance of this method is improved by:
a) Not removing items one by one, but doing it in a way that minimizes
the number of moves to prevent O(N^2) worst-case complexity.
b) Not sorting the removed items using the potentially extremely slow
KFileItemModel::lessThan. We can get the indexes of the removed items
very easily from the hash m_items, and sorting ints is a lot faster.
c) Preventing repeated rehashing of m_items when removing the deleted
URLs by replacing remove() by erase().
REVIEW: 108540
Security
Utilities
Quote the substituted strings properly in the arguments given to the tools
Note that it is necessary to reset all the tools after this commit.
Other
Development Tools
Improve welcome page looks
Since some changes in the air plasma theme, some margins were removed.
Specify some margins in the code side.
KDE Base
int -> QVariant for ProxyModel::FilterMode
This also fixes filterChanged() and configAccepted() wrt this config key.
Use the actual filter mode value instead of the combobox index which is
error-prone in case the order of the items in the combobox changes.
Even more tolerance in layer size sanity check
Appearantly, there are files out there with layers much
larger than the actual image. The layer size is now checked
against larger limits (32K in each dimension, 256M total).
FIXED-IN: 4.10
Utilities
Move the updater APT-dependent actions initialization to the backend
To do so by keeping it the same way, the updaters will return a list of
actions. The actions with higher priority will be put as KMessageWidgets
and the rest as tool bar buttons.
The StandardUpdater won't report any actions and the actions have been
moved from updater to ApplicationUpdates (those will have to be tested
later on).