Issue 318
15th December 2013 by KDE Commit-Digest TeamContributors
Alex Fikl
Giacomo Barazzetti
Jürgen Appel
This Week...
Statistics
Commits | 1867 by 139 developers |
Open Bugs | 21204 |
Open Wishes | 15919 |
Bugs Opened | 263 in the last 7 days |
Bugs Closed | 233 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
135
|
/branches/stable |
71
|
/trunk/l10n-support |
64
|
/krita/ui |
34
|
/trunk/www |
23
|
/plasma/generic |
18
|
/kwin/tabbox |
10
|
/doc/index.docbook |
9
|
/pimcommon/storageservice |
9
|
/agents/notesagent |
8
|
Files | Developer | Commits |
507
|
Laurent Montel |
176
|
204
|
Alex Fiestas |
68
|
132
|
Albert Astals Cid |
55
|
147
|
Milian Wolff |
53
|
141
|
Sébastien Renard |
47
|
117
|
Hugo Pereira Da Costa |
44
|
132
|
Martin Gräßlin |
44
|
126
|
Boudewijn Rempt |
42
|
120
|
Dmitry Kazakov |
40
|
111
|
Burkhard Lück |
38
|
Internationalization (i18n) Status
Language | Percentage Complete |
German (de) |
99%
|
French (fr) |
99%
|
Dutch (nl) |
97%
|
Estonian (et) |
93%
|
Galician (gl) |
92%
|
Italian (it) |
90%
|
Danish (da) |
89%
|
Hungarian (hu) |
88%
|
Catalan (ca) |
85%
|
Greek (el) |
83%
|
Bug Killers
Person | Bugs Closed |
Boudewijn Rempt |
36
|
Jekyll Wu |
24
|
Christoph Feck |
23
|
Dmitry Kazakov |
19
|
Gilles Caulier |
17
|
Christian Mollekopf |
17
|
Albert Astals Cid |
12
|
Laurent Montel |
8
|
Frank Reininghaus |
7
|
Dawit Alemayehu |
6
|
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
Educational
Give feedback whether owncloud login credentials are correct
GCI task #5900404730626048
REVIEW: 114270
Graphics
Don't show the attachment bar if showOSD is disabled
FIXED-IN: 4.12.1
KDE Base
Fix assert in ~QPersistentModelIndex
KateCompletionWidget may call QAIM::setCurrentIndex during a reset of
the model, inside KateCompletionWidget::modelContentChanged(). At this
point, model indices are invalid, but QAIM wasn't informed about it.
The main problem is that KateCompletionModel doesn't use the
(relatively) new {begin,end}ResetModel blocks to make persistent model
indices invalid when we start resetting the model. Instead reset() is used
*after* we have reset the model. However, KateCompletionModel may emit
contentGeometryChanged too early (before a reset()) and hence triggering
QAIM::setCurrentIndex while QAIM is still referencing now invalid
persistent model indices.
Other changes:
Remove contentGeometryChanged. Instead, use layoutChanged() and
modelReset() signals to react to model changes.
This also ports KateCompletionModel away from deprecated QAIM methods
such as QAIM::reset()
REVIEW: 113917
FIXED-IN: 4.13
Fix formatting of data amounts
We include a rather generic function here, since KLocale bindings are
gone, and Qt doesn't seem to have QML bindings for this. Feels a bit
hackish, but as we need this elsewhere, we can move this function to
someplace more generic.
Update the roles for filtered items if necessary
Since Dolphin 4.11, we store not only KFileItems, but also the
corresponding ItemData struct for filtered items. This is required for
keeping track of the parent-child relationships, and has the nice side
effect that the ItemData need not be re-determined when the items are
shown again.
However, this can become a problem if the visible roles or the sort role
change while some items are filtered.
This is fixed by is fixed by clearing the QHash "values" for the
filtered items if the visible roles change. The hash will be
re-populated with all requested data as soon as the items are shown
again and the data(int) method of the model is called.
Moreover, before the items are inserted into the model after filtering,
we have to make sure that the sort role "Permissions"/"User"/etc. is
present in the hash "values". This is achieved by factoring out the code
that currently does this job for new items in createItemDataList() into
a new function, and calling this in insertItems(), because the same
treatment is required for the previously filtered files.
FIXED-IN: 4.12.1
REVIEW: 114266
Properly set the event mask on the windows watched by KWindowSystem
KWindowSystem tried to only change the event mask for windows not
belonging to the same process by using QWidget::find to test whether
the window belongs to the same process or not. This does no longer
work in a QWindow world. If the window belongs to a Q(Quick)Window
QWidget::find returns a nullptr just like for windows of another
process. This caused the XSelectWindow to overwrite the event mask
used by Qt and thus for example mouse events were no longer recieved
at all.
With this change the event mask is updated for all windows, no matter
whether it's an own or a foreign window. But the event mask currently
installed on the window is preserved, so Qt still gets the events it
expects.
REVIEW: 114396
KDE-PIM
Propagate socket errors to jobs, and don't emit ERR_COULD_NOT_CONNECT on ssl handshake errors.
ssl handshake errors should trigger the dialog to change the settings and not just silently fail.
Unfortunately ssl handshake errors are only detected when trying to connect to a socket without encryption. Otherwise
the error occurs only on the server side and the socket is simply disconnected.
Correctly detect inter-resource moves
When comparing the source and destination resources, the item
already has the destination collection and resource set, so
we need to compare it with the source resource
FIXED-IN: 1.11.1
Fix Bug 328736 - akonadiconsole crashed in MessageViewer::MailWebView::showAccessKeys
FIXED-IN: 4.12
Fix some more potential sources for crashes in the imap resource.
* tasks should be always killed first, in order to avoid them getting signaled by the dropped session resulting form the sessionpool disconnect.
* always delete the tasks immediately, otherwise callbacks can occur to tasks that are already killed and have an invalid state.
* always stop the idlemanager first, and only delete it if it is also available
One particular case that I observed, was a RetrieveItemTask during which the
SessionPool was disconnected while the KIMAP::ItemFetchJob was running,
resulting in the RetrieveItemTask trying to deliver an item while it was already canceled.
This triggered: ASSERT: "d->scheduler->currentTask().type == ResourceScheduler::FetchItem"
Of course we're dealing with the more general case that a ResourceTask must not be called again,
once it's state becomes invalid.
Office
Fix crash when switching QPainter->openGL canvases
The openGL context should be initialized at least once in the beginning.
This surely fixes:
Please check whether these bugs are fixed now:
Fix the border effect when working in Trilinear/HiQuality mode
The borders should be as wide as needed, but not just 1px
Fix the hang-up in the legacy node-editing actions
Special thanks to Anton Saraev for preparing initial patch for the bug!
Node Manager is one of few places in Krita which are not ported to
strokes yet and continues to use KisLegacyUndoAdapter. Ideally its
actions should run asynchronously using KisProcessingsApplicator,
but for now we will just check whether the node is locked or not.
Do not write-access tiles while doing subpixel color picking
Warn the user when enabling wraparound mode if opengl is off
If the current canvas doesn't support opengl, wraparound painting will
work fine, but there won't be visual feedback. Warn the user
unobtrusively and remove the stdout feedback line.
Probably fix the support for some non-Wacom tablets
See this Qt bug:
https://bugreports.qt-project.org/browse/QTBUG-25329
- Investment transactions dropped without notification during import.
Fix crash when cropping a Shape Layer
Repopulate the state of the Input Manager when Krita gets the keyboard focus
Krita can get the focus even when the user is already holding some key
pressed (e.g. Control). In such a case, clicking with the mouse button
will start painting instead of color picking, which might be a bit of
surprising for a user.
Theoretically, we can steal focus on mouse enter, but this may be
inconvenient for a user in a bunch of usecases.
Properly fix the Wrap-Around mode
1) The size of the data stored in the patch does not contain the border
2) The exponent of the border formula should be exactly the number of
mipmal levels
Fix too fast mouse clicks (triple clicks) issue
Fix autobrush size calculation
1) Brush cannot be smaller than 0.1 in size
2) Make it possible to paint something with brushes smaller than 1.0
Networking Tools
Emit unload signal only if chokoq is shutting down
Fix that crash after some time
Features
Educational
Support for cyclestreets.net bicycle routing
REVIEW: 114399
GCI task #5900328763392000
REVIEW: 114410
GCI task #4946439075528704
FIXED-IN: 4.13.0
DIGEST:
Added support for showing journey duration for OSRM routing.
GCI task #5829701784305664
REVIEW: 114461
Improved polar grid
Support for basic KML tour file management
GCI task #5772200225275904
REVIEW: 114351
Journey length and duration to OwnCloud when uploading routes
Marble can store routes and bookmarks in an owncloud server.
The upload API needs information about the length and duration of
routes that are uploaded. This patch adds duration and distance
properties into clound sync.
REVIEW: 114463
Support for MapQuest AppKeys
Brings back MapQuest routing. Users are required to register for a
MapQuest AppKey and enter it in the mapquest backend configuration.
GCI task #5794101337260032
REVIEW: 114379
KDE Base
Add 'keep popup open' check to systemtray popup
For some widgets contained in the system tray, it can be useful to keep
the popup open for reference (job tracking, monitoring of network
traffic, device manager), so allow the user to keep the popup opened.
Same implementation as in the calendar.
KFormat - Add new KFormat class
KLocale offers a number of extra formatting options not yet available
in Qt. The KFormat class adds these options to KCoreAddons:
* formatByteSize()
* formatDuration()
* formatDecimalDuration()
* formatSpelloutDuration()
* formatRelativeDate()
* formatRelativeDateTime()
The KFormat class can be initialised with any QLocale to use in the
date and number formatting, or the default locale can be easily
accessed via KFormat():
QString result = KFormat().formatDuration(1000);
[kwin/tabbox] Use a QmlComponent instead of a QQuickView for TabBox
By not using a QQuickView it becomes possible to just use a
PlasmaCore.Dialog or a Quick.Window in the TabBox qml and thus it's
possible to simplify the qml code.
To support this a new SwitcherItem is introduced and exported to QML.
It's a simple QObject providing all the properties which used to be
exported to the root context. A declarative TabBox is expected to
use one of these items. The C++ side finds the Switcher and for that
supports the case that the SwitcherItem is the rootItem or a child
item.
A declarative TabBox has also to create a QQuickWindow, e.g. a
PlasmaCore.Dialog. The visibility of that window should be controlled
through the visible property on the SwitcherItem. The underlying C++
implementation assumes that a TabBox only uses one window (it needs to
get destroyed once it's hidden and included in highlight windows).
Thanks to this change it's no longer needed to reload the TabBox
whenever it gets shown or the alternative TabBox gets shown. Instead
the same QML script can get reused. Other created switchers are ignored
as the visible property won't be changed to true.
A bunch of improvements in `expand` plugin:
* introduce decorators to tell to the engine what way it must process results
* introduce a way to process jinja2 templates
* (re)introdude a way to use TemplateInterface2 to edit generated snippet
* UDFs w/o any decorator is a fallback to a `legacy` way: just insert
generated text into a document instead of a name of expansion function ;)
* C++ expansion functions are rewritten using jinja2 templates and allowed
TI2 for postprocessing
* almost all C++ expansions get some new features espacially class generation
expander `cl`... One may try smth like cl(test,@c,!cc,mv)+<Ctrl+E> :)
Split KCModules into different Categories in KHelpcenters navigation tree
The KHelpcenter navigation tree has a top level item "Control Center Modules",
an unsorted list of all KCModules (>80 for a full kde main modules install from stable).
This makes this item hardly usable, see https://bugs.kde.org/show_bug.cgi?id=262935
This patch implements:
A) Alphabetical sorting for "Control Center Modules"/"Foo Settings Modules" + "KInfoCenter" items
B) New / changed top level categories in the navigation tree:
1) System Settings Modules -> replaces old "Control Center Modules"
items: see http://docs.kde.org/stable/en/kde-workspace/systemsettings/general.html
2) Konqueror Settings Modules (see Konqueror settings dialog)
items: General, Performance, Bookmarks
3) Filemanager Settings Modules (see Konqueror/Dolphin settings dialog)
items:
File Management, View Modes, Navigation, Services, General, Trash
No File Associations, because it is already in System Settings Modules
4) Browser Settings Modules (see Konqueror settings dialog)
items:
Web Browsing, Proxy, Appearance, AdBlocK Filters, Web Shortcuts, Cache,
History, Cookies, Browser Identification, Java & JavaScript, Plugins
5) Other Settings Modules
all other items like e.g. CGI Scripts from kde-runtime
To make full use of these new/changed categories some kcm desktop files in other
modules than kde-runtime need a change of X-KDE-ParentApp from kcontrol to konquerorcontrol,
browsercontrol, filemanagercontrol or othercontrol, but that is not part of this review.
As long as not all desktop files are fixed according to this patch or a necessary change in a
desktop files is overlooked that KCM will be in System Settings Modules like now, but in sorted order.
C) Change wording from "Control Center Modules" to "System Settings Modules" and using
"Foo Settings Modules" for the new categories.
Control Center is from KDE 3, we use System Settings nearly all over GUI and in the whole documentation.
REVIEW:111851
KDE-PIM
Add code for supporting webdav service
IMAP: Handle tagged responses even if they contain a response code
The ObtainSynchronizedMailboxTask contained a bug which caused it to skip
processing of the tagged responses when they contained a recognized response
code. This is a real problem when the server sends us something like that in
response to e.g. ESEARCH -- the synchronization process gets effectively stuck
waiting for the UID discovery to finish, which is not going to happen, because
the tagged OK was ignored.
Thanks to Tetja Rediske (Kelsar on IRC) for reporting this and
persuading me that this is not a random fluke on his computer, but a bug in
Trojita.
The KeepMailboxOpenTask does not suffer from this bug because its
handleResponseCodeInsideState() already checked for tag being empty prior to
returning true for "already handled, we're done here" case. It makes sense for
Obtain... and Keep...'s code to be designed the same way, so this patch changes
the ObtainSynchronizedMailboxTask::handleResponseCodeInsideState to use the
checks in the same manner as KeepMailboxOpenTask did already. The other tasks
do not seem to suffer from this problem.
The tests were amended to check for both of these.
REVIEW: 114446
Start to implement multi vacation dialog
Merge branch 'akappend-streaming'
X-AKAPPEND handler now supports payload streaming, which should speed up
appending new items into Akonadi.
If clients supports streaming with X-AKAPPEND, it has to announce the
capability to server via AKAPPENDSTREAMING capability.
This effectively obsoletes the APPEND command, which supports streaming for
a long time now, but can only append items which just one payload part
(i.e. contacts and events, but usually not emails), so it was used only
for single-part items for speed. With X-AKAPPEND supporting streaming,
it can be used instead of APPEND without performance penalties.
Networking Tools
[ #36521 ] Untie call direction and historystate logic, add ability to highlight missed calls
User Interface
Properly place the panels in a multiscreen environment
Ues QScreen::geometry instead of QScreen::virtualGeometry. The virtual
geometry is, according to the documentation and empirical experience, the
geometry of all the virtualDesktop.
REVIEW: 114362
Optimization
Development Tools
Optimize: decrease size of ProjectFile by 8 bytes.
The project name can be looked up on demand, it is only required for
the actively selected file in the quickopen model.
As these structs are created in high order, saving 8 bytes here can
simply add up to quite a lot of memory saved. Furthermore, it speeds
things up as copying is faster for smaller structs.
use imports cache for better performance
For deals read this blog post:
Optimize: Use a sorted QList<ProjectFilter> instead of a QMap.
The QMap approach has an overhead of at least 8 bytes per shared
QString key. The benchmarks also show that this version is faster
than the QMap version by approx. 40% according to
QuickOpenBench::benchProjectFileFilter_addRemoveProject.
Furthermore this will allow us to overwrite the sorting order to
take temporary files generated in out-of-source build directores
into account.
KDE Base
improve change wallpaper animation
* delay init of the render animation to when it is actually used
* drop from 500ms to 300ms
* immediately render a 10% mix; start anim from 20%
* OutQuad to get to the final result "quicker"
result: it's perceptibly 'faster' and smoother to change
KDE-PIM
Made the socketTimer a bit simpler and more robust.
There is no need for the code to not be a little more forgiving, and we can easily get into a situation
with the timer already running on startNext. e.g. due to socketActivity of due to unhandled data (BYE).
This will hopefully fix the ASSERT people were running into.
Other
Development Tools
Refactor UMLListView to use Object_Factory
The createItem, createUMLObject and createChildUMLObject methods are replaced
by calls to Object_Factory. The only changes to Object_Factory involve
pre-setting a name on classifier list items so there's no behavioural change
(item creation in the list view is 'quick' - no dialog popping up).
Related code cleanup:
* unused diagram creation code
* unused itemRenamed method (UMListViewItem handles that)
* unused lines in createChildUMLObject handling renaming of classifier list
items, which was also handled by the UMLListViewItem (e.g. determining the
return type of an operation based on the new text of a list item)
KDE Base
The killing of plasma-windowed
In the dark winter night, our hero walks along kde-workspace, seeking to
do some minor cleanups, when he and his trustful horse stumbled upon
plasma-windowed.
"Lo and behold", our hero demanded. plasma-windowed still opts to pull
her weapon. Being the fast drawer that he is, our hero puts two bullets
right between the eyes of plasma-windowed and sends it across the Styx,
leaving a note on its tombstone "plasma-windowed had to make place for
the One Shell to Rule Them All".
The end.
Port and enable SMB kioslave to Qt5/KF5.
REVIEW: 112463
Share a single Akonadi::Monitor between all AkonadiContact instances
REVIEW: 114366
friendly title: displays just the filename
Also only show the overall progress bar for more than 3 items, makes the
whole thing look cleaner, and is a fallback when the list of jobs
becomes really hard to oversee.
KDE-PIM
Complete the removal of WinCE support from Kontact Touch.
First part is in commit 57e42f1de04.
Office
Remove Nepomuk integration
The default was the xml-file backend. The nepomuk ingegration was
basically unused, and having everyone use the same backend makes
support a lot easier.
Games
Remove dependency on Qt3Support
REVIEW: 114359