Subscribe to Planet KDE feed
Planet KDE -
Updated: 23 min 6 sec ago

KDE Applications 4.13 released

3 hours 35 min ago

Today we've released 4.13 which is probably the best KDE Applications release ever :)

It also marks the second release we do with a four months schedule instead of a six month one. I think we've ended up with a pretty nice cadence in which we are faster delivering features and bugfixes to users, which at the end is what is important, since the earlier people get the features the earlier they'll find the bugs (let's accept it, all software has bugs) and the earlier the bugs are found the earlier they can be fixed. So basically it's faster progress :)

We have also made good our promise to keep our tests passing, as you can see everything from this release is green (kde-workspace is not green but is not part of the 4.13 release). So kudos to all developers for being awesome in that regard too.

Let's all celebrate on this release but not forget we need to keep working full steam ahead on the releases of KDE Frameworks 5, Plasma 2014.06 and KDE Applications 4.14.

Finally I'd like to remind you that most of the people doing KDE development are volunteers and they invest their time in making this awesome software for you to use for free.

Lots of them even spend time to travel abroad to meet each other in Sprints were they do concentrated hacking for a few days, so if you appreciate the work they do in those Sprints please donate some money so we can actually help them travel and we can make more Sprints happen :-)

As anecdote, I had the pleasure of meeting the guys from the KTP Sprint this Friday and after dinner they went back to hacking instead of joining some of us for some beers. That is dedication!

Header/Source switching in Vim

4 hours 2 min ago

I’ve been using the vim-fswitch plugin for switching between .h and .cpp files for a long time now. The thing I was really missing was the inability to switch to private headers and implementations (filename_p.h and filename_p.cpp)

Recently, I discovered the (more than awesome) CtrlP plugin. I am not going to explain here what it is – I strongly advise you to check it out!

I’ve written a small extension for it which provides the header/source/private files switcher.

Switcher screengif

Calligra 2.8.2 Released

4 hours 35 min ago

The Calligra team has released a bugfix version 2.8.2 of the Calligra Suite, and Calligra Active. This release contains a few important bug fixes to 2.8.0 and we recommend everybody to update.

Bugfixes in This Release

Here is an overview of the most important fixes. There are several others that are not mentioned here.

  • Move Export to PDF command to the Export menu section instead of the Print section for conformance with other office suites (bug 332603).
  • Fix “Missing import filter” bug when saving if not extension is specified (even if selecting a File type is set to a format) (bug 328975).
  • Use native file dialogs on Windows.
  • Make Rich Text property false by default for Text Editor form widget. Rich Text often causes misbehaviour.
  • Fix resetting the slider spin box when double clicking on it (bug 330165).
  • Ignore tablet press/release events which did not produce any sane buttons (bug 331925).
  • Added support for ‘evdev’ tablets (bugs 332239, 331572, 329641).
  • Save line smoothing options between runs of Krita. This is really needed for low-level tablets like Genius to filter the trajectory they report to us.
  • Make Krita auto-recognize axes labels of Evdev tablets. The labels are stored in a special property of the XInput device.
  • Recognize Surface Pro 2 tablets on Windows (bug 331922).
  • Fixed size of predefined images.
  • Set default gradient to alpha (bug 329008).
  • Clean up the layout of the Transform tool.
  • Hide unused settings for stroke in the Path tool (bug 331556).
  • Fixed memory leaks in brush handling.
  • Fixed memory leaks when resources fail to load.
  • Fixed memory leaks when creating strokes (bug 331592).
  • Don’t crash on creating a file layer in Krita Gemini (bug 332871).
  • Improved splash screen.
  • Fix loading plugins for Krita Gemini.
  • Save tags with special characters properly (bug 332708).
  • Fix removing of tags, don’t load or save dummy tags.
  • Add import for PSD layer groups (bug 289857).
  • Fix translation issues.
  • Fix startup of Krtita Sketch and Gemini.
Try It Out About Calligra

Calligra is part of the applications from the KDE community. See more information at the website

Krita 2.8.2 Released

7 hours 18 min ago

Today the Krita team releases the second bugfix release of Krita 2.8.

Most of the development  work at the moment is going into some big issues for 2.9, like the resources manager, MVC refactoring and HDR color selectors, but there are some nice improvements

  • add support for reading PSD layer groups
  • new splash screen with recent files and links to the Krita website
  • save tags with special characters properly (bug 332708)
  • fix removing tags
  • restore native file dialogs on Windows
  • fix a bunch of memory leaks

And expect more bug fixes for 2.8.3!

Linux users can get updates from their distributions, Windows users can download installers from the website.

Closing doors

11 hours 6 min ago
Yesterday was my last day as KDE e.V. Board Member. As you know I have been the KDE Treasurer since April 2012. I will keep being part of the Financial Working Group so I will be able to help my successor during the landing process and in the future. I still have some leftovers to finish (reports) and I plan to write a couple of posts about our numbers, so you all know what it the situation of KDE e.V. in general....healthy, by the way :-) It is being a soft transition.

KDE e.V. is in the right time to be ambitious and heavily increase its resources to support KDE community. Several decisions have been made in this regard and they will be executed during this 2014. The financial situation is healthy enough to afford some level of expansion. So I think it is time for somebody else to come with energy and enthusiasm to drive these changes the following months/years. And we have that person so.....

KDE e.V. is a solid organization, well managed and with a Board that takes the financial area seriously. It has been a pleasure and a honor to be part of the Board.

On the other hand, my relation with SUSE will end this month. Working on openSUSE, an specially building and leading the openSUSE Team, has been a great experience. I wish them all the best, specially in their current main task, turning Factory into a "usable" rolling release by changing the development work flow/process. It is a goal with a high impact for openSUSE.
openQA has a nice present, a tremendous potential and future, not just from the technical but also from the business point of view. For those of you looking for a great place to work, consider SUSE. It was for me.

The last few weeks I have been temporary living in Prague. I love this city. I am not attending to openSUSE Conference (I am sure it will be a great one) and I am not sure if I will be able to go to Akademy-es, which is a pity since it takes place in Malaga, where I lived for three years, and it is organized by one of my colleagues, Antonio Larrosa. I plan to go to Akademy in Brno though.

As you can see, these are times for changes, after around two years putting my best in KDE e.V. Board and SUSE/openSUSE. I have no idea what am I going to do next but I am sure it will be exciting so I expect an article soon called "Open Doors". Otherwise....I will not know what to do with so much time, or maybe I will... write more posts. :-)

Qt on Android: The top 5 markets

13 hours 56 min ago

The power of Qt running on the ubiquity of Android is a potent combination that can be used to great effect in a number of different applications. But are there certain apps that really shine when they’re built using this dynamic duo?

Before I go any further, let me introduce myself. My name is Andy Gryc, and I’ve worked in the embedded industry for my entire career. I’ll be contributing a few guest blogs in anticipation of KDAB’s Qt on Android webinar, presented by BogDan Vatra with a little assistance from yours truly. I won’t be delving into the bits and bytes—I’ll leave that to BogDan as the world’s foremost “Qt on Android” expert. Instead, I want to ask some meta-questions.

My first question is obviously this: What types of apps rock Qt on Android?

  • Medical – Real-time and reliable access/control of hardware (pure Qt embedded system with an amazing UI)
  • Home Media – A set-top box that can leverage a standard development platform (Android) but allows precise control of the embedded hardware decoders/encoders (Qt/C++)
  • Enterprise – Server/cloud applications that can be deployed on Windows, Mac, or Linux desktops (Qt) as easily as on phones (Qt + Android)
  • Automotive – Easy access to low-level vehicle systems (C++) and high performance user interfaces (Qt) with an app framework (Android) for infotainment systems
  • Gaming – Games written using a powerful C++ and graphical toolkit (Qt) that can be ported to multiple desktop, console, or mobile platforms (including Android)

Although these are my top five, there are certainly others. In fact, there is great potential for Qt on Android wherever a system has either of these two characteristics:

  • Any app that needs low-level access from a high-level common environment—much like in-dash apps for the automotive market. For example, airline in-flight entertainment, heavy machinery, or white goods (sophisticated appliances)
  • Anything that needs cross-platform deployment strategies between mobile and non-mobile (desktop or embedded)—like the enterprise market. Other apps that fit into this category are satellite radio receivers, universal remotes, network admin consoles, even educational/academic applications

I’m sure there are other industries and apps that I haven’t thought of. I’d love to hear if you are using Qt on Android for a different purpose or can think of other ideal applications.

Looking for more detail? Join BogDan and me on May 6 for “Qt on Android: Is it right for you?” We’ll be providing an overview of this technology marriage, and how you might be able to apply it to your project.

Want even more? In the month of June, BogDan will be extending his European Coffee and Code tour to several cities across the US. This will be a hands-on technical session: getting your development ramped up quickly, explaining how Qt and Android works, and for the really adventurous, getting into the nuts and bolts like JNI interfaces and Qt-to-Android surface control.

The post Qt on Android: The top 5 markets appeared first on KDAB.

Recap post To Dantix@reddit (+all): Wth is Community Design anyway?

Tue, 2014/04/15 - 6:13am

In which I write my first "recap" post about what's been set and what's been talked about and how things work. Just a little how-to for everyone who just joined us! This time it's about Community Design and why it matters so much.

Photo Jencu "Sharing Toys" CC-SA
I've been meaning to write this post for some time - a sort of recap for people who just joined us in what's going on.
Dantix, a reddit poster was a tad miffed that the editable combobox was the wrong size for it's scroll-down arrow. I'm not trying to call the dude out, I'm sure he (or she) is a brilliant person and didn't mean anything mean, it was just a comment and an apt one so no harm no foul!

But it told me that I need to talk more about this Community Design thing.


There are three points I really want to take up:

1) Everything shown will be shown from scratch. Nothing hidden.
Now from a marketing perspective that sucks. Lets be honest - we all like "the big reveal" where some designer in a turtleneck pulls back to curtains and go "tadaaa!". We wont do it like that. You will see it when it's just a mass of scribbles all the way to the finished product.
Why is it like that? Because that way everyone can see the process. It gets demystified and something more accessible and open to all. It shows everyone the trick behind it. Design have become a catch-all for "don't bother me, you wouldn't understand" and I don't think thats a healthy attitude for Open Source to adopt.

2) You are expected to join in if you want to. As long as you play nice the toys are for everyone.
This is the big one. Yeah yeah you've heard it before. But its true. No matter how little of an "eye for design" you have, you have it. Comment, post mockups and try to see the cool things people do and spin off that.
I can't promise that you're work will end up being the official theme for Plasma Next - but I can promise that you will influence it. We actually DO listen to comments. To cool ideas especially.
And that's the bit to remember - its always better to contribute than to comment especially if you're comment is "I don't like that". We have some rules and they are essentially: If you post criticism, what it is you don't like, why you don't like, how it could be fixed and propose a fix it's a gold star comment. If you criticize, specify what it is you don't like and how it could be fixed. Thats a silver star comment. If you criticize and specify what it is you don't like ... thats bronze. As long as you do it in a nice and cooperative way it's ok to post. If you can't say exactly what it is you don't like about something AND can't be nice about it - don't post.
If you have a cool idea on the other hand. Post. Thats the only rule for contributions.
Why is it like this? Because we want to foster a friendly attitude. Design IS communication and communication is hingent on a community. By letting everyone feel like they can contribute with mockups and cool ideas - we get more cool ideas. By playing with the art or design school rules of criticism we make certain that the other nasty and sadly common thing in design is minimized - the nonsense put-downs to make yourself seem "better" or the simple "you suck" comments that does nothing at all for design work.

3) This is a massive social experiment.
Yeah. It is. It's the tricky bit in what I do. On the one hand the goal is to create a stunning visual design for Plasma Next, on the other the plan is to create a community of designers and make design a "thing" within Plasma and KDE and Open Source in general.
I want to change the way we look at people and divide them into experts and "everyone else". I want to tear down those barriers and makes us all feel included, like we're a part (like I felt on the first sprint I was at). I want to change the way we handle design and this work is a test for that.
Why is it like that? Because I am old enough to know that failing is only really good when you fail miserably (that's when you learn things) and that sometimes you got to aim for the moon and skip the tree tops.
When I got into this I talked to some of the other designers who had worked on KDE projects and many of them where more or less burned out. They had worked themselves to the bone and then crashed due to it. I didn't feel like being another one AND I wanted to fix the issue permanently. So I went for the higher goal of it aware that it would mean more work for me personally and a higher risk of failing.


Not only so that we all started talking about design more constructively. Not just so everyone felt they could comment and be a part. Not only that there where hundreds of designers where yesterday there where one or two. Not only that.

But so that in the future there would be a model a system in which design would be created without the need for a petty expert-dictator who's presence was ever needed for the work to go forward. Where the load was shared by all. Where the work was more play than backbraking labour.

Maybe it will succeed, maybe it will fail - but if it does fail I think we can all agree that it will be a majestic catastrophe of a failure ;)

Next time I'll talk about the Design Vision (it won't be boring promise) what it is, how we intend to stick to it and where we are now in terms of design guidelines.

Calling all Testers

Mon, 2014/04/14 - 10:06pm
KDE Project:

Candidate images for Kubuntu 14.04LTS are up and need you to test them. Go to the ISO tracking site to download and mark your testing status. Check out the milestoned bugs for issues we are aware of and do report any we are not.

Monday Report #11 - Go time!

Mon, 2014/04/14 - 6:11pm

In which we talk about widget theme, community participation, ask for help, show off work by two handsome devs and mention some future promo work to come!

KDE VDG group member, hard at work!
This time I will focus primarily on the widget theme. Now as some of you may now there is a "quiet area" where we keep some of the work that either needs to be secret or where there are some issue or you want to test things or you need to work on it in quiet in a small group.

This isn't the end plan - the idea is that in the end everything except sensitive things (where perhaps the dev has asked us not to tell others about it yet) will be done in the open. Now is the time to try that out for reals!


Andrew has been hard at work with the widget theme - now unlike before it doesn't demand that you know C++ just that you can handle QML. Now what does that crazy abbreviation mean? Well, QML is "Qt Meta Language" and it's the way we can among other things style Qt apps or widgets.
It is comparatively simple to use and learn. I say comparatively because I'm trying to learn it as we speak and I would be lying if I said it was a dance on roses BUT it's way simpler than any other method for styling AND it offers a ton of features and possibilities.
Andrew is well under way with it and the current iteration - as well as a sneak peak at the window theme - can be seen here:

But he needs the communities help refining it! In his post in the forum is a short recap of the issue and some instructions as well as an invitation to EVERYONE no matter what skill level (or indeed if the suggestions are done in words or mockups or QML) to participate. I can only suggest that you do! The more we are, the better it will become!


Aside from that some rather fascinating possibilities have opened up. Alex Fiestas and Vishesh Handa, two of what I prefer to call "KDE's finest" have started working on a new Video Player.
Now many might think that this is a waste of time as there already are video players out there - then let me let you in on a little secret. Inside this thick skull of mine is a dream of crafting applications made for desktop usage. Where we take a sincere look at whats needed, how it can best be presented, how it should work and flow - without feeling stuck in the hellish "where did my X/Y/Z feature go in X/Y/Z software?" problem. When you remodel something existing you run the risk of ruining it. It's a simple fact - it also ties you down design wise because we're nice people (trust me, designers are not only "nice" we are also "people") and to storm in and tell someone who doesn't want to change their application that you're there to do just that isn't a great experience.


Also this week hopefully a small promo video will be cut together for one detail or two of Plasma Next. Nothing long or fancy, no wonderful great secrets revealed BUT something to set the tone.

So this was perhaps not the longest monday report - but it was hopefully pleasant to read and informative! Until next time! (Oh and remember my promise "A year and a day for KDE"? 20% of the time has now passed...

KDE software on Mac OS X

Sat, 2014/04/12 - 1:29pm

As I probably already mentioned somewhere there is currently quite some energy going into the work of bringing more and better KDE applications to the Mac platform.

So it’s a perfect time to get involved, help to solve the problems or test our software on another platform and thus make another step in {our,a} plan to konquer the world. And don’t hesitate to do this for other platforms as well and/or come to Randa to help with this.

PS: There is still the little poll open about KDE, families and Randa. Please participate and share your anonymous opinion. Currently seven people filled it in.

flattr this!

VIM: “Hiding” C++11 lambdas

Thu, 2014/04/10 - 10:05pm

One of my favourite C++11 features are lambdas.

The syntax is a bit cumbersome, but it was the best approach the committee could take without creating a new sub-language. Every part of the syntax has a reason for why it exists.

But, it still is a bit ugly, and can influence readability of the surrounding code quite a bit.

Lambdas in C++11

The thing that annoys me the most is the lambda head – the capture block and the arguments it takes. Those are very important when writing the code, but not (that much) when reading it.

My solution for this? The conceal feature of Vim.

C++11 Lambdas concealed

The good thing about lambdas is that they are (meant to) be used as local anonymous functions. That means that, while reading other parts of the code, you don’t actually need to know what the lambda is capturing, nor which are its arguments. So, it doesn’t hurt to hide them, right?

Naturally, when you want to edit the lambda head, Vim shows the actual contents of line, and not just some strange Greek symbol. :)

This also lowers the desire to use the potentially problematic [&] and [=] as the capture block, instead of explicitly capturing the variables that you need.

Install Kubuntu on Windows XP Systems

Thu, 2014/04/10 - 1:27pm

KDE friendly web magazine Muktware has posted an article to Install Kubuntu on Windows XP systems for the millions of Windows XP machines which are now out of support.  With SSL breaking making the national news, you really can’t afford to be out of support.


LGM 2014, one more year of awsomeness in Libre graphics software

Thu, 2014/04/10 - 10:42am

Here’s my report of the Libre Graphics Meeting 2014 that took place in Leipzig last week:
-Very nice people
-Awesome projects
-Productive connections
-Time was flying (and a quadcopter drone too… ;P )

Seriously, it has been one more impressive meeting, big thanks to the organisers who made very good work!
And again, very big thanks to KDE e.V. for supporting me to can represent Krita there.
I could make a workshop about managing all kinds of assets in Krita, and participants were very happy about it. I also improvised a little lightning talk to forward the Krita Steam early access announcement that happened the same week.

Then, lots of unexpected productive discussions:
-I spent lot of time talking with Tom Lechner and learned some cool fanzine production tips, that make me want to do some now. And he’s a crazy good independant comics artist, so it was very inspiring to can discuss comics related topics with him.
He also has developed incredibly good new tools in his Laidout software, I definitely must give them a try! And I hope to see some of these tools included in others libre graphics software at some point, as he’s been working on the Tool Sharing concept..

-I met Manuel Quiñones, the one who made the xsheet-mypaint branch two years ago for a local animation production in Argentina. He is now working on a new “Xsheet” animation software from scratch using libmypaint for the brushes and GEGL as “canvas engine”. Again it was really good to can meet him and discuss animation related projects, and how his xsheet software could be used in combination with the Krita animation plugin that is in progress.

-David Tschumperlé from Gmic was there too for the first time, so it was great to finally meet him personally as we worked together recently on the colorize-comics filter. I hope to can send him good ideas for some new Gmic filters soon.

And of course all the other presentation and workshop topics were immensely interesting for someone working in graphics: fonts creation, raw photography workflow, all kinds of 3D work with Blender, Inkscape and SVG specs evolutions, the Libre Graphics Magazine team talks…

It was cool to see the Gnome design group talk, but then I’ve been thinking that the new Visual Design Group in KDE community was badly missing, so I hope some of them will be able to come next year.

Look forward to the conference videos that should be online soon, and the first LGM-people aerial-group-video recorded by Jakub Steiner from his funny quadcopter!

Recent Dolphin bug fixes

Wed, 2014/04/09 - 10:54pm

Some time ago, I wrote a blog post about changes in Dolphin 4.12.0 and earlier versions that reduced the memory usage and improved the performance. These improvements were only a small part of our efforts to make Dolphin more pleasant to use, however.

Here is a summary of all bugs that were fixed in Dolphin during the past months:

Dolphin 4.12.4
  • Bug 332143: When searching files by content, and Nepomuk is disabled, search in all plain text files. Before this fix, we only searched in files whose MIME type begins with “text/”, which excludes, e.g., shell scripts. See git commit c52ba944, review request 116805.
Dolphin 4.12.3
  • Bug 330047: Restore the URLs of both views correctly when restoring a session. See git commit be29aed5, review request 115406.
  • Bug 330605: Fix the problem that the Dropbox plugin prevents the git plugin from working. See git commit 2a6a1f5a, review request 116019.
  • Bug 305694: Show the correct icon size in the tool tip for the “zoom slider” in the status bar. See git commit 885d260c, review request 111197.
Dolphin 4.12.2
  • Bug 330126: Do not show tooltips while renaming a file. See git commit 8007143f, review request 115146.
  • Bug 330001: Always enable the “Create New…” menu if the URL is writable. Before this commit, this did not work in some special cases. See git commit 48653030, review request 115405.
Dolphin 4.12.1
  • Bug 328791: When adding columns in Details View, also update items that are currently filtered. See git commit 2260d70e, review request 114266.
  • Bug 329118: If a file is renamed outside Dolphin, update it even if it is filtered at the moment. See git commit c0a85189, review request 114459.
  • Bug 294054: Disable the “Create folder” action in read-only directories. See git commit 67bb99c5, review request 114560.
  • Bug 250787: Kill any running preview jobs before starting a new one. This fixes a race condition that could make the Information Panel show an incorrect preview image in some situations. See git commit 8ed499f2, review request 114561.
Dolphin 4.12.0
  • Bug 302703: Fix layout issues in the view when switching from Details View (without expandable folders) to Icons View. See git commit 69c9100f, review request 111632.
  • Bug 288629, bug 322299, bug 322812: Do not allow that panels are dragged out of the main window. This feature was not extremely useful, but it caused some serious bugs. See git commit 5583fc63, review request 111692.
  • Bug 321577: Do not enable the “Create New…” menu when a search is finished. See git commit 8325140a, review request 111805.
  • Bug 260717: Show the full information for a file in the status bar if only one file is selected. See git commit ba56ec86, review request 111934.
  • Bug 260717: Show the full status bar information also for hovered folders. See git commit 8941745b, review request 112106.
  • Bug 318518: Count the items inside subfolders (e.g., for the “Size” column in Details View) in another thread. This can prevent a blocking of the user interface while counting many files on a slow device. See git commit 81a6f33a, review request 111920.
  • Bug 324371, bug 325359: Make the code that removes items from KFileItemModel more robust. This fixes two bugs, including a crash. See git commit 84b40da8, review request 113070.
  • Bug 325543: Make it easier to expand folders in Details View with a large icon size. See git commit 4873685e, review request 113169.
  • Bug 323181: Abort loading the current URL if the user presses Escape. See git commit 1a997903, review request 113234.
  • Bug 304363: If an expanded folder with subfolders which are also expanded is collapsed and then re-expanded in Details View, ensure that the full expanded directory tree is restored. See git commit 07f0d125, review request 113293.
  • Bug 319282: Update the Places Panel entries when switching the language. See git commit 6dd2ae4e, review request 113850.
  • Store the selected items in a more efficient way. Rather than storing all selected indexes in a QSet, which requires a lot of memory and CPU time when pressing Ctrl+A in a huge directory, we now store the beginning and length of each contiguous interval in the selection in a sorted list. See git commit 5c5d87fe, review request 113488.
  • Simplify the relationship between DolphinMainWindow and DolphinNewFileMenu. See git commit d0a9410e, review request 111989.
  • Replace a loop that resets all items in a QVector to the default value by a call to QVector::fill(). See git commit 38adcc0c, review request 112179.
  • Simplify error handling of the “Create New…” menu. See git commit dd16a11d, review request 112178.
Dolphin 4.11.5
  • Bug 328262: When canceling a rename operation because a file with the new name exists already, do not change the file name in the view. See git commit 385e5fef, review request 114228.
Dolphin 4.11.4
  • Bug 287983: Do not truncate the text in tool tips for files with very long names. See git commit 1af756f1, review request 113101.
  • Bug 327224: Fix a regression that broke opening the trash by clicking the trash widget on the desktop. See git commit 1c856e44.
  • Bug 327412: When going back by clicking the “back” mouse button in the empty space of the view, do not select any items in the previous directory if the view is scrolled down. See git commit 41ece8e9.
  • Bug 306631: Fix incorrect scrollbar spacing when using the QtCurve style. See git commit 39e7ba46, review request 113902.
  • Bug 327709: Fix incorrect geometry updates of the view after resizing the window quickly. See git commit b3322111, review request 113939.
Dolphin 4.11.3
  • Bug 325344: Remove all children of expanded subfolders when switiching from Details View to Icons View, including the children which are filtered. See git commit befa646f, review request 112962.
  • Bug 267171: Show the right version control states for expanded items. See git commit bbbfeb28, review request 112980.
  • Bug 324479: Make it possible to select file names containing Space with the keyboard serch. See git commit c802f3d2, review request 113071.
  • Bug 161385: Reload the view if a previously unmounted device is mounted again. See git commit 7f8dca1b.
  • Bug 325517: Fix crash when triggering the “Compare files” action via D-Bus. Note that the new code is much simpler than the buggy version! See git commit 42c26b15.
Dolphin 4.11.2
  • Bug 286459: Fix colors in the “Services” section of the settings dialog. See git commit 91a2e523, review request 112483.
  • Bug 296970: Fix unwanted interactions between split views when searching. See git commit 576481d1, review request 112534.
  • Bug 311099: Scroll the view to the bottom when pressing “Page down” repeatedly. Before this fix, the scrolling stopped a few pixels above the bottom. See git commit 6566f757, review request 112678.
  • Bug 324713: If the view is sorted by “Size”, and there are some items with the same size, then these are sorted by their names. Ensure that the sort order is updated if one of these files is renamed outside Dolphin. See git commit be391bda, review request 112561.
  • Remove useless “Copy text” action from the status bar context menu. See git commit 4c17ce2c, review request 112355.
  • Bug 322093: Make preview loading faster when scrolling. See git commit bf2a0d69, review request 112580.
Dolphin 4.11.1
  • Bug 323248: Fix possible crash when disabling “Show in groups”. See git commit 292e11fc, review request 111919.
  • Bug 310662, bug 314339: Fix slow scrolling when hidden files or symbolic links are shown. See git commit 381b1796, review request 111956.
  • Bug 323518: Make sure that the sort order is correct after renaming – similar to bug 324713, which was fixed later in Dolphin 4.11.2, but for the case that the file is renamed in Dolphin. See git commit 6b375d2e, review request 111721.
  • Bug 314544: Fix crash when failing to get block device for audio CD. See git commit ae81a800, review request 112117.
  • Bug 323789: Prevent repeated expensive resortings if many files are renamed at the same time. See git commit 9cbca724, review request 111195.
  • Bug 322969: Fix possible crash after renaming files. See git commit 85f29746, review request 111988.
  • Bug 321710: Show the mime type “Folder” in the view also for subfolders which have not been accessed yet on disk. See git commit ab8ee1a6, review request 111830.
  • Bug 310412: Adjust the size and position of the selection toggle if the icon size is changed. See git commit f3ca9435, review request 112250.
  • Bug 304558, bug 321882: Fix filename trucation issues in Icons View if a maximum number of lines is set: sometimes file names were truncated too early, and sometimes, it was not indicated that a file name is truncated. See git commit 82d42b8d, review request 112265.
  • Bug 323946: When pressing the left or right arrow keys while a part of a file name which is being renamed is selected, move the cursor to the beginning or the end of the selection, respectively. See git commit d5521168, review request 112256.

These improvements were made possible by

  • Emmanuel Pescosta, who worked on an impressive number of bugs,
  • Christoph Feck, who not only handles a large number of incoming bug reports, but also contributed quite a few patches,
  • everyone who fixed bugs, provided advice, or tested patches: Albert Astals Cid, Alex Levkovich, Burkhard Lück, David Rosca, Grigoriadis Grigoris, Kai Uwe Broulik, Mark Gaiser, Phil Schaf, Wolfgang Bauer, and Yichao Yu,
  • sysadmins, packagers, translators, and many others who help to improve our software and get it to our users.

Coming in 4.13: Improvements in the project plugin

Wed, 2014/04/09 - 8:01pm

Since version 4.10 Kate comes with a simple project plugin, as introduced here .
The project plugin works by automatically reading a simple json file and providing the information found there to various parts and plugins in Kate.

“Opening” a project

Projects are opened automatically by Kate. Whenever a file is opened, Kate goes the directories from that file upwards until it finds a file named .kateproject , which defines the project. This is a simple json file, which is intended to be written manually by the user.

The .kateproject file defines the name of the project, the set of files which belong to the project, and optionally commands for the build plugin .

In 4.13, “out-of-source” project files are now also supported (actually already in 4.12).  What does that mean ? You can create a .kateproject file in some directory, but it will refer to a different directory as root of the project. This is useful if you have multiple build trees for one source tree, and then need different build commands for each build tree.

Creating such a .kateproject file is easy, simply add a top-level “directory” entry:

{ "name": "MyProject", "directory": "/home/alex/src/myproject", "files": [ { "filters": [ "*.cpp", "*.h"] } ] }

So if you create this file e.g. in /home/alex/src/myproject-build/.kateproject, once the project is opened, the files below /home/alex/src/myproject/ will belong to the project “MyProject”. Again, to “open” this project, open any file in the same directory as the .kateproject file or any of its subdirectories in Kate. Kate will again automatically find the .kateproject file and load it.

Support for the improved build plugin

In 4.13 the build plugin has seen several improvements, the main one being that it is now possible to define an arbitrary number of targets, instead of being limited to 3. This is fully supported by the project plugin. Also the “old” format is still fully supported, and the .kateproject files can even contain both the old and the new format, so it works with the build plugin in version before 4.13 and also after.

Below there is a simple example for a hello-world project, which defines 4 targets for the build plugin: build all, clean, install and building just “hello”:

{     "name": "Hello",     "files": [ { "filters": [ "*.cpp", "*.h"] } ],     "build": {         "directory": "/home/alex/src/tests/hello/build",         "targets":[              {"name":"all", "build_cmd":"make -j4 all"}             ,{"name":"clean", "build_cmd":"make -j4 clean"}             ,{"name":"hello", "build_cmd":"make -j4 hello"}             ,{"name":"install", "build_cmd":"make install"}         ],         "default_target": "all",         "clean_target": "clean"     } }

So,  for each target, a “name” and a “build_cmd” is defined, and that’s it. One of the targets can be chosen to be the default target (which can be assigned a dedicated shortcut in the build plugin), and one can be chosen to be the “clean” target (again, which can be assigned a dedicated shortcut in the build plugin).

The screenshot below shows what you get when opening this project in Kate:


Build plugin showing 4 targets from a .kateproject file

I mentioned above that both the “old” and the new build plugin can be supported within one .kateproject file. To do that, simply put both target definitions in the file, they don’t interfer:

{     "name": "Hello",     "files": [ { "filters": [ "*.cpp", "*.h"] } ],     "build": {         "directory": "/home/alex/src/tests/hello/build",         "targets":[              {"name":"all", "build_cmd":"make -j4 all"}             ,{"name":"clean", "build_cmd":"make -j4 clean"}             ,{"name":"hello", "build_cmd":"make -j4 hello"}             ,{"name":"install", "build_cmd":"make install"}         ],         "default_target": "all",         "clean_target": "clean",         "build": "make -j4 all",         "clean": "make -j4 clean",         "quick": "make -j4 install",     } }

Here, additionally to the 4 custom build targets, the three hardcoded targets “build”, “clean” and “quick” for the “old” build plugin are defined. When this project is opened in Kate 4.13 or newer, these three old entries are ignored, and only the four new entries are used. When this project is opened in Kat 4.12 or earlier, the four new targets are ignored and only the old ones are used.

In the case that an “old” .kateproject file is opened, which contains only the old entries, these are used, and the three entries are used to create three targets, as shown in the screenshot below:

Build plugin showing 3 targets from an "old" .kateproject file

Build plugin showing 3 targets from an “old” .kateproject file


Using the project plugin with CMake-based projects

Until now, the only way to create .kateproject files was to write them manually. If you are using Kate with C/C++ projects which are built using CMake, there are more news for you. CMake 3.0.0 will be released soon, and among others, it will contain a generator for, guess what: project files for the Kate project plugin!  With that, run CMake, select “Kate – Unix Makefiles” as generator, and there you go, everything set up ready to use for you, including all targets of the project available in the build plugin.

Below is a screenshot showing running cmake-gui on CMake itself:

Running cmake-gui on the CMake sources, showing the available generators

Running cmake-gui on the CMake sources, showing the available generators

As you can see, ninja is also supported.

Personally I still prefer Makefiles, especially for use with Kate projects. When using the Makefile generator, you get build targets for compiling every individual source file into an object file. This can save a lot of time when working on some source file and trying to get it to compile. Instead of starting to build everything, which involves dependency checking, and linking afterwards, you can simply just compile that one file (via the quick target select dialog of the updated build plugin), and if it failed, simply build the previous target again (there’s a shortcut for that) until it compiles, and then switch back to building everything (by building the default target).

In the screenshot below you can see Kate having loaded the project for CMake itself, listing the whole bunch of source files on the left, a long list of available build targets in the lower part, and the select-target-dialog on top, filtered already and the target for compiling cmMakefile.cxx is selected.

Kate showing a full project for CMake itself

Kate showing a full project for CMake itself


After trying to compile the file, Kate shows you which errors occurred, and using a dedicated shortcut (I set it to F9) it jumps to the line in the code:

 jump to error works

Build plugin: jump to error works

As can be seen, there is the parsed error, the status tells you that there were errors when building the target “cmMakefile.cxx.o”, and if you want to try again, there’s a “Build again” button right there.

Now, how do you actually open CMake-generated projects in Kate? The .kateproject file is generated in the build tree, and usually you never have to open any files from the build tree in Kate.  But to open the project in Kate, you have to open any, at least one, file from the build tree (this will trigger searching the .kateproject file, which will point the project plugin to the source tree). To help with this, CMake additionally generates a file “ProjectName@buildDirectory.kateproject” in the top level build dir, right next to the generated .kateproject file. Open this file, and Kate loads the project.


Loading a project via opening the "dummy" ProjectName@BuildDir.kateproject file

Loading a project via opening the “dummy” ProjectName@BuildDir.kateproject file

This has been done in the screenshot above,  and already you’re ready to go !


Last but not least, starting with 4.13, you can find documentation for the project json file in <PREFIX>/share/apps/apps/kate/plugins/project/kateproject.example.


So that’s it for now, I hope you find the new stuff useful. :-)

Krita: Russian Translations Updated!

Wed, 2014/04/09 - 11:45am
Thanks to Georgiy Syptchenko from Krita Russian Community [0] Krita's translations into Russian got significantly improved recently!

We have already done three translation updates in Krita Lime repository and there are new changes yet to come!

So if you happen to speak Russian and want to help us with testing our translations, please follow this manual [1] and install updated translation packages!

[0] -
[1] -

New KMyMoney website

Tue, 2014/04/08 - 10:27pm

This was a long-awaited change for KMyMoney. Even when we moved our source to KDE’s SVN a long time ago, the project’s webpage was still hosted in Sourceforge.
For a long time now we have had, and used that in all our documentation. That has made it easy to change now. After migrating all useful content from the Sourceforge site, all we had to was change the IP address in the DNS and, voilá! the new site is online.


I’d like to thank KDE Sysadmins, and specifically Ben Cooksley, who have been very helpful. From the time when I approached them via IRC through the whole process of setting it up, they were nice and helpful.
The new site needs a more personal KMyMoney touch, but that will wait until we finish the artwork update.

Interview with Tago Franceschi

Tue, 2014/04/08 - 11:41am
Interview with Tago Franceschi

How did you first find out about open source communities? What is your opinion about them?

In 2005, a friend told me about Ubuntu, and since then I discover it. I love the open source philosophy, I think it's a great project and all those who participate are awesome people!

What was your first take on Krita when you tried it?

My first impression of krita has been very positive, intuitive interface and an excellent management of shortcuts and I don't know, for me, after using photoshop elements and gimp for several years, it was love at first sight!

What do you think needs improvement in Krita? Also, anything that you really hate about Krita?

For the improvements don't know, the only thing that makes me mad is the management of adjustments made with curves, I would prefer the bars with more or less ... I hope you understand what I mean …

In your opinion, what sets Krita apart from the other tools that you may be using?

In the past two years I have used only krita, I think it's for the responsiveness of the brush, with the tools that I used previously didn't have the same feeling.

If you had to pick one favorite of all your work done in Krita so far, what would it be?

Good question! Perhaps "bellezza sul lago".

What is it that you like about it? What brushes did you use in it?

In it I was able to retain, I think with a good result, different styles (impressionism and realism) in a single work. I used the default brush, with variation in size, opacity and shape (round and square).

Would you like to share it with our site visitors?

Sure, no problem!


KDE, families and Randa

Tue, 2014/04/08 - 10:30am

First and foremost I’d like to thank the KDE e.V. that they invited me to extended board meeting in Berlin two weeks ago. I got some more insights in the board’s work and could participate in the fundraising workshop on Saturday. So what did we learn?

“Ask, ask again and ask for more” and “KISS – Keep it simple and smart”. I hope to be able to apply this and the other things we learned to the fundraising campaign for the Randa Meetings 2014 which we’re going to launch in the next weeks.

Another thing where I was quite active in the last weeks is the “recruitment” for people that should come to Randa this summer. As you of course already know, two of the topics this year are the KDE SDK and the porting of apps to KF5 and other platforms. Thus I tried to get in contact with KDE-Mac people and then also got in contact with people from Macports. I’m currently working on bringing the technical parts of the discussion back to KDE-Mac mailing list.

And I’m working further to bring Windows, Android and the aforementioned Mac people to Randa. So if you’re interested and I did not yet get in contact with you (under which rock were you hiding?;-) get in contact, please. One of my personal goals is it by the way to get some “foreign” machines to our CI park, namely Windows, Mac, Android and Co ;-) . There e.g. the CI people could be of valueable help.

On another topic or actually the middle one in the title above: I’m happy to tell you that this year we’ve already three or four participants registered for the Randa Meetings whom will bring their families with them to Randa. Don’t fear, none of the money of the KDE e.V. will be used to pay their accommodation or travel and food costs. They will pay for their families’ stay. But why do I think that this is so nice?

Because I think this is an important step and the right direction. A huge problem of many free software communities is the fact, that contributors leave after they get graduated or get families. So it’s (IMNSHO) only in the best interest of KDE if there are possibilities for KDE contributors to bring their families to KDE meetings. It is nice if you can hack on KDE software during the day and eat lunch and dinner with your family and spend the evening with them. And who knows probably we need to organize a day nursery in the coming years.

But what about the coming years and my family? First and foremost I’d like to write here a huge and humongous thank you to my family, the small and the big one and even some farther relatives. Without them I couldn’t organize these meetings in Randa. So as you may have already read some time back I decided to found an association for the Randa Meetings and each year since the founding I was searching for some local sponsors for some expense allowance for me and some other helpers. Do you have any idea what amount of work it is to cook for this crowd for a whole week. You won’t believe how much KDE and free software people eat ;-) .

And to be honest for the coming years I plan to stabilize this expense allowance or even small wage even more. But don’t fear (again ;-) . None of the money of the KDE e.V. or the planned fundraising campaign will land in my wallet! I just want to be able to keep the Randa Meetings alive for the next years (I roughly estimate to work one to one and a half month on the organization of a single edition of the Randa Meetings) and thus look for new opportunities. So if you have some ideas tell me or at least participate in this is short and tiny (takes around a minute to fill in) survey or poll about this topic. Would be nice to have it widespread…

But what’s next for the Randa Meetings beneath the fundraising campaign? In the coming days I plan to poke and email the people and groups that are already registered for the sprints in Randa that they should check their data, check their groups and see who is missing and who needs to be poked. We need to fix a more or less final budget till the end of April.

So stay tuned when we launch the fundraising campaign for the Randa Meetings and help us to spread the word. Thanks for reading and don’t forget to flattr me below ;-) .

PS: This blog post already got a bit larger than planned but here is another PS ;-) :
PPS: In the coming days I plan as well to check the wiki pages for the Randa Meetings and add some information about the some hardware present at this year’s meetings (e.g. touch screen, WeTabs, etc.) which you can use and I will add some additional information for families.

Qt on Android Episode 4

Mon, 2014/04/07 - 6:11pm

After we’ve learned how to set up the development environment and how to use Qt on Android, it’s time to move forward and in this article we are going to learn about different deployment systems and how to sign the package in order to publish it in any Android markets.

Choosing the right deploying system

Qt Creator supports three deployment systems:

  • Use Ministro service to install Qt
  • Bundle Qt libs in APK
  • Deploy local Qt libs to temporary directory


Use Ministro service to install Qt

Back in 2009, when I started this project, there were only a few devices out there with Android. Most of them had very limited free space (less than 100 Mb), so, using Qt statically or bundling Qt libs into the APK was out of the question, also back then Google Market had way more limited size than today (50Mb limit/apk). As you can see I was forced to invent Ministro.
Even today most of the mid/low-end devices don’t have too much space!

How it works?
  • Instead of bundling everything into your APK, your package will contain ONLY your application .so file(s), its needed resources and a list with all needed external libs.
  • When your application starts, it tries to connect to Ministro service, if it fails it means that Ministro is not installed and it opens the Android Play for the user to install Ministro. After it successfully connects to Ministro, it sends the dependencies list.
  • Ministro checks if these dependencies are already available, if not, then it downloads only the missing ones in a central secure location and it sends back to the application another list with all the needed libs that the application must load before it loads your qt application.
  • The application loads the libs from Ministro’s location, then your application, then it continues the running process.

Now let’s see the advantages and disadvantages of using Ministro.


  • Using Ministro, the user needs to download the Qt libs ONLY once. If the user downloads another Qt application, it will use the existing libraries. Of course if that application needs more libs, Ministro will download only those that are missing.
  • Ministro can detect if the device armv5 CPU has VFP or if the device armv7 CPU has NEON and it can download libs specific to that device CPU. Even if your application is not built with these CPU features, just using Qt libs built with them will make it run faster (on armv5, VFP really makes the difference, it will be way much faster). Currently these libs are not available, but I intend to publish them starting with 5.4.
  • Ministro can upgrade Qt libs, without you needing to release a new application.
  • You can target all Android platforms with a single APK. Because most likely your application (.so) file(s) are not very big, they can easily fit into a single APK. If your application doesn’t do intensive computation you can use only armv5 .so files to target both armv5 and armv7 platforms, because even if your APK contains only armv5 libs, Ministro will download the Qt libs specific for your device.
  • You can use your own Ministro sources with your own libraries. Basically you’ll need an HTTP/HTTPS server with a valid certificate and to create and upload Ministro’s repository to that server. Because there is a lot to tell on this topic, I’m going to create a wiki page with all the information you need about this topic.


  • Some people don’t like Ministro because the users must install Ministro service once. There are lots of apps out there which require other services, if my mother can install and use Google Hangouts on an older Android version, which needs Google Play service to be installed manually, or MX Player that needs MX Player Codecs to be installed manually, I’m pretty sure she will be just fine with any Qt application which requires Ministro to be installed once.
  • Ministro upgrades Qt libraries and it might break things. I’m very concerned on this topic! To address this problem Ministro uses a different location for every major Qt release e.g:

    Even more, every source is using a Debian-like release scheme with three different repositories:

    • unstable – this is a pre-release repository used by Qt Project/Necessitas developers to test a new release. Before a new SDK release is announced, this repository is used to push the new libs and test it before officially announcing it.
    • testing – after all tests pass, the libs are moved from unstable to testing repository and then we announce them on!forum/android-qt, and on The new version will stay in testing repository for at least one month to give enough time for the developers to test their existing apps using the new libs. Additional updates will be released in testing repository and the period may be extended if any regressions are reported. A new update must stay at least two weeks in testing repository.
    • stable – after testing repository is regression free, the libs are moved to stable repository. It is very important that testing repository is regressions free before it lands on stable because in ~7 days all Android Ministro users will be notified about the new release and it will be very unpleasant if the users apps do not run any more!

Using this scheme Ministro users have no regression in 4 years and 13 Necessitas releases and 5 Qt project releases!

As you can see Ministro is quite safe on this matter!

Bundle Qt libs in APK

This feature was added recently to Qt Creator. Beside your application and your resources, Qt Creator adds all Qt libraries that your application needs to run.


  • The APK contains everything it needs to run.


  • The APK is HUGE due to Qt libs which are pretty big (+40Mb/platform).
  • All Qt libs must be unpacked! So your application will need a lot of free space to run (+50Mb). Currently only just a very few apps on Google Play require that much space.
  • Most of the mid/low-end device users can’t afford to spend that much free space!
  • Due to big size you can’t target more than one platform/apk. You must create an APK for every platform (armv5, armv7, x86). This will be confusing for armv7 users because AFAIK Google Play will list your application twice, once for armv7 and once for armv5 (see MX Player Codecs). If my mother can install a simple application, I’m pretty sure that she doesn’t know what kind of CPU her phone has, actually I’m pretty sure that she doesn’t know what a CPU is or if her device has such a thing …
  • Can’t use VFP on armv5 devices and NEON on armv7 devices.
  • Qt libs can’t be shared by multiple Qt apps on the same device.
  • Can’t get Qt libs updates automatically.

As you can see there is no perfect solution, the pros from Ministro go to cons of the Bundle Qt libs in APK and the cons go to pros :).

Deploy local Qt libs to temporary directory

This deploy system is used mostly by Qt hackers when hacking on Qt itself because it is the fastest way to deploy modified Qt libs on the device to test them. Do not use it in production!

In the end you are the one who will make the choice, I just wanted to present you all the advantages and disadvantages of every deployment system.

Package Signing

This is the last and most important step before publishing. In order to sign the package you’ll need a keystore and a self-signed certificate.

If you don’t have such a certificate, Qt Creator can help you to easily create one, you just need to press create button and fill the keystore and certificate fields, check the following image:


After you publish your application only with the same certificate you can upgrade it! So, make sure you are making backups of the keystore file.

If you already have a keystore, then just browse its location.

Next step is to switch your project to release and check sign package and open package location after build, check the following image:


After you’ve pressed run button, in a few moments Qt Creator will open the location where your package was built and signed, be sure you are choosing the signed one (QtApp-release.apk)! Check the following image:


That’s all folks, see you next time when will see how to use JNI to extend our Android applications.

The post Qt on Android Episode 4 appeared first on KDAB.