Issue 344

15th June 2014 by KDE Commit-Digest Team

Contributors

Danny Allen
Alex Fikl
Giacomo Barazzetti

This Week...

KDevelop can now add new compilers for the project parser. Umbrello allows creation of ports using toolbar for component diagram. Libkface uses a better C++ exception wrapper to handle non OpenCV exceptions (as pure C++ one).

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 27 selections this week

Bug Fixes

Graphics

Gilles Caulier committed changes in [digikam] /:

save albumselector state befor to process album selection for fuzzy search

FIXED-IN: 4.1.0

KDE Base

Andrea Iacovitti committed changes in [kdelibs/KDE/4.13] khtml/rendering/render_list.cpp:

Always show list marker if valid list-style-image specified.


FIXED-IN: 4.13.3

Aurélien Gâteau committed changes in [kcmutils] /:

KCMultiDialog: Fix crash when clicking OK

When one closes KCMultiDialog with OK, QDialog::finished() can be emitted
before the clicked() signal of the OK button. This causes the following
sequence to happen:

- KCMultiDialogPrivate::_k_dialogClosed
* deletes the KCModule
- KCModuleProxyPrivate::_k_moduleDestroyed
* sets kcm to 0

- KCMultiDialog::slotOkClicked
- KCMultiDialogPrivate::apply
- KCModuleProxy::save
- KCModuleProxyPrivate::realModule
* notices kcm is 0, so recreates it
* calls kcm->save()
- KWinDesktopConfig::save()
* crashes because it expects kcm->load() to have been called

To avoid this, trigger the cleanup code in closeEvent() rather than when
finished() is emitted, as we can be sure closeEvent() is always called
*after* the methods connected to the button box signals has executed.

REVIEW: 118639

Martin Klapetek committed changes in [plasma-workspace] /:

Fix time showing applets not showing correct time for some timezones

Apparently passing QDateTime::time() to the Qt.formatTime is messing
things up; might also be a Qt bug, on the other hand the docs for QTime
say that "Unlike QDateTime, QTime knows nothing about time zones or
daylight savings time (DST)".

Passing the full QDateTime object makes the applets show correct time in
all timezones.

Hats off to Andreas Eckstein for finding out this

KDE-PIM

Karan Luthra committed changes in [trojita] src/Gui/ComposeWidget.cpp:

Show save draft dialog on change of recipients or subject as well

Treat changes to the recipients or subject line as changes to
message. Previously, only changes to the Composer TextEdit and
Sender field counted as "Message Updated"


REVIEW: 118727

Office

Radosław Wicik committed changes in [calligra] kexi/widget/KexiConnectionSelectorWidget.cpp:

Kexi - Clear selection after adding new connection.

Jarosław Staniek committed changes in [calligra] /main:

Make main shortcuts trigger only enabled actions

This fixes a crash (when pressing Ctrl+S i Data mode) introduced while fixing bug #334587.
In addition added condition for Save/Save As methods so they are ignored in Data mode even if called explicitly.

User Interface

Marco Martin committed changes in [kwin] /:

Distinguish empty and non existent properties

This restores the behavior on KWin4: if I set an X property that doesn't have any data on a window, it's still information, so this makes the Xcb wrapper return an empty QByteArray that is not null.
EffectWindow::readProperty() now returns an empty QByteArray constructed the same way as it was in KWin4.

REVIEW:118645

Features

Development Tools

Denis Steckelmacher committed changes in [kdev-qmljs] /:

Support "font { pixelSize: 20; b: true; }"

typeFromClassName also returns the type of a declaration if the declaration is
an instance. Therefore, typeFromClassName("font") returns the type of the "font"
property, thus Font, and pixelSize and b are properties of Font.

Sergey Kalinichev committed changes in [kdevelop] /:

Make it possible to add new compilers for the project parser.

Now we can globally add compilers and choose needed for the selected
project afterwards.

REVIEW: 118718

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 18 more) Revision 6705fbd...
Denis Steckelmacher committed changes in [kdev-qmljs] /:

Add support for basic refactoring (renaming a declaration and its uses)

Educational

Jasem Mutlaq committed changes in [kstars] /:

Add option to save sequence images in custom directories.
Fix some icon issues
Fix reset of active chip properties once sequence job is complete
Improve tooltips in capture GUI

Diffs: 1, 2, 3, 4, 5, 6 Revision b3c1e23...
Aniket Anvit committed changes in [kig/geogebra] /:

Added support for the conic objects i.e. Ellipse, Hyperbola, Parabola, Conic-5-points

REVIEW: 118295

Signed-off-by: Aniket Anvit

Dennis Nienhüser committed changes in [marble] /:

Spherical interpolation methods slerp and squad

Adds a method squad() to GeoDataCoordinates for spherical spline
interpolation. Based on the work of Ken Shoemake, implemented according
to Erik B. Dam, Martin Koch, Martin Lillholm "Quaternions,
Interpolation and Animation", page 51,

KDE Base

Milian Wolff committed changes in [kate] /:

Add option to fold comment block at the start of a file.

This is nice to save screen real-estate by hiding license headers.
A setting for this is added, which is disabled by default.

REVIEW: 118748

Diffs: 1, 2, 3, 4, 5 Revision c991f2e...
Martin Gräßlin committed changes in [plasma-workspace] ksmserver/screenlocker/ksldapp.cpp:

[ksmserver/screenlocker] Use ScreenSaver key as shortcut

As we support multiple global shortcuts nowadays we can use both:
* ScreenSaver
* Ctrl+Alt+L

So if the user has a lock screen key it works as expected. If not
the screen can still be locked using the well known shortcut.

REVIEW: 118693

KDE-PIM

Laurent Montel committed changes in [kdepim] /:

Start to implement "create note from text file"

Diffs: 1, 2, 3 Revision 91fa344...

Office

Oliver Kellogg committed changes in [umbrello] /:

Permit creation of ports using toolbar for component diagram:

umbrello/widgets/toolbarstateonewidget.cpp
- In function mouseReleaseWidget() admit
currentWidget()->baseType() == WidgetBase::wt_Component
to the call of setWidget(currentWidget())
- In function setWidget() handling of widgetType() == WidgetBase::wt_Pin,
add handling of m_firstObject->baseType() == WidgetBase::wt_Component:
- Open a dialog querying the user for a new port name
- If user confirmed port creation then
- Let Object_Factory create a UML Port object of given name.
The object is owned by the UML Component underlying m_firstObject.
- Let Widget_Factory create a PortWidget representing the UML Port and
assign this widget to `umlwidget'.

umbrello/worktoolbar.cpp
- In function slotCheckToolBar(Uml::DiagramType::Enum) switch (m_Type) case
Uml::DiagramType::Component, insertHotBtn(tbb_Pin).
tbb_Pin is reused for ports.

umbrello/widgets/portwidget.cpp
- In function attachToOwningComponent() prevent the port from being dropped
underneath its owning component (thus becoming inaccessible).
This is achieved as follows:
If scenePos.x() is in the range
[ owner->x() : owner->x() + owner->width() ]
and scenePos.y() is in the range
[ owner->y() : owner->y() + owner->height() ]
then
if scenePos.y() is in the top half of owner then
setY(owner->y() - height())
else
setY(owner->y() + owner->height())

Wojciech Kosowicz committed changes in [calligra] /:

Added Ctrl+S shortcut for save action in Kexi

Adding Ctrl + S shorcut for save action in kexi required suppresing
default behavior of this shortcut in KTextEditor

FIXED-IN: 2.8.4
REVIEW: 118631

Stephane Mankowski committed changes in [skrooge] /:

feature: New statistic plugin

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 5d70365...

Multimedia

Shantanu Tushar Jha committed changes in [plasma-mediacenter/vsrao-seriesbackend] shells/newshell/package/contents/ui/mediacenter.qml:

REVIEW: 118468

Spacebar key to play/pause a media from the homescreen
Patch by R.Harish Navnit

Other

Development Tools

Kevin Funk committed changes in [kdev-python] /:

Adapt to new kdevplatform API

The code assistant is now usable without having the CPP plugin enabled.

KDE Base

Andrew Lake committed changes in [plasma-workspace] /batterymonitor/contents/ui:

use new icons in battery.svgz theme file. Also minor updates to improve icon with text vertical alignment.

REVIEW:118644

Martin Gräßlin committed changes in [plasma-workspace] /:

[klipper] Drop kdelibs4support dependency

\o/ - it's ported away

REVIEW: 118635

Diffs: 1, 2, 3 Revision 41d3e1f...
Vishesh Handa committed changes in [plasma-workspace] runners/services/servicerunner.cpp:

ServicesRunner: Give applications whose name contains the term higher preference

The current order works like this -
* Name contains term - 0.8
* Name starts with term - 0.9
* Generic Name contains term - 0.65
* Generic Name starts with term - 0.7
* Keyword contains name - 0.6
if it is a kde app + 0.09

Previously, it was -
* Name contains term - 0.8
* Name starts with term - 0.9
* Generic Name contains term - 0.7
* Generic Name starts with term - 0.8
* Keyword matches - 0.6
if it is a kde app + 0.1

This meant that if a kde app has a generic name that starts with the
term, it will get a higher priority than if there exists a non kde app
whose name contains the phrase.

Eg - "Marble" has a generic name of "Virtual Desktop" and is a KDE app.
It is ranked higher than "Oracle VirtualBox" when the term is "virtual".

With this patch, name matching always gets a higher relevance.

This patch also changes the priority of matches cause of categories.
They will now ALWAYS come after non category matches. Earlier if a
category matched + if it was a KDE app, its relevant would be 1, which
was would mean it would come after if the name starts with the term,
which is so stupid.

Reviewed By: David Edmundson and Rohan Garg

Office

Jarosław Staniek committed changes in [calligra] kexi/plugins/forms/kexiformscrollview.cpp:

Temporarily disable "sort" buttons because sorting is not implemented in forms