KDE • Community • Announcements

Release of KDE Frameworks 5.15.0

Also available in:

English | Català | Galician | Nederlands | Português | Português brasileiro | Svenska | Українська

October 10, 2015. KDE today announces the release of KDE Frameworks 5.15.0.

KDE Frameworks are 60 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the Frameworks 5.0 release announcement.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this Version


  • Fix limit/offset handling in SearchStore::exec
  • Recreate the baloo index
  • balooctl config: add options to set/view onlyBasicIndexing
  • Port balooctl check to work with new architecture (bug 353011)
  • FileContentIndexer: fix emitting filePath twice
  • UnindexedFileIterator: mtime is quint32 not quint64
  • Transaction: fix another Dbi typo
  • Transaction: Fix documentMTime() and documentCTime() using wrong Dbis.
  • Transaction::checkPostingDbInTermsDb: Optimize code
  • Fix dbus warnings
  • Balooctl: Add checkDb command
  • balooctl config: Add "exclude filter"
  • KF5Baloo: Make sure D-Bus interfaces are generated before they are used. (bug 353308)
  • Avoid using QByteArray::fromRawData
  • Remove baloo-monitor from baloo
  • TagListJob: Emit error when failed to open database
  • Do not ignore subterms if not found
  • Cleaner code for failing Baloo::File::load() on DB open fail.
  • Make balooctl use IndexerConfig instead of manipulating baloofilerc directly
  • Improve i18n for balooshow
  • Make balooshow fail gracefully if database cannot be opened.
  • Fail Baloo::File::load() if the Database is not open. (bug 353049)
  • IndexerConfig: add refresh() method
  • inotify: Do not simulate a closedWrite event after move without cookie
  • ExtractorProcess: Remove the extra at the end of the filePath
  • baloo_file_extractor: call QProcess::close before destroying the QProcess
  • baloomonitorplugin/balooctl: i18nize indexer state.
  • BalooCtl: Add a 'config' option
  • Make baloosearch more presentable
  • Remove empty EventMonitor files
  • BalooShow: Show more information when the ids do not match
  • BalooShow: When called with an id check if the id is correct
  • Add a FileInfo class
  • Add error checking in various bits so that Baloo doesn't crash when disabled. (bug 352454)
  • Fix Baloo not respecting "basic indexing only" config option
  • Monitor: Fetch remaining time on startup
  • Use actual method calls in MainAdaptor instead of QMetaObject::invokeMethod
  • Add org.kde.baloo interface to root object for backward compatibility
  • Fix date string displayed in address bar due to porting to QDate
  • Add delay after each file instead of each batch
  • Remove Qt::Widgets dependency from baloo_file
  • Remove unused code from baloo_file_extractor
  • Add baloo monitor or experimental qml plugin
  • Make "querying for remaining time" thread safe
  • kioslaves: Add missing override for virtual functions
  • Extractor: Set the applicationData after constructing the app
  • Query: Implement support for 'offset'
  • Balooctl: Add --version and --help (bug 351645)
  • Remove KAuth support to increase max inotify watches if count too low (bug 351602)


  • Fix fakebluez crash in obexmanagertest with ASAN
  • Forward declare all exported classes in types.h
  • ObexTransfer: Set error when transfer session is removed
  • Utils: Hold pointers to managers instances
  • ObexTransfer: Set error when org.bluez.obex crashes

Extra CMake Modules

  • Update GTK icon cache when installing icons.
  • Remove workaround to delay execution on Android
  • ECMEnableSanitizers: The undefined sanitizer is supported by gcc 4.9
  • Disable X11,XCB etc. detection on OS X
  • Look for the files in the installed prefix rather the prefix path
  • Use Qt5 to specify what's Qt5 installation prefix
  • Add definition ANDROID as needed in qsystemdetection.h.

Framework Integration

  • Fix random file dialog not showing up problem. (bug 350758)


  • Using a custom matching function instead of sqlite's glob. (bug 352574)
  • Fixed problem with adding a new resource to the model


  • Fix crash in UnicodeGroupProber::HandleData with short strings


  • Mark kconfig-compiler as non-gui tool


  • KShell::splitArgs: only ASCII space is a separator, not unicode space U+3000 (bug 345140)
  • KDirWatch: fix crash when a global static destructor uses KDirWatch::self() (bug 353080)
  • Fix crash when KDirWatch is used in Q_GLOBAL_STATIC.
  • KDirWatch: fix thread safety
  • Clarify how to set KAboutData constructor arguments.


  • KCrash: pass cwd to kdeinit when auto-restarting the app via kdeinit. (bug 337760)
  • Add KCrash::initialize() so that apps and the platform plugin can explicitly enable KCrash.
  • Disable ASAN if enabled


  • Small improvements in ColumnProxyModel
  • Make it possible for applications to know path to homeDir
  • move EventForge from the desktop containment
  • Provide enabled property for QIconItem.


  • kded: simplify logic around sycoca; just call ensureCacheValid.

KDELibs 4 Support

  • Call newInstance from the child on first invocation
  • Use kdewin defines.
  • Don't try to find X11 on WIN32
  • cmake: Fix taglib version check in FindTaglib.cmake.


  • Qt moc can't handle macros (QT_VERSION_CHECK)


  • kWarning -> qWarning


  • implement windows usermetadata

KDE GUI Addons

  • Not looking for X11/XCB makes sense also for WIN32


  • Replace std::auto_ptr with std::unique_ptr
  • khtml-filter: Discard rules containing special adblock features that we do not handle yet.
  • khtml-filter: Code reorder, no functional changes.
  • khtml-filter: Ignore regexp with options as we do not support them.
  • khtml-filter: Fix detection of adblock options delimiter.
  • khtml-filter: Clean up from trailing white spaces.
  • khtml-filter: Do not discard lines starting with '&' as it is not a special adblock char.


  • remove strict iterators for msvc to make ki18n build


  • KFileWidget: parent argument should default to 0 like in all widgets.
  • Make sure the size of the byte array we just dumped into the struct is big enough before calculating the targetInfo, otherwise we're accessing memory that doesn't belong to us
  • Fix Qurl usage when calling QFileDialog::getExistingDirectory()
  • Refresh Solid's device list before querying in kio_trash
  • Allow trash: in addition to trash:/ as url for listDir (calls listRoot) (bug 353181)
  • KProtocolManager: fix deadlock when using EnvVarProxy. (bug 350890)
  • Don't try to find X11 on WIN32
  • KBuildSycocaProgressDialog: use Qt's builtin busy indicator. (bug 158672)
  • KBuildSycocaProgressDialog: run kbuildsycoca5 with QProcess.
  • KPropertiesDialog: fix for ~/.local being a symlink, compare canonical paths
  • Add support for network shares in kio_trash (bug 177023)
  • Connect to the signals of QDialogButtonBox, not QDialog (bug 352770)
  • Cookies KCM: update DBus names for kded5
  • Use JSON files directly instead of kcoreaddons_desktop_to_json()


  • Don't send notification update signal twice
  • Reparse notification config only when it changed
  • Don't try to find X11 on WIN32


  • Change method for loading defaults
  • Send the appname whose config was updated along with the DBus signal
  • Add method to revert kconfigwidget to defaults
  • Don't sync the config n times when saving


  • Use largest timestamp in subdirectory as resource directory timestamp.
  • KSycoca: store mtime for every source dir, to detect changes. (bug 353036)
  • KServiceTypeProfile: remove unnecessary factory creation. (bug 353360)
  • Simplify and speed up KServiceTest::initTestCase.
  • make install name of applications.menu file a cached cmake variable
  • KSycoca: ensureCacheValid() should create the db if it doesn't exist
  • KSycoca: make global database work after the recent timestamp check code
  • KSycoca: change DB filename to include language and sha1 of the dirs it's built from.
  • KSycoca: make ensureCacheValid() part of the public API.
  • KSycoca: add a q pointer to remove more singleton usage
  • KSycoca: remove all self() methods for factories, store them in KSycoca instead.
  • KBuildSycoca: remove writing of the ksycoca5stamp file.
  • KBuildSycoca: use qCWarning rather than fprintf(stderr, ...) or qWarning
  • KSycoca: rebuild ksycoca in process rather than executing kbuildsycoca5
  • KSycoca: move all of the kbuildsycoca code into the lib, except for main().
  • KSycoca optimization: only watch the file if the app connects to databaseChanged()
  • Fix memory leaks in the KBuildSycoca class
  • KSycoca: replace DBus notification with file watching using KDirWatch.
  • kbuildsycoca: deprecate option --nosignal.
  • KBuildSycoca: replace dbus-based locking with a lock file.
  • Do not crash when encountering invalid plugin info.
  • Rename headers to _p.h in preparation for move to kservice library.
  • Move checkGlobalHeader() within KBuildSycoca::recreate().
  • Remove code for --checkstamps and --nocheckfiles.


  • validate more regexp
  • fix regexps in HL files (bug 352662)
  • sync ocaml HL with state of https://code.google.com/p/vincent-hugot-projects/ before google code is down, some small bugfixes
  • add word-break (bug 352258)
  • validate line before calling folding stuff (bug 339894)
  • Fix Kate word count issues by listening to DocumentPrivate instead of Document (bug 353258)
  • Update Kconfig syntax highlighting: add new operators from Linux 4.2
  • sync w/ KDE/4.14 kate branch
  • minimap: Fix scrollbar handle not being drawn with scrollmarks off. (bug 352641)
  • syntax: Add git-user option for kdesrc-buildrc

KWallet Framework

  • No longer automatically close on last use


  • Fix warning C4138 (MSVC): '*/' found outside of comment


  • Perform deep copy of QByteArray get_stringlist_reply
  • Allow interacting with multiple X servers in the NETWM classes.
  • [xcb] Consider mods in KKeyServer as initialized on platform != x11
  • Change KKeyserver (x11) to categorized logging


  • Make it possible to import/export shortcut schemes symmetrically


  • Fix introspections, LastSeen should be in AccessPoint and not in ActiveConnection

Plasma Framework

  • Make tooltip dialog hidden on the cursor entering the inactive ToolTipArea
  • if the desktop file has Icon=/foo.svgz use that file from package
  • add a "screenshot" file type in packages
  • consider devicepixelration in standalone scrollbar
  • no hover effect on touchscreen+mobile
  • Use lineedit svg margins in sizeHint calculation
  • Don't fade animate icon in plasma tooltips
  • Fix eliding button text
  • Context menus of applets within a panel no longer overlap the applet
  • Simplify getting associated apps list in AssociatedApplicationManager


  • Fix hunspell plugin ID for proper loading
  • support static compilation on windows, add windows libreoffice hunspell dict path
  • Do not assume UTF-8 encoded Hunspell dictionaries. (bug 353133)
  • fix Highlighter::setCurrentLanguage() for the case when previous language was invalid (bug 349151)
  • support /usr/share/hunspell as dict location
  • NSSpellChecker-based plugin

Installing binary packages

On Linux, using packages for your favorite distribution is the recommended way to get access to KDE Frameworks. Binary package distro install instructions.

Compiling from sources

The complete source code for KDE Frameworks 5.15.0 may be freely downloaded. Instructions on compiling and installing KDE Frameworks 5.15.0 are available from the KDE Frameworks 5.15.0 Info Page.

Building from source is possible using the basic cmake .; make; make install commands. For a single Tier 1 framework, this is often the easiest solution. People interested in contributing to frameworks or tracking progress in development of the entire set are encouraged to use kdesrc-build. Frameworks 5.15.0 requires Qt 5.3.

A detailed listing of all Frameworks and other third party Qt libraries is at inqlude.org, the curated archive of Qt libraries. A complete list with API documentation is on api.kde.org.


Those interested in following and contributing to the development of Frameworks can check out the git repositories, follow the discussions on the KDE Frameworks Development mailing list and contribute patches through review board. Policies and the current state of the project and plans are available at the Frameworks wiki. Real-time discussions take place on the #kde-devel IRC channel on freenode.net.

You can discuss and share ideas on this release in the comments section of the dot article.

Supporting KDE

KDE is a Free Software community that exists and grows only because of the help of many volunteers that donate their time and effort. KDE is always looking for new volunteers and contributions, whether it is help with coding, bug fixing or reporting, writing documentation, translations, promotion, money, etc. All contributions are gratefully appreciated and eagerly accepted. Please read through the Donations page for further information or become a KDE e.V. supporting member through our new Join the Game initiative.

About KDE

KDE is an international technology team that creates free and open source software for desktop and portable computing. Among KDE's products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet and web applications, multimedia, entertainment, educational, graphics and software development. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE's full-featured applications run natively on Linux, BSD, Solaris, Windows and Mac OS X.

Trademark Notices. KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group in the United States and other countries. All other trademarks and copyrights referred to in this announcement are the property of their respective owners.

Press Contacts

For more information send us an email:

Global navigation links