KDb 3, KProperty 3, KReport 3, Kexi 3 and special offer during Akademy

We're pretty close to "beta" releases of the KDb 3, KProperty 3, KReport 3 frameworks as well as Kexi 3, the data-oriented app creator. So while I am not in person @ Akademy I though a "special offer" during this special time would be in order: if anyone has questions or needs assistance in planning port to one of the APIs offered, ping me on IRC or mail me. And also later :)

What's in the box and when to use the toys:


clazy: Suppressing warnings

Clazy [1][2] just got support for suppressing warnings by reading a special comment in your code.
The syntax is similar to what krazy has.

Ignore the whole file:
// clazy:skip

Ignore the whole file for these checks:
// clazy:excludeall=foreach,qstring-allocations

Ignore these checks at the line number where the comment appears:
(...) // clazy:exclude=qfileinfo-exists,copyable-polymorphic



Hidden b.k.o-phab links

Well, consider them unhidden now: if you missed a structured place to link big/wish reports with KDE Phabricator tasks, look no further.


New C++/Qt code checks in clazy static analyzer

About two months ago I blogged about clazy, a Qt oriented static analyser.

Since then it has moved to an official KDE repo, got an IRC channel (#kde-clazy @ freenode) and also many fun new checks.

Here's a quick dump of the new features (be sure to see the README for the old checks too):

**** Performance related checks ****


QRegExp + QStringLiteral = crash at exit

If you're seeing crashes lately, and they look like:

(gdb) bt
#0 0x00007ffff6790913 in QString::~QString() () from /usr/x86_64-pc-linux-gnu/lib/
#1 0x00007ffff680fd89 in QHashData::free_helper(void (*)(QHashData::Node*)) () from /usr/x86_64-pc-linux-gnu/lib/
#2 0x00007ffff6828e14 in (anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::Holder::~Holder() ()
from /usr/x86_64-pc-linux-gnu/lib/



KSnapshot is getting an overhaul.

It's actually a little more complicated than that. I started to work on the KF5 port of KSnapshot (EDIT: no, contrary to what Phoronix claims this port is not my work; I simply wanted to fix anything that needed fixing) sometime in early March this year, before I realised that the codebase, while perfectly in order for being a X11-only screenshot taker for KDE (yes, KSnapshot actually has a complete and fairly decent KF5 port in its frameworks branch on KDE Git), was in need of a major overhaul if we were going to get proper Wayland support in.



[Skip if you're not a git user]

You will often want to have more than one build environment in parallel, for example if you want to work on stable and various feature branches. Recommended way so far was to use a git-new-workdir script. This solution saves space (e.g. ~300MiB for a calligra branch instead of ~1200MiB) and time.


Kexi 3!

I am happy to say that Pre-Alpha edition of ‪Kexi‬ 3.0 runs nicely already after like 3 weeks of porting! Especially its tabular view work out of the box for me after fixing the last compilation error with zero fixes needed in the functionality.

Porting for the porting itself would not be an interesting goal. As you see on the picture Kexi 3.0 uses KDE Frameworks 5. With Qt 5.4 it's More compact, faster, closer to mobile devices. And a 1st class citizen called Windows version has to come to reach the wide audience.


Table View and Report Barcodes junior jobs

Kexi has improved quite a bit since the last time, especially in Reports. We're close to supplementary 2.8.7 release within Calligra, then 2.9 will follow and Qt5/KF5-based 3.0 with a shiny mask.

We're about to reach the point where it's very very hard to find comparable Free Software reporting tool in terms of usability. If you don't know why reporting software may be useful, try to generate 50 or 500 pages PDF out of structured data with just mouse clicks and no programming. Get the report file generated in 2 seconds or less. Or print the report directly without creating intermediate PDF or ODF or HTML files that will pollute your computer... It's data that matters.


Beyond the color pickers

Andy, thanks so much for picking up the topic of color pickers (pun intended).

I'd like to discuss cases when accuracy is not as important at results. In this case there's a problem of abundance of choice. You don't have time to quickly and correctly pick one from the 16777216 colors. Plus alpha value? Come on! Whenever you're confronted with a photoshop/gimp-like color picker you either choose random color, or single color that's globally predefined in a palette. I also understand that very few 'casual' users maintain own palettes for consistency.