Issue 365

9th November 2014 by KDE Commit-Digest Team


Alex Fikl
Danny Allen
Giacomo Barazzetti

This Week...

Kickoff gets a new set of default applications. Marble adds highlight on click feature. Multiple optimizations in Trojita. Python 2 backend ported to Qt5/KF5. Rocs' port to KF5 is stable and becomes the main version (master).


Commits 1940 by 138 developers
Open Bugs 23136
Open Wishes 16108
Bugs Opened 191 in the last 7 days
Bugs Closed 158 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
David Faure
Albert Astals Cid
Gilles Caulier
Jonathan Riddell
Aleix Pol Gonzalez
Boudewijn Rempt
Burkhard Lück
Jeremy Paul Whiting
Yuri Chornoivan

Internationalization (i18n) Status

Bug Killers

Person Bugs Closed
Boudewijn Rempt
David Edmundson
Jan Grulich
Dawit Alemayehu
Eike Hein
Gilles Caulier
Christoph Feck
lukas kde org
Martin Klapetek
Joerg Ehrichs gmx de

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   []


  []    []


  []    []

KDE Base

[] [] [] [] []


[]   []   


[] []    




[]     []

Networking Tools

[] []    

User Interface

[] []    


[] []    





There are 69 selections this week

Bug Fixes

Development Tools

Milian Wolff committed changes in [kdevelop] /plugins/custom-definesandincludes:

Fix assertion about unknown projects in the IDAIM.

The problem was that projects opened before the IDAIM plugin gets
initialized where never added.

To add these in the ctor (synchronously! otherwise we get races),
we must restructure the code a bit. It is notoriously overdesigned
and really should be simplified. Why is the CompilerProvider a plugin?
Why is there ICompilerProvider? Why the distinction across so many

Well, more work for later.

Diffs: 1, 2, 3 Revision 0da10fd...
Pavel Petrushkov committed changes in [kdev-go] /:

Don't offer completion in strings and comments

Diffs: 1, 2, 3, 4 Revision 64f3008...

KDE Base

Martin Klapetek committed changes in [knotifications] src/kpassivepopup.cpp:
Kai Uwe Broulik committed changes in [plasma-workspace] /notifications/package/contents/ui:

Alleviate the annoyance of Job Finished notifications

Whenever a job disappears for whatever reason (cancelled, finished, error, ...) we display
a persistent "Job Finished" notification. When the user explicitly cancels the job, there's
no need to confirm since the job will be gone. This solution is not ideal since we just track
it inside the plasmoid (ie. when you click Cancel in a "Override this folder?" dialog, it will
still show the notification) but at least the obvious "You don't say" moment is gone that way.

Ideally in the future whoever is responsible for the job (KIO, ...) should be given the
responsibility for an appropriate notification since the owner knows best why a job quit.

Eike Hein committed changes in [plasma-desktop] /kicker:

Sync default favorites to Kickoff again.

Picks up the default browser via a libtaskmanager-style preferred://browser
favorite entry, with the same logic as in libtaskmanager and Kickoff.

Diffs: 1, 2, 3 Revision 4f79d42...
David Edmundson committed changes in [kde-workspace/KDE/4.11] kcontrol/dateandtime/helper.cpp:

Validate timezone name before setting

This patch ensures that the symlink /etc/localtime always points to a
file in /usr/share/timezones and not an arbitrary file in a user's home

Eike Hein committed changes in [plasma-workspace] /:

Install taskmanagerrulesrc again and add a mapping for Google-chrome-stable.

Google Chrome Beta uses a WM_CLASS matching it's .desktop storage id but
the stable version does not.

David Edmundson committed changes in [plasma-workspace/Plasma/5.1] shell/desktopview.cpp:

Remove uneeded code to stop alt+f4 killing the window

This fixes ksmserver not being able to logout or shutdown correctly as
it was unable to kill Plasma.

Tests showed that pressing alt+f4 no longer kills the window anyway
(possibly a change in kwin?)

REVIEW: 121004

Andrea Iacovitti committed changes in [khtml] src/ecma/kjs_window.cpp:

Preserve whitespaces in Alert window's text.
Other browsers do the same and it helps debugging stuff.

Nicolás Alvarez committed changes in [kio] src/widgets/pastejob.h:

Use the correct export macro in PasteJob.

Was using KIOCORE_EXPORT despite being part of KioWidgets.
On Windows that made it use dllimport when compiling itself,
which broke the build.

Lukáš Tinkl committed changes in [plasma-workspace] /:

fix opening a removable drive when the mountpoint contains a space

Diffs: 1, 2, 3 Revision cf9dc50...
Lukáš Tinkl committed changes in [plasma-workspace] /devicenotifier/package/contents/ui:

fix the action icon and progress bar for optical discs and MTP players

get the mounted state using the dedicated isMounted(udi) function;
this allows to simply eject e.g. an Audio CD which can't be mounted otherwise.

Also remove the action icon from an MTP player, it doesn't make sense
there and is non-functional anyway (one cannot mount/unmount it)

Diffs: 1, 2, 3 Revision e63fcdf...


Boris Egorov committed changes in [kdepimlibs] /src/smtp:

kioslave: fix SMTP SIZE handling, add test for it

CppCheck detected unused branch in capabilities.cpp. It was unused
because variable 'size' was never changing after initialization. Now
kioslave can change it and handle SIZE properly.

Diffs: 1, 2, 3 Revision cc3f3a2...


Boudewijn Rempt committed changes in [calligra] krita/ui/

Refresh the image graph so the filter dialog can show a preview

We want to show a preview of what the filter will do, so we need to feed
the dialog the new adjustment layer's original paint device. But unless
we synchronously recompute the image projection, that original paint
device will empty at this point.

Boudewijn Rempt committed changes in [calligra] plugins/colorengines/lcms2/colorprofiles/LcmsColorProfileContainer.cpp:

Skip color profiles with named colors

The Crayons and X11-colors profiles installed by colord claim to be
LAB profiles, but contain named colors and cannot be used in Krita
to convert colors, so skip those.

Boudewijn Rempt committed changes in [calligra] krita/ui/

Fix crash when using paintops that need a node

We need to set the actual current node of the active image, not the
node selected for the previous preset.

Boudewijn Rempt committed changes in [calligra] krita/plugins/paintops/gridbrush/kis_grid_paintop.cpp:

Don't crash the grid brush if no current node is set

This is a stop-gap: the real issue is figuring out why we don't set
the node on the preset's settings when selecting it anymore. However,
it never hurts to be careful with pointers.

Boudewijn Rempt committed changes in [calligra] krita/plugins/formats/psd/

Check that the image is homogenous before converting to PSD

PSD cannot handle images with layers in different colorspaces and bit
depths, so give an error message if that's the case.


Matěj Laitl committed changes in [amarok] /:

scriptable service: fix a crash due to double deletion of an object

Thanks go to Ralf Engels for pointing out the problematic code.

The problem is IMO not directly in insertItem() using KSharedPtr, but
in addTrack() which creates a KSharedPtr out of a track pointer, but at
the same time calls delete on the track pointer in some circumstances.

Once a pointer is KSharedPtr-managed, delete must not be used.

I've kept KSharedPtr for track in insertItem(). While using it is a bit
inconsistent wrt. surrounding code, it should have no effect (the crash
is IMO caused by addTrack() code alone). It feels more correct as it
prevents a hypothetical (currently unreachable) memory leak.

Interested folks, please test whether this really fixes bug 334479 for


Albert Astals Cid committed changes in [k3b/2.0] src/k3blsofwrapper.cpp:

Don't increase iterator after it's already at the end

Don't increase it after it's already at the end. We are increasing the iterator inside of the loop, and as part of the for so it'll be past the end and the it != l.constEnd() will be true and we will crash.

Changed the code so that it only increases the iterator if we know it's not at the end already.

Did some stand-alone code that runs over

const char * processResult = "p1445\ncchrome\nf5\nf6\nf12\nf13\nf16\nf17\nf21\nf22\nf26\nf27\nf32\nf33\np1453\ncchrome\nf6\nf7\np1528\ncdbus-launch\nf8\np1530\ncenlightenment\nf5\nf6\nf10\nf11\nf34\nf37\nf38\np1533\ncefreetd\nf6\nf7\np1540\ncgvfsd\nf6\nf7\np1565\ncterminology\nf5\nf6\nf10\nf11\np1566\ncfirefox\nf10\nf11\nf12\nf13\nf14\nf15\nf22\nf23\nf161\nf162\np1619\ncenlightenment_f\nf5\nf6\np1631\nctempget\nf1\nf5\nf6\nf37\nf38\np1679\ncat-spi-bus-laun\nf5\nf6\np1736\ncplugin-containe\nf6\nf7\nf11\nf12\np1822\ncthunderbird\nf10\nf11\nf12\nf13\nf14\nf15\nf21\nf22\nf44\nf176\np2261\nckdeinit4\nf0\nf3\nf5\np2263\ncklauncher\nf0\nf3\nf4\nf5\nf6\nf10\nf11\np2265\nckded4\nf0\nf4\nf6\np2267\ncgam_server\nf6\nf7\np2346\nckuiserver\nf0\nf4\nf6\np2381\ncknotify4\nf0\nf4\nf6\np2633\nck3b\nf5\nf6\nf14\nf21\nf22\nf25\nf26\nf28\nf33\nf34\np2791\nclsof\nf0\nf1\nf2\nf4\nf5\np2792\nclsof\nf3\nf6\n";

And it crashed, now doesn't crash anymore

REVIEW: 120944
FIXED-IN: 2.0.3

Ralf Engels committed changes in [amarok] src/services/lastfm/LastFmService.cpp:

Fix crash with LastFM during startup

Amarok crashed during startup reproducable due to virtual function
being called while still in constructor.

Networking Tools

Joris Guisson committed changes in [ktorrent] /:

Fix some magnet links not working in webinterface plugin

REVIEW: 120808

Joris Guisson committed changes in [ktorrent] plugins/infowidget/fileview.cpp:

Fix double click not working when double clicking on subdirectory in fileview

Arjun Ak committed changes in [ktorrent/4.3] ktorrent/view/view.cpp:

Show name of the column under the mouse pointer at the top of the treeview header context menu

This makes it easy to hide a column. We can right click on the column
we want to hide and select it from the top of the list instead of having
to go through the big list and selecting the required one from that.

REVIEW: 118913

Pali Rohár committed changes in [kopete] /history:

Fix bugs in pidgin history import for kopete

Thanks Timo Schlüßler for patch!

REVIEW: 6561

User Interface

Thomas Lübking committed changes in [kwin] focuschain.cpp:

step into the focus chain at the beginning

if the index is 0, we close the circle, but if the
index is -1 (invalid) we're "somewhere" and step
into the focus chain - reasonably at the beginning

REVIEW: 121024

Hugo Pereira Da Costa committed changes in [oxygen] /:

Added WeakPointer typedef to oxygendecorationdefines to allow compilation against both KDE4 and KF5
Use WeakPointer<Client> inside Oxygen::SizeGrip to keep track of client deletion and avoid crash.


Michel Ludwig committed changes in [kile] src/dialogs/includegraphicsdialog.cpp:

Includegraphics dialog should recognise Postscript figures

Patch by Yngve Inntjore Levinsen.


Development Tools

Pavel Petrushkov committed changes in [kdev-go] /:

Move getSearchPaths to Helper and implement
import package completion

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 49abead...


Alexander Semke committed changes in [labplot] /:

Allow custom resolutions for PNG-export.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 8a51064...
Abhinav Gangwar committed changes in [marble] /:

Added highlight on click feature

REVIEW: 118717


Gilles Caulier committed changes in [digikam] /:

Apply patch #89410 from Vincent Tassy about to add Album Category as a search criteria in advanced Search tool

FIXED-IN: 4.5.0

Tobias Leupold committed changes in [kphotoalbum] /:

Added a nice dialog to accept or decline a tag proposed by face recognition.

Diffs: 1, 2, 3, 4, 5 Revision bd9ef0d...

KDE Base

David Edmundson committed changes in [plasma-desktop/Plasma/5.1] kcms/migrationlib/kdelibs4config.h:

Add a small utility to sync kde5 config's back into kde4 settings

I dont' think it needs to be in frameworks, as the only user of
backporting settings will be the plasma kcms, but it's code that's
duplicated across these KCMS at the moment

REVIEW: 121002

Dawit Alemayehu committed changes in [kdelibs/KDE/4.14] kio/kio/tcpslavebase.cpp:

Allow user to cancel out of the certificate accept duration dialog box.

FIXED-IN: 4.14.3
REVIEW: 120975

Eike Hein committed changes in [plasma-desktop] /taskmanager:

Launch new instances on Shift+Click.

Kai Uwe Broulik committed changes in [plasma-workspace] /notifications/package/contents:

Bring back Notifications applet settings UI

REVIEW: 121006

Diffs: 1, 2, 3 Revision 5fab91f...
Alexander Richardson committed changes in [kservice] src/plugin/kplugintrader.cpp:

Implement KPluginTrader::query() using KPluginLoader::findPlugins()

REVIEW: 120199

Martin Klapetek committed changes in [knotifications] /:

Make KNotificationPlugin a public class

Now it's finally possible to write custom extension plugins for

REVIEW: 120728

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision b7a26df...
Kai Uwe Broulik committed changes in [plasma-framework] /declarativeimports/core:

Add thumbnailAvailable property to PlasmaCore.WindowThumbnail

This property tells us whether a thumbnail is actually being rendered or it has
fallen back to the window icon

REVIEW: 120946


Jarosław Staniek committed changes in [predicate] /:

Add support for 'NOT LIKE' SQL operator

from Calligra master 26818f22b2669f72a6

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 10183b9...
Stephane Mankowski committed changes in [skrooge] /:

feature: New advice detecting scheduled operations having date not aligned with the last inserted operation

Diffs: 1, 2, 3, 4, 5 Revision 280f3f1...
Stephane Mankowski committed changes in [skrooge] /:

feature: New dock to be able to see all messages displayed

Diffs: 1, 2, 3, 4, 5 Revision 5c45307...
Stephane Mankowski committed changes in [skrooge] /:

feature: Show sum of spendings in tables when operations are grouped

Diffs: 1, 2, 3, 4, 5, 6 Revision 6c8de6d...

Networking Tools

Jan Grulich committed changes in [plasma-nm] libs/editor/widgets/bssidcombobox.cpp:

Add frequency to the BSSID combobox

David Narváez committed changes in [rekonq/frameworks] /:

Implement Unique Mode Properly in Rekonq

The current patch just makes it possible to open several Rekonq
applications. It does not do the right thing when a Rekonq window is
already open in the current activity and a user clicks a link elsewhere
(step 4 in the Testing Done section) because it starts a brand new
Rekonq window, but that's a different patch. It also does some funky
thing asking you if you want to restore the previous session when
nothing has crashed

REVIEW: 120794

Diffs: 1, 2, 3 Revision 8a8ff1b...
Jan Grulich committed changes in [plasma-nm] libs/editor/widgets/bssidcombobox.cpp:

Display also channel in the BSSID combobox

Pali Rohár committed changes in [kopete] /contactlist:

Show emoticons in contactlist

The contactlist no longer shows emoticons in recent kopete versions. This patch
re-enables this feature for both status title and status message.

Thanks Stefan Geuns for patch!

REVIEW: 2542

Diffs: 1, 2, 3 Revision b99dbfc...
Joris Guisson committed changes in [ktorrent] /:

Properly support x-scheme-handler/magnet mimetype, and drop old hard-coded magnet.protocol.

Patch from Rex Dieter

Review: 108648

Diffs: 1, 2, 3, 4 Revision f090d11...

User Interface

Martin Gräßlin committed changes in [kwayland] /:

Add DataDeviceManager and DataSource in client and server

Basic implementation of the DataDeviceManager and the DataSource it

Still needs support for DataDevice and DataOffer to complement the

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 14bb93f...
Martin Gräßlin committed changes in [kwayland] /:

Add implementation for wl_data_device in Server and Client

On the client side anything related to wl_data_offer is not yet

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision c39b97e...


Michel Ludwig committed changes in [kile] /:

Make the file browser widget's LaTeX filter toggleable

Initial patch by Ryan McCoskrie.

Diffs: 1, 2, 3 Revision 0cab747...
Rolf Eike Beer committed changes in [kgpg] /:

only show those algorithms supported by the GnuPG binary when creating a key

Diffs: 1, 2, 3 Revision ecc2139...


Development Tools

Andreas Hartmetz committed changes in [dferry] /:

Rework message ownership when passing from / to Transceiver.

Since Message is noncopyable but movable, there is no reason to use a
unique_ptr - the move semantics are fully built-in with the d-pointer
and all. If we have an indirection, might as well use it.

Also add a cookie parameter to PendingReply, which should often save
its clients a hash / map if they intend to do any routing of their
own. Save a pointer elsewhere in PendingReplyPrivate by exploiting
the fact that transceiver (which supplies a reply) and reply are
never relevant at the same time.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 5 more) Revision 0d9e1f0...

KDE Base

Sebastian Kügler committed changes in [kservice/sebas/kpluginindex] autotests/kpluginmetadatatest.cpp:

Run the query through KServiceTyperTrader as well

to allow performance comparison. This actually reveals that we're only
faster when querying for the first time. All subsequent queries are
blazingly fast (down to 32 microseconds on this machine), KPluginTrader
without caching takes in the range of 24 milliseconds, with caching it
gets down to 4 - 6 milliseconds.

Perhaps we can speed subsequent queries up by keeping the json structure
read from disk in memory to speed up subsequent queries as well.

In any case, with caching it's much faster already.

Note: to create the cache files, you need to build
kcoreaddons[sebas/kpluginindex] and run

kplugin-update-index -a

(Use -a -r to remove all index files).


Gerrit Test Instance Operator committed changes in [trojita] /Imap/Model:

Speed up rechecking of message flags

The old code was calling QString's operator==, which in the end leads to
comparing stuff byte-by-byte just to see if they happen to be the same
(with, I hope, a quick path for comparing identical objects). However,
we have an architecture which guarantees that the system flags are
always implicitly shared, and hence their D-pointers are the same.

This change speeds up things at least by a factor of two by comparing
the D-pointers directly. As a bonus, it also adds an optimization for a
special case of TreeItemMsgList::recalcVariousMessageCounts by looking
for the two flags which are needed at once.

Change-Id: Ie240307550b3c11f8c782493194bbe7ac0c5fed8

Gerrit Test Instance Operator committed changes in [trojita] /Imap/Model:

Do not consult all messages for flags when just a single one got deleted

This cuts the time spent in handleExpunge to about a 1/3 compared to
HEAD~1. The total savings compared to the state before we switched to
QVector amount to a speedup by a factor of eight (16e9 callgrind
instructions -> 2e9 instructions).

Change-Id: I6b45e15ab689accf458c421e29161e010aad4e91

Gerrit Test Instance Operator committed changes in [trojita] src/Imap/Model/Model.cpp:

Use iterators instead of operator[] for iterating a QVector

Both of these should be essentially free, but it happens that the debug
builds of Qt use boundary checking in the operator[], but not when using
iterators. Since there's absolutely no reason to use boundary checking
with this already-checked iteration, let's make sure it isn't needlessly
slow even in debug builds.

Change-Id: I9787c05f6489789bb1dad7bd2ea762436fc87fd4

Gerrit Test Instance Operator committed changes in [trojita] /Imap:

Defer UID map saving when there's heavy incoming traffic

Previously, the seq->UID map would get rebuilt and saved into the DB
upon every EXPUNGE. That was quite expensive, as the test which deletes
15k out of 30k messages quite clearly indicates. This code makes sure
that the rate in which the data are saved is limited.

Originally, this was implemented by maintaining a pretty short time
window. The goal was to prevent excessive actions while the responses
still continue to flow, but at the same time to avoid excessive delays
in case the burst stops. I wanted the time window to be reasonable small
so as not to require adding multiple qWait()s into other tests. A single
EXPUNGE is typically less than 18 bytes ("* 1234567 EXPUNGE\r\n"), so in
order to send 100+ of them in a 10ms, it could require a 180 kBps, i.e.
about 1.44 Mbps bandwidth (at least as a burst). That might indeed be a
bit too high for a cell phone connection :(, as Thomas pointed out.
That's why the time window is a bit longer now.

Also make sure that no events get lost when the KeepMailboxOpenTask dies
prior to a timer firing, such as when switching mailboxes.

Change-Id: I77e638b3278918961d316cf4a615b5c78d15a79d

Diffs: 1, 2, 3 Revision d24fd88...
Gerrit Test Instance Operator committed changes in [trojita] /:

Use QVector for passing lists of UIDs

OK, this is a big patch. Stuff started when I was profiling quite a slow
operation of mass expunges which was reported by Luke-jr on IRC. Some
profiling indicated that quite a lot of time was spent within
QListData::append. Adding a call to QList::reserve didn't help that
much, while replacing this with a QVector led to interesting results.
The cache format stays the same -- QDataStream uses the same
serialization format for both, which is cool.

Unfortunately, this change propagated into quite a few places. As I was
modifying the code anyway, I decoded to do it properly, with typedefs
and what not. Of course, QVector and QList have slightly different APIs,
especially the removeOne/removeAll/removeAt vs. just remove (until Qt
5.4 which actually added compatibility API, but we cannot depend on 5.4

The speed improvements suggest going from 2.5 to 1.5s on a synthetic
benchmark, Looking at callgrind's output, the total time spent in
Imap::Mailbox::Model::saveUidMap went from 34% to ~17%, which is IMHO a
pretty cool improvement.

Majority of time is now spent in comparing strings when determining
unread status of flags -- that's the next item on my list, because this
test exercises that code path a lot, again in an O(n^2) manner.

Change-Id: Ifb86903118b996c4bf5764965c06f4145eda6e07

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 31 more) Revision d789339...


KDE Base

David Edmundson committed changes in [kde-workspace/KDE/4.11] /dateandtime:

Do not pass ntpUtility as an argument to datetime helper

Passing the name of a binary to run to a polkit helper is a security
risk as it allows any arbitrary process to be executed.

This patch moves the detection of ntp utility location into the helper

REVIEW: 120977

Diffs: 1, 2, 3 Revision eebcb17...


Development Tools

Milian Wolff committed changes in [kdev-php-docs] /:

Initial port to Qt 5 / KF 5.

It seems to load and work OKisch now.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision eefbade...


Andrius Štikonas committed changes in [kbruch/frameworks] /:

Port KBruch to KDE Frameworks

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 41 more) Revision 313a1f9...
Andreas Cord-Landwehr committed changes in [rocs] /:

Merge branch 'frameworks'


DIGEST: frameworks is stable enough to become master \o/

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 339a712...
Filipe Saraiva committed changes in [cantor/frameworks] /backends:

Python 2 backend ported to Qt5/KF5
DIGEST: Python 2 backend ported to Qt5/KF5

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision eec961d...


Hrvoje Senjan committed changes in [svgpart/frameworks] /:

Initial port to Frameworks

tested the part in KF5 based konqueror, local files open fine

Diffs: 1, 2, 3 Revision 9cab49e...

KDE Base

David Edmundson committed changes in [plasma-desktop] /keyboard:

Remove keyboard click volume

They keyboard daemon had a weird option for making your system make a
short beep whenever you pressed a key.

This doesn't work and doesn't seem particularly useful anymore

REVIEW: 120352

Diffs: 1, 2, 3, 4 Revision 9bbb587...
Jonathan Riddell committed changes in [plasma-desktop] applets/kickoff/core/favoritesmodel.cpp:

Update default applications in kickoff

Instead of defaulting to konqueror find the first browser from a list
Change konsole to ktp-contactlist, we want to appeal to non geeks
Change kmail for kontact, we provide a lovely PIM suite so we should show it by default
Change kwrite to Kate, everyone knows how to use tabbed interfaces these days



Stefan Burnicki committed changes in [bangarang] /:

Simple new build files, main file.

This is a simple version of the build files and a main.cpp
with some basic stuff.

The CMakeLists.txt files should get extended when functionality
is added to avoid unused dependencies.

Diffs: 1, 2, 3, 4 Revision 4efc70d...