{"title":"All products","description":"","products":[{"product_id":"prison","title":"Prison","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003e\n\u003cspan\u003eA \u003c\/span\u003e\u003ca href=\"http:\/\/qt.nokia.com\/\"\u003eQt\u003c\/a\u003e-based barcode abstraction layer\/library. It provides unified access to the generation of barcodes with data.\u003c\/h4\u003e\n\u003ch2\u003e\n\u003ca class=\"anchor\" id=\"overview\"\u003e\u003c\/a\u003ePrison Overview\u003c\/h2\u003e\n\u003cp\u003ePrison has a prison::AbstractBarcode, which is the base class for the actual barcode generators, currently prison::QRCodeBarcode and prison::DataMatrixBarcode is the two implemented barcode generators.\u003c\/p\u003e\n\u003cp\u003eIt currently ships a BarcodeWidget, which is a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtwidgets.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qwidget.html\"\u003eQWidget\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ewith a barcode painted upon, as well as a BarcodeItem, which is a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtwidgets.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qgraphicsitem.html\"\u003eQGraphicsItem\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ewith a barcode painted upon.\u003c\/p\u003e\n\u003ch2\u003e\n\u003ca class=\"anchor\" id=\"supported\"\u003e\u003c\/a\u003eSupported Barcode types\u003c\/h2\u003e\n\u003cp\u003eThere are basically two types of barcodes:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ebarcodes that carry the data\u003c\/li\u003e\n\u003cli\u003ebarcodes that carry a lookup number, and requires a specific server to look up the actual data.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eprison isn't as such designed for the latter, it will probably work, but patches implementing barcode support for such barcodes will not be accepted. An example is\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/en.wikipedia.org\/wiki\/EZcode\"\u003eEZCode\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003ePrison is currently using\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/github.com\/dmtx\/libdmtx\"\u003elibdmtx\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efor the generation of\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/en.wikipedia.org\/wiki\/Datamatrix\"\u003eDataMatrix\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ebarcodes and is currently using\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/fukuchi.org\/works\/qrencode\/\" style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', Roboto, 'Segoe UI', 'Helvetica Neue', sans-serif; font-size: 1.4em;\"\u003elibqrencode\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efor the generation of\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/en.wikipedia.org\/wiki\/QR_Code\" style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', Roboto, 'Segoe UI', 'Helvetica Neue', sans-serif; font-size: 1.4em;\"\u003eQRCode\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ebarcodes\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003ch4\u003e\u003c\/h4\u003e\n\u003cdiv class=\"attribute\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"attribute\"\u003e\n\u003cdiv class=\"label\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"Default Title","offer_id":29241838895201,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_5254c023-456a-4a33-80e9-adb4865e9be5.png?v=1574851419"},{"product_id":"ecm","title":"ECM","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003e\n\u003cspan\u003eExtra CMake Modules package.\u003c\/span\u003e\u003cbr\u003e\n\u003c\/h2\u003e\n\u003cp\u003eThe Extra CMake Modules package, or ECM, adds to the modules provided by CMake, including ones used by\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003efind_package()\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eto find common software, ones that can be used directly in\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003eCMakeLists.txt\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003efiles to perform common tasks and toolchain files that must be specified on the command-line by the user.\u003c\/p\u003e\n\u003cp\u003eIn addition, it provides common build settings used in software produced by the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ecommunity.\u003c\/p\u003e\n\u003cp\u003eWhile the driving force of this module is to reduce duplication in CMake scripts across\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esoftware, it is intended to be useful for any software that uses the CMake build system.\u003c\/p\u003e\n\u003cp\u003eFor more information visit the documentation at\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/api.kde.org\/ecm\/\"\u003ehttps:\/\/api.kde.org\/ecm\/\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"ECM (with tax)","offer_id":30962516459617,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"ECM (no tax)","offer_id":31129731792993,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_059a02f6-267f-4d96-a657-76390a01bd36.png?v=1574869501"},{"product_id":"attica","title":"Attica","description":"\u003cp\u003eOpen Collaboration Service client library.\u003c\/p\u003e\n\u003cp\u003eAttica is a \u003ca href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\" title=\"Qt\"\u003eQt \u003c\/a\u003elibrary that implements the Open Collaboration Services API version 1.6. The REST API is defined here: \u003ca href=\"https:\/\/www.freedesktop.org\/wiki\/Specifications\/open-collaboration-services\/\" title=\"www.freedesktop.org\/wiki\/Specifications\/open-collaboration-services\/\"\u003ehttps:\/\/www.feedback.org\/wiki\/Specifications\/open-collaboration-services\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003eIt grants easy access to services such as querying information about persons and contents. The library is used in KNewStuff3 as a content provider. In order to integrate with \u003ca href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\" title=\"KDE\"\u003eKDE\u003c\/a\u003e's \u003ca href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/namespacePlasma.html\" title=\"Plasma\"\u003ePlasma\u003c\/a\u003e Desktop, a platform plugin exists in kdebase.\u003c\/p\u003e\n\u003cp\u003eYour basic entry point for using Attica's functionality is the \u003cstrong\u003e\u003ca href=\"https:\/\/api.kde.org\/frameworks\/attica\/html\/classAttica_1_1ProviderManager.html\" title=\"Attica::ProviderManager\"\u003eAttica::ProviderManager\u003c\/a\u003e\u003c\/strong\u003e class.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"Attica (with tax)","offer_id":30962527600737,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Attica (no tax)","offer_id":31129728843873,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000.png?v=1574850921"},{"product_id":"bluezqt","title":"BluezQt","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eA library for communication with the BlueZ system and session daemons.\u003c\/p\u003e\n\u003ch2\u003eAbout BluezQt\u003c\/h2\u003e\n\u003ch4\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ewrapper for BlueZ 5 DBus API\u003c\/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/bluez-qt\/html\/classBluezQt_1_1Manager.html\" title=\"Bluetooth manager. \"\u003eBluezQt::Manager\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eclass is used to communicate with system daemon - org.bluez\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/bluez-qt\/html\/classBluezQt_1_1ObexManager.html\" title=\"OBEX manager. \"\u003eBluezQt::ObexManager\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eclass is used to communicate with session daemon - org.bluez.obex\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eAll method calls are asynchronous using\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/bluez-qt\/html\/classBluezQt_1_1PendingCall.html\" title=\"Pending method call. \"\u003eBluezQt::PendingCall\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ethat helps to track the call progress and handle errors.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"BluezQt (with tax)","offer_id":30962657067105,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"BluezQt (no tax)","offer_id":31129721077857,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_f7261645-b734-4a0e-a215-0a17cc764d0c.png?v=1574867599"},{"product_id":"kapidox","title":"KApiDox","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eIt contains scripts and data for building API documentation (dox) in a standard format and style.\u003c\/p\u003e\n\u003ch2\u003eKApiDox Introduction\u003c\/h2\u003e\n\u003cp\u003eThe Doxygen tool is used to do the actual documentation extraction and formatting, but this framework provides a wrapper script to make generating the documentation more convenient (including reading settings from the target framework or other modules) and a standard template for the generated documentation.\u003c\/p\u003e\n\u003ch2\u003e\u003cbr\u003e\u003c\/h2\u003e\n\u003cul\u003e\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KApiDox (with tax)","offer_id":30984362623073,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KApiDox (no tax)","offer_id":31129707577441,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_fb78cfb6-9724-4ab9-8b47-1d7ce8f043ba.png?v=1574871305"},{"product_id":"karchive","title":"KArchive","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003eReading, creating, and manipulating file archives.\u003c\/p\u003e\n\u003ch2\u003eKArchive Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/karchive\/html\/classKArchive.html\" title=\"KArchive is a base class for reading and writing archives. \"\u003eKArchive\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides classes for easy reading, creation and manipulation of \"archive\" formats like ZIP and TAR.\u003c\/p\u003e\n\u003cp\u003eIt also provides transparent compression and decompression of data, like the GZip format, via a subclass of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qiodevice.html\"\u003eQIODevice\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eKArchive Usage\u003c\/h2\u003e\n\u003cp\u003eIf you want to read and write compressed data, just create an instance of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/karchive\/html\/classKCompressionDevice.html\" title=\"A class for reading and writing compressed data onto a device (e.g. \"\u003eKCompressionDevice\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eand write to or read from that.\u003c\/p\u003e\n\u003cp\u003eIf you want to read and write archive formats, create an instance of the appropriate subclass of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/karchive\/html\/classKArchive.html\" title=\"KArchive is a base class for reading and writing archives. \"\u003eKArchive\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e(eg:\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/karchive\/html\/classK7Zip.html\" title=\"A class for reading \/ writing p7zip archives. \"\u003eK7Zip\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efor 7-Zip files). You may need to combine this with usage of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/karchive\/html\/classKCompressionDevice.html\" title=\"A class for reading and writing compressed data onto a device (e.g. \"\u003eKCompressionDevice\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e(see the API documentation for the relevant\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/karchive\/html\/classKArchive.html\" title=\"KArchive is a base class for reading and writing archives. \"\u003eKArchive\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esubclass for details).\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KArchive (with tax)","offer_id":30984402501729,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KArchive (no tax)","offer_id":31129718620257,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_ccae7293-0fb5-42b1-8c0c-3ccd9c8cae49.png?v=1574871434"},{"product_id":"kcalendarcore","title":"KCalendarCore","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003e\u003cspan\u003eLibrary provides access to and handling of calendar data.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003eKCalendarCore introduction\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003eIt supports the standard formats iCalendar and vCalendar and the group scheduling standard iTIP. \u003c\/p\u003e\n\u003cp\u003eA calendar contains information like incidences (events, to-dos, journals), alarms, time zones, and other useful information. This API provides access to that calendar information via well-known calendar formats\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/en.wikipedia.org\/wiki\/Icalendar\"\u003eiCalendar (or iCal)\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eand the older\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/en.wikipedia.org\/wiki\/VCalendar\"\u003evCalendar\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eCredit goes to Eric Bossum \u0026lt;\u003ca href=\"https:\/\/api.kde.org\/frameworks\/kcalendarcore\/html\/index.html#\"\u003eeric@softwarestudio.org\u003c\/a\u003e\u0026gt; for his libical software that does most of the heavy-lifting of the iCalendar support that is abstracted by this API.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KCalendarCore (with tax)","offer_id":30984418885729,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KCalendarCore (no tax)","offer_id":31129698271329,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_05739941-a880-4281-a541-733af09d3fc1.png?v=1574930419"},{"product_id":"kcodecs","title":"KCodecs","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eIt provides a collection of methods to manipulate strings using various encodings.\u003c\/p\u003e\n\u003ch2\u003eKCodecs introduction\u003c\/h2\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eString encoding library.\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003eIt can automatically determine the charset of a string, translate XML entities, validate email addresses, and find encodings by name in a more tolerant way than\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qtextcodec.html\"\u003eQTextCodec\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e(useful e.g. for data coming from the Internet).\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KCodecs (with tax)","offer_id":30984427995233,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KCodecs (no tax)","offer_id":31129693618273,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_29700591-a215-4d63-96f3-630de2717944.png?v=1574934088"},{"product_id":"kconfig","title":"KConfig","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eIt provides an advanced configuration system. \u003c\/p\u003e\n\u003ch2\u003eKConfig Introduction\u003c\/h2\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003ePersistent platform-independent application settings. \u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kconfig\/html\/classKConfig.html\" title=\"The central class of the KDE configuration data system. \"\u003eKConfig\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis made of two parts: KConfigCore and\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kconfig\/html\/namespaceKConfigGui.html\" title=\"Interface-related functions. \"\u003eKConfigGui\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eKConfigCore provides access to the configuration files themselves. It features:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCode generation: describe your configuration in an XML file, and use `kconfig_compiler to generate classes that read and write configuration entries.\u003c\/li\u003e\n\u003cli\u003eCascading configuration files (global settings overridden by local settings).\u003c\/li\u003e\n\u003cli\u003eOptional shell expansion support (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kconfig\/html\/options.html\"\u003edocs\/options.md\u003c\/a\u003e).\u003c\/li\u003e\n\u003cli\u003eThe ability to lock down configuration options (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kconfig\/html\/options.html\"\u003edocs\/options.md\u003c\/a\u003e).\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kconfig\/html\/namespaceKConfigGui.html\" title=\"Interface-related functions. \"\u003eKConfigGui\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides a way to hook widgets to the configuration so that they are automatically initialized from the configuration and automatically propagate their changes to their respective configuration files.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KConfig (with tax)","offer_id":30985161146465,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KConfig (no tax)","offer_id":31129710755937,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_5da21e0a-2d47-4e00-8a32-f83a85f8f133.png?v=1574934011"},{"product_id":"kcoreaddons","title":"KCoreAddons","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eaddon library with a collection of non-GUI utilities.\u003c\/p\u003e\n\u003ch2\u003eKCoreAddons Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcoreaddons\/html\/namespaceKCoreAddons.html\" title=\"Provides utility functions for metadata about the KCoreAddons library. \"\u003eKCoreAddons\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides classes built on top of QtCore to perform various tasks such as manipulating mime types, autosaving files, creating backup files, generating random sequences, performing text manipulations such as macro replacement, accessing user information and many more.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KCoreAddons (with tax)","offer_id":30985179234401,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KCoreAddons (no tax)","offer_id":31129719832673,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_a1b92c02-3672-42f0-9224-e742ad847b76.png?v=1574934911"},{"product_id":"kdbusaddons","title":"KDBusAddons","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eConvenience classes for D-Bus.\u003c\/p\u003e\n\u003ch2\u003eKDBusAddons Introduction\u003c\/h2\u003e\n\u003cp\u003eKDBusAddons provides convenience classes on top of QtDBus, as well as an API to create KDED modules.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KDBusAddons (with tax)","offer_id":30985201483873,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KDBusAddons (no tax)","offer_id":31129701154913,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_419369cf-d3fd-47fb-bcd7-63c6c9e636fd.png?v=1574937891"},{"product_id":"kdnssd","title":"KDNSSD","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eNetwork service discovery using Zeroconf.\u003c\/h4\u003e\n\u003cp\u003eKDNSSD is a library for handling the DNS-based Service Discovery Protocol (DNS-SD), the layer of\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/www.zeroconf.org\/\"\u003eZeroconf\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ethat allows network services, such as printers, to be discovered without any user intervention or centralized infrastructure.\u003c\/p\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KDNSSD (with tax)","offer_id":30985218719841,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KDNSSD (no tax)","offer_id":31129707216993,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_9cad294e-ddbd-40e3-9859-fa65824e026c.png?v=1574941163"},{"product_id":"kguiaddons","title":"KGuiAddons","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eUtilities for graphical user interfaces.\u003c\/h4\u003e\n\u003ch2\u003eKGuiAddons Introduction\u003c\/h2\u003e\n\u003cp\u003eThe\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eGUI addons provide utilities for graphical user interfaces in the areas of colors, fonts, text, images, keyboard input.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KGuiAddons (with tax)","offer_id":30985226846305,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KGuiAddons (no tax)","offer_id":31129719210081,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_8b7fbb45-6f4f-4ae8-bbe9-9126503991d0.png?v=1574934558"},{"product_id":"kholidays","title":"KHolidays","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eDates for holidays and other special events.\u003c\/h4\u003e\n\u003ch2\u003eKHolidays Introduction\u003c\/h2\u003e\n\u003cp\u003eThis library provides a C++ API that determines holiday and other special events for a geographical region.\u003c\/p\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KHolidays (with tax)","offer_id":30985239396449,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KHolidays (no tax)","offer_id":31129711444065,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_91b5ee7f-eb7a-4e4a-af4c-d8c170f98c84.png?v=1574941233"},{"product_id":"ki18n","title":"KI18n","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eGettext-based UI text internationalization.\u003c\/h4\u003e\n\u003ch2\u003eKI18n Introduction\u003c\/h2\u003e\n\u003cp\u003eKI18n provides functionality for internationalizing user interface text in applications, based on the GNU Gettext translation system. It wraps the standard Gettext functionality so that the programmers and translators can use the familiar Gettext tools and workflows.\u003c\/p\u003e\n\u003cp\u003eKI18n provides additional functionality as well, for both programmers and translators, which can help to achieve a higher overall quality of the source and translated text. This includes argument capturing, customizable markup, and translation scripting.\u003c\/p\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KI18n (with tax)","offer_id":30985259319393,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KI18n (no tax)","offer_id":31129703448673,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_7bc45334-2c12-4bc3-9d48-484182f620de.png?v=1574934464"},{"product_id":"kidletime","title":"KIdleTime","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eReporting of idle time of user and system.\u003c\/h4\u003e\n\u003ch2\u003eKIdleTime Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kidletime\/html\/classKIdleTime.html\" title=\"KIdleTime is a singleton reporting information on idle time. \"\u003eKIdleTime\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis a singleton reporting information on idle time. It is useful not only for finding out about the current idle time of the PC, but also for getting notified upon idle time events, such as custom timeouts, or user activity.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KIdleTime (with tax)","offer_id":30985279111265,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KIdleTime (no tax)","offer_id":31129704333409,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_aae31a4c-791b-43ea-b70f-6954cd2de456.png?v=1574934496"},{"product_id":"kirigami2","title":"Kirigami2","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003e\u003cspan\u003eA set of QtQuick components for mobile use targeting both\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/namespacePlasma.html\"\u003ePlasma\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e\u003cspan\u003eMobile and Android. I\u003c\/span\u003en the future desktop as well.\u003c\/p\u003e\n\u003ch2\u003eKirigami Introduction\u003cbr\u003e\n\u003c\/h2\u003e\n\u003cp\u003eIt’s not a whole set of components (all the “Primitive” ones like buttons and textboxes are a job for QtQuickControls2), but it’s a set of high-level components to make the creation of applications that look and feel great on mobile as well as desktop devices and follow the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/hig.kde.org\/\"\u003eKDE Human Interface Guidelines\u003c\/a\u003e. The target of those components is anybody that wants to do an application using QtQuick as its main UI, especially if targeting a mobile platform, without adding many dependencies. They work on a variety of platforms, such as\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/namespacePlasma.html\"\u003ePlasma\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eMobile, Desktop Linux, Android, iOS and Windows. It is a Tier-1\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eFramework starting with\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eFrameworks 5.37.\u003c\/p\u003e\n\u003ch1\u003e\n\u003ca class=\"anchor\"\u003e\u003c\/a\u003eKirigami Main Components\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1ApplicationWindow.html\"\u003eApplicationWindow\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1Action.html\"\u003eAction\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1GlobalDrawer.html\"\u003eGlobalDrawer\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1ContextDrawer.html\"\u003eContextDrawer\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1OverlayDrawer.html\"\u003eOverlayDrawer\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1Page.html\"\u003ePage\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1ScrollablePage.html\"\u003eScrollablePage\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1OverlaySheet.html\"\u003eOverlaySheet\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1Theme.html\"\u003eTheme\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1Units.html\"\u003eUnits\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/index.html\"\u003eIcon\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1AbstractApplicationHeader.html\"\u003eAbstractApplicationHeader\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1AbstractApplicationWindow.html\"\u003eAbstractApplicationWindow\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1AbstractListItem.html\"\u003eAbstractListItem\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1ApplicationHeader.html\"\u003eApplicationHeader\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1BasicListItem.html\"\u003eBasicListItem\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1ListSectionHeader.html\"\u003eListSectionHeader\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1SwipeListItem.html\"\u003eSwipeListItem\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1Heading.html\"\u003eHeading\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classorg_1_1kde_1_1kirigami_1_1Label.html\"\u003eLabel\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003e\n\u003ca class=\"anchor\"\u003e\u003c\/a\u003e\u003cbr\u003e\n\u003c\/h1\u003e\n\u003cdl class=\"licenses\"\u003e\u003c\/dl\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"Kirigami2 (with tax)","offer_id":30985306308705,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Kirigami2 (no tax)","offer_id":31129707970657,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_eac8a260-2daa-432d-8742-7f1ecc15a9fc.png?v=1574934362"},{"product_id":"kitemmodels","title":"KItemModels","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eSet of item models extending the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003emodel-view framework.\u003c\/h4\u003e\n\u003ch2\u003eKItemModels Introduction\u003c\/h2\u003e\n\u003cp\u003eKItemModels provides the following models:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKBreadcrumbSelectionModel.html\" title=\"Selects the parents of selected items to create breadcrumbs. \"\u003eKBreadcrumbSelectionModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Selects the parents of selected items to create breadcrumbs\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKCheckableProxyModel.html\" title=\"Adds a checkable capability to a source model. \"\u003eKCheckableProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Adds a checkable capability to a source model\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKConcatenateRowsProxyModel.html\" title=\"This proxy takes multiple source models and concatenates their rows. \"\u003eKConcatenateRowsProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Concatenates rows from multiple source models\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKDescendantsProxyModel.html\" title=\"Proxy Model for restructuring a Tree into a list. \"\u003eKDescendantsProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Proxy Model for restructuring a Tree into a list\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKExtraColumnsProxyModel.html\" title=\"This proxy appends extra columns (after all existing columns). \"\u003eKExtraColumnsProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Adds columns after existing columns\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKLinkItemSelectionModel.html\" title=\"Makes it possible to share a selection in multiple views which do not have the same source model...\"\u003eKLinkItemSelectionModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Share a selection in multiple views which do not have the same source model\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKModelIndexProxyMapper.html\" title=\"This class facilitates easy mapping of indexes and selections through proxy models. \"\u003eKModelIndexProxyMapper\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Mapping of indexes and selections through proxy models\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKRearrangeColumnsProxyModel.html\" title=\"This proxy shows specific columns from the source model, in any order. \"\u003eKRearrangeColumnsProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Can reorder and hide columns from the source model\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKRecursiveFilterProxyModel.html\" title=\"Implements recursive filtering of models. \"\u003eKRecursiveFilterProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- Recursive filtering of models\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kitemmodels\/html\/classKSelectionProxyModel.html\" title=\"A Proxy Model which presents a subset of its source model to observers. \"\u003eKSelectionProxyModel\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e- A Proxy Model which presents a subset of its source model to observers\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KItemModels (with tax)","offer_id":30985327902817,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KItemModels (no tax)","offer_id":31129721208929,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_1f4f6a92-c90b-42eb-88dc-d20ae76fa20b.png?v=1574934287"},{"product_id":"kplotting","title":"KPlotting","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eData plotting\u003c\/h4\u003e\n\u003ch2\u003eKPlotting Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotWidget.html\" title=\"Generic data plotting widget. \"\u003eKPlotWidget\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis a QWidget-derived class that provides a virtual base class for easy data-plotting. The idea behind\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotWidget.html\" title=\"Generic data plotting widget. \"\u003eKPlotWidget\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis that you only have to specify information in \"data units\"; i.e., the natural units of the data being plotted.\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotWidget.html\" title=\"Generic data plotting widget. \"\u003eKPlotWidget\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eautomatically converts everything to screen pixel units.\u003c\/p\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotWidget.html\" title=\"Generic data plotting widget. \"\u003eKPlotWidget\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003edraws X and Y axes with tick marks and tick labels. It automatically determines how many tick marks to use and where they should be, based on the data limits specified for the plot. You change the limits by calling\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003esetLimits(double x1, double x2, double y1, double y2)\u003c\/code\u003e.\u003c\/p\u003e\n\u003cp\u003eData to be plotted are stored using the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotObject.html\" title=\"Encapsulates a data set to be plotted in a KPlotWidget. \"\u003eKPlotObject\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eclass.\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotObject.html\" title=\"Encapsulates a data set to be plotted in a KPlotWidget. \"\u003eKPlotObject\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003econsists of a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qlist.html\"\u003eQList\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eof\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpointf.html\"\u003eQPointF\u003c\/a\u003e's, each specifying the X,Y coordinates of a data point.\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kplotting\/html\/classKPlotObject.html\" title=\"Encapsulates a data set to be plotted in a KPlotWidget. \"\u003eKPlotObject\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ealso specifies the \"type\" of data to be plotted (POINTS or CURVE or POLYGON or LABEL).\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KPlotting (with tax)","offer_id":30985339797601,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KPlotting (no tax)","offer_id":31129731465313,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_99bd3be4-b6e1-48b8-87ab-934315d047c4.png?v=1574930639"},{"product_id":"ksyntaxhighlighting","title":"KSyntaxHighlighting","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cdiv class=\"contents\"\u003e\n\u003cdiv class=\"textblock\"\u003e\n\u003ch4\u003eSyntax highlighting engine for\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/ktexteditor\/html\/namespaceKate_1_1Script.html\"\u003eKate\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esyntax definitions.\u003c\/h4\u003e\n\u003ch2\u003eKSyntaxHighlighting Introduction\u003c\/h2\u003e\n\u003cp\u003eThis is a stand-alone implementation of the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/ktexteditor\/html\/namespaceKate_1_1Script.html\"\u003eKate\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esyntax highlighting engine. It's meant as a building block for text editors as well as for simple highlighted text rendering (e.g. as HTML), supporting both integration with a custom editor as well as a ready-to-use\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qsyntaxhighlighter.html\"\u003eQSyntaxHighlighter\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esub-class.\u003c\/p\u003e\n\u003ch2\u003eSyntax Definition Files\u003c\/h2\u003e\n\u003cp\u003eThis library uses\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/ktexteditor\/html\/namespaceKate_1_1Script.html\"\u003eKate\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esyntax definition files for the actual highlighting, the file format is documented\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/docs.kde.org\/stable5\/en\/applications\/katepart\/highlight.html\"\u003ehere\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eMore than 250 syntax definition files are included, additional ones are picked up from the file system if present, so you can easily extend this by application-specific syntax definitions for example.\u003c\/p\u003e\n\u003ch2\u003eOut of scope\u003c\/h2\u003e\n\u003cp\u003eTo not turn this into yet another text editor, the following things are considered out of scope:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ecode folding, beyond providing folding range information\u003c\/li\u003e\n\u003cli\u003eauto completion\u003c\/li\u003e\n\u003cli\u003espell checking\u003c\/li\u003e\n\u003cli\u003euser interface for configuration\u003c\/li\u003e\n\u003cli\u003emanagement of text buffers or documents\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eIf you need any of this, check out\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/api.kde.org\/frameworks\/ktexteditor\/html\/\"\u003eKTextEditor\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eAdding unit tests for a syntax definition\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd an input file into the autotests\/input\/ folder, lets call it test.\u0026lt;language-extension\u0026gt;\u003c\/li\u003e\n\u003cli\u003eif the file extension is not sufficient to trigger the right syntax definition, you can add an second file testname.\u0026lt;language-extension\u0026gt;.syntax that contains the syntax definition name to enforce the use of the right extension\u003c\/li\u003e\n\u003cli\u003edo \"make \u0026amp;\u0026amp; make test\"\u003c\/li\u003e\n\u003cli\u003einspect the outputs found in your binary directory autotests\/folding.out, autotests\/html.output and autotests\/output\u003c\/li\u003e\n\u003cli\u003eif ok, run in the binary folder \".\/autotests\/update-reference-data.sh\" to copy the results to the right location\u003c\/li\u003e\n\u003cli\u003eadd the result references after the copying to the git\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KSyntaxHighlighting (with tax)","offer_id":30985354674273,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KSyntaxHighlighting (no tax)","offer_id":31129711738977,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_3b2b078a-f855-4dd5-9df5-85ecf049ec04.png?v=1574930791"},{"product_id":"kuserfeedback","title":"KUserFeedback","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eFramework for collecting feedback from application users via telemetry and targeted surveys.\u003c\/h4\u003e\n\u003ch2\u003eKUserFeedback Telemetry\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtensible set of data sources for telemetry.\u003c\/li\u003e\n\u003cli\u003eFull control for the user on what data to contribute.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKUserFeedback Surveys\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDistribute surveys and offer users to participate in them.\u003c\/li\u003e\n\u003cli\u003eSurvey targeting based on telemetry data.\u003c\/li\u003e\n\u003cli\u003eAllow the user to configure how often they want to participate in surveys.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKUserFeedback Components\u003c\/h2\u003e\n\u003cp\u003eThis framework consists of the following components:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLibraries for use in applications.\u003c\/li\u003e\n\u003cli\u003eQML bindings for the above.\u003c\/li\u003e\n\u003cli\u003eA server application.\u003c\/li\u003e\n\u003cli\u003eA management and analytics application.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKUserFeedback Integration\u003c\/h2\u003e\n\u003cp\u003eTo use this framework in your application, on a high level you have to do the following steps inside your program:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCreate an instance of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/classKUserFeedback_1_1Provider.html\" title=\"The central object managing data sources and transmitting feedback to the server. ...\"\u003eKUserFeedback::Provider\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efor the entire lifetime of your application, and configure it as described in its documetation.\u003c\/li\u003e\n\u003cli\u003eAdd one or more data sources to the provider, choosing from the standard built-in ones, or by adding custom ones deriving from\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/classKUserFeedback_1_1AbstractDataSource.html\" title=\"Base class for data sources for telemetry data. \"\u003eKUserFeedback::AbstractDataSource\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eAdd a way to notify your users about surveys, and to encourage them to contriubute in the first place, by hooking a suitable user interface up with the corresponding signals in UserFeedback::Provider.\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/classKUserFeedback_1_1NotificationPopup.html\" title=\"Notification popup that overlays a small part of the application for encouraging contributions or inf...\"\u003eKUserFeedback::NotificationPopup\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides a reference widget for this purpose.\u003c\/li\u003e\n\u003cli\u003eAdd a way for your users to configure what data to contribute, and how often to be bothered by surveys.\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/classKUserFeedback_1_1FeedbackConfigDialog.html\" title=\"Configure which feedback a user wants to provide. \"\u003eKUserFeedback::FeedbackConfigDialog\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides a reference implementation of a configuration dialog for this.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKUserFeedback Deployment\u003c\/h2\u003e\n\u003cp\u003eFor information on how to deploy the server parts, please see the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/cgit.kde.org\/kuserfeedback.git\/tree\/INSTALL\"\u003eINSTALL\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efile.\u003c\/p\u003e\n\u003ch2\u003eKUserFeedback Usage Documentation\u003c\/h2\u003e\n\u003cp\u003eInformation on how to use\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/namespaceKUserFeedback.html\" title=\"Classes for integrating telemetry collection, survey targeting, and contribution encouragenemt and co...\"\u003eKUserFeedback\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efrom a product manager point of view can be found in the user manual of UserFeedbackConsole. Start UserFeedbackConsole and press\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003eF1\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eto get to the user manual.\u003c\/p\u003e\n\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cp\u003e\u003cem\u003eWhy does the telemetry data contain no unique user\/installation\/machine id?\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/namespaceKUserFeedback.html\" title=\"Classes for integrating telemetry collection, survey targeting, and contribution encouragenemt and co...\"\u003eKUserFeedback\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis designed to be compliant with\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/community.kde.org\/Policies\/Telemetry_Policy\"\u003eKDE Telemetry Policy\u003c\/a\u003e, which forbids the usage of unique identification. If you are using\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/namespaceKUserFeedback.html\" title=\"Classes for integrating telemetry collection, survey targeting, and contribution encouragenemt and co...\"\u003eKUserFeedback\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eoutside of the scope of that policy, it's of course possible to add a custom data source generating and transmitting a unique id.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003eHow can duplicated submissions be detected without unique identification?\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kuserfeedback\/html\/namespaceKUserFeedback.html\" title=\"Classes for integrating telemetry collection, survey targeting, and contribution encouragenemt and co...\"\u003eKUserFeedback\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eaddresses this by using a fixed time interval for telemetry data submission. If for example Provider::submissionInterval is set to one week, aggregating data in one week intervals ensures that there's only at most one sample included from each installation. The other way around, setting Provider::submissionInterval at least as high as the average usage interval of your application ensures a substantial amount of installations have submitted a sample in this interval. A frequently used application such e.g. an email program can therefore get good results with a smaller value than e.g. a special purpose application.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003eHow can developments of a user be tracked without unique identification?\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003eIf you want to observe how usage patterns change as your users gain more experience with the application, there are multiple ways to do that:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude a UsageTimeSource, and correlate the relevant usage data with how long the application has been used.\u003c\/li\u003e\n\u003cli\u003eIt is possible to track arbitrary historic development using custom data sources via AbstractDataSource::reset. This method is called after each successful submission, allowing you to implement a \"memory\" for your data source, and e.g. submit differential rather than absolute values.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KUserFeedback (with tax)","offer_id":30985385181281,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KUserFeedback (no tax)","offer_id":31129730842721,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_caf34021-cf54-477c-84b9-74d204058e42.png?v=1574930933"},{"product_id":"kwayland","title":"KWayland","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eKWayland is a Qt-style API to interact with the wayland-client and wayland-server API.\u003c\/h4\u003e\n\u003ch2\u003eKWayland Introduction\u003c\/h2\u003e\n\u003cp\u003eKWayland provides two libraries:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/namespaceKWayland_1_1Client.html\" title=\"KWayland Client. \"\u003eKWayland::Client\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/namespaceKWayland_1_1Server.html\" title=\"KWayland Server. \"\u003eKWayland::Server\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eAs the names suggest they implement a Client respectively a Server API for the Wayland protocol. The API is Qt-styled removing the needs to interact with a for a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003edeveloper uncomfortable low-level C-API. For example the callback mechanism from the Wayland API is replaced by signals; data types are adjusted to be what a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003edeveloper expects, e.g. two arguments of int are represented by a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpoint.html\"\u003eQPoint\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eor a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qsize.html\"\u003eQSize\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eKWayland Server\u003c\/h2\u003e\n\u003ch3\u003eHead-less API\u003c\/h3\u003e\n\u003cp\u003eThe server library can be used to implement a Wayland server with\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e. The API is head-less meaning it does not perform any output and does not restrict on the way how one wants to render. This allows to easily integrate in existing rendering code based on e.g. OpenGL or\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpainter.html\"\u003eQPainter\u003c\/a\u003e. Applications built on top of KWayland Server integrated the graphics with the following technologies:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpenGL over DRM\/KMS\u003c\/li\u003e\n\u003cli\u003eOpenGL over X11\u003c\/li\u003e\n\u003cli\u003eOpenGL over Wayland\u003c\/li\u003e\n\u003cli\u003eOpenGL over Android's hwcomposer enabled through libhybris\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpainter.html\"\u003eQPainter\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eover DRM\/KMs\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpainter.html\"\u003eQPainter\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eover fbdev\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpainter.html\"\u003eQPainter\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eover X11\u003c\/li\u003e\n\u003cli\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpainter.html\"\u003eQPainter\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eover Wayland\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qwidget.html\"\u003eQWidget\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/classQtQuick_1_1Controls_1_1Styles_1_1Plasma_1_1ApplicationWindowStyle.html\"\u003eQtQuick\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eAlthough the library does not perform any output, it makes it very easy to enable rendering. The representation for a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1BufferInterface.html\"\u003eBuffer\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eallows easy conversion to a (memory-shared)\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qimage.html\"\u003eQImage\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ein case the buffer represents a shared memory buffer. This\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qimage.html\"\u003eQImage\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ecan be used for rendering in a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qpainter.html\"\u003eQPainter\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ebased API or to generate an OpenGL texture.\u003c\/p\u003e\n\u003ch3\u003eEasy usage of Wayland API\u003c\/h3\u003e\n\u003cp\u003eThe library hides many Wayland implementation details. For all Wayland interfaces which have double buffered state the classes always only provide access to the committed state. The pending state is an internal detail. On commit of the pending state\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003esignals are emitted about what changed.\u003c\/p\u003e\n\u003cp\u003eBuffers are ref-counted and automatically released if it is no longer referenced allowing the client to reuse it. This happens fully automatically when a surface no longer references a buffer. As long as a buffer is attached surface, the surface has it referenced and the user of the API can access the buffer without needing to care about referencing it.\u003c\/p\u003e\n\u003cp\u003eThe API of KWayland is hand-crafted to make usage easier. The representation of a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1SurfaceInterface.html\"\u003eSurface\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ecombines multiple aspects about a Surface even if in Wayland API it is added to other elements. E.g. a Surface contains all\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1SubSurfaceInterface.html\"\u003eSubSurfaces\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eattached to it instead of the user having to monitor for which Surface a SubSurface got created.\u003c\/p\u003e\n\u003cp\u003eSimilar the representation of a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1SeatInterface.html\"\u003eSeat\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ecombines all aspects of the Seat. A user of the API only needs to interact with the Seat, there is no need to track all the created\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1KeyboardInterface.html\"\u003ekeyboards\u003c\/a\u003e,\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1PointerInterface.html\"\u003epointers\u003c\/a\u003e, etc. The representation of Seat tracks which keyboards are generated and is able to forward events to the proper focus surface, send enter and leave notifications when needed without the user of the API to care about it.\u003c\/p\u003e\n\u003ch3\u003eHandling input events\u003c\/h3\u003e\n\u003cp\u003eJust like with output the server API does not restrict on how to get input events. This allows to integrate with existing input handlers and also allows to easily filter the input before it is passed to the server and from there delegated to the client. By that one can filter out e.g. global touch gestures or keyboard shortcuts without having to implement handlers inside KWayland. The SeatInterface provides a very easy to use API to forward events which can be easily integrated with\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e's own input event system, e.g. there is a mapping from Qt::MouseButton to the Linux input code.\u003c\/p\u003e\n\u003cp\u003eApplications built on top of KWayland Server integrated input events with the following technologies:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003elibinput\u003c\/li\u003e\n\u003cli\u003eX11\u003c\/li\u003e\n\u003cli\u003eWayland\u003c\/li\u003e\n\u003cli\u003eAndroid's inputstack enabled through libhybris\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qinputevent.html\"\u003eQInputEvent\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePrivate IPC with child processes\u003c\/h3\u003e\n\u003cp\u003eKWayland Server is well suited for having a private IPC with child processes. The\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Server_1_1Display.html\"\u003eDisplay\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ecan be setup in a way that it doesn't create a public socket but only allows connections through socket pairs. This allows to create a socketpair, pass one file descriptor to KWayland server and the other to the forked process, e.g. through the WAYLAND_SOCKET environment variable. Thus a dedicated IPC is created which can be used even for running your own custom protocol. For example\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/namespacePlasma.html\"\u003ePlasma\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003euses such a dedicated parent-child Wayland server in it's screen locker architecture.\u003c\/p\u003e\n\u003cp\u003eOf course private sockets can be added at any time in addition to a publicly available socket. This can be used to recognize specific clients and to restrict access to interfaces for only some dedicated clients.\u003c\/p\u003e\n\u003ch2\u003eKWayland Client\u003c\/h2\u003e\n\u003cp\u003eThe idea around KWayland Client is to provide a drop-in API for the Wayland client library which at the same time provides convenience Qt-style API. It is not intended to be used as a replacement for the QtWayland QPA plugin, but rather as a way to interact with Wayland in case one needs\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eto use a different QPA plugin or in combination with QtWayland to allow a more low-level interaction without requiring to write C code.\u003c\/p\u003e\n\u003ch3\u003eConvenience API\u003c\/h3\u003e\n\u003cp\u003eThe convenience API in KWayland Client provides one class wrapping a Wayland object. Each class can be casted into the wrapped Wayland type. The API represents events as signals and provides simple method calls for requests.\u003c\/p\u003e\n\u003cp\u003eClasses representing global Wayland resources can be created through the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwayland\/html\/classKWayland_1_1Client_1_1Registry.html\"\u003eRegistry\u003c\/a\u003e. This class eases the interaction with the Wayland registry and emits signals whenever a new global is announced or gets removed. The Registry has a list of known interfaces (e.g. common Wayland protocols like\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003ewl_compositor\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eor\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003ewl_shell\u003c\/code\u003e) which have dedicated announce\/removed signals and objects can be factored by the Registry for those globals.\u003c\/p\u003e\n\u003cp\u003eMany globals function as a factory for further resources. E.g. the Compositor has a factory method for Surfaces. All objects can also be created in a low-level way interacting directly with the Wayland API, but provide convenience factory methods in addition. This allows both an easy usage or a more low level control of the Wayland API if needed.\u003c\/p\u003e\n\u003ch3\u003eIntegration with QtWayland QPA\u003c\/h3\u003e\n\u003cp\u003eIf the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qguiapplication.html\"\u003eQGuiApplication\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003euses the QtWayland QPA, KWayland allows to integrate with it. That is one does not need to create a new connection to the Wayland server, but can reuse the one used by\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e. If there is a way to get a Wayland object from\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e, the respective class provides a static method normally called\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003efromApplication\u003c\/code\u003e. In addition the API allows to get the Surface from a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qwindow.html\"\u003eQWindow\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eUsing KWayland in your application\u003c\/h2\u003e\n\u003ch3\u003eWith CMake\u003c\/h3\u003e\n\u003cp\u003eKWayland installs a CMake Config file which allows to use KWayland as imported targets. There is one library for Client and one for Server.\u003c\/p\u003e\n\u003cp\u003eTo find the package use for example:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003efind_package(KF5Wayland CONFIG)\nset_package_properties(KF5Wayland PROPERTIES TYPE OPTIONAL )\nadd_feature_info(\"KF5Wayland\" KF5Wayland_FOUND \"Required for the awesome Wayland on Qt demo\")\n\u003c\/pre\u003e\n\u003cp\u003eNow to link against the Client library use:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003eadd_executable(exampleApp example.cpp)\ntarget_link_libraries(exampleApp KF5::WaylandClient)\n\u003c\/pre\u003e\n\u003cp\u003eTo link against the Server library use:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003eadd_executable(exampleServer exampleServer.cpp)\ntarget_link_libraries(exampleServer KF5::WaylandServer)\n\u003c\/pre\u003e\n\u003ch3\u003eWith QMake\u003c\/h3\u003e\n\u003cp\u003eKWayland installs .pri files for the Client and Server library allowing easy usage in QMake based applications.\u003c\/p\u003e\n\u003cp\u003eJust use:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003eQT += KWaylandClient\n\u003c\/pre\u003e\n\u003cp\u003eRespectively:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003eQT += KWaylandServer\n\u003c\/pre\u003e\n\u003cp\u003ePlease make sure that your project is configured with C++11 support:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003eCONFIG += c++11\u003c\/pre\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KWayland (with tax)","offer_id":30985406447713,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KWayland (no tax)","offer_id":31129709477985,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_001235b2-a903-457d-abee-bc7f2a5460cf.png?v=1574930967"},{"product_id":"kwidgetsaddons","title":"KWidgetsAddons","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eA large set of desktop widgets.\u003c\/h4\u003e\n\u003ch2\u003eKWidgetsAddons Introduction\u003c\/h2\u003e\n\u003cp\u003eThis repository contains add-on widgets and classes for applications that use the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eWidgets module. If you are porting applications from\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ePlatform 4 \"kdeui\" library, you will find many of its classes here.\u003c\/p\u003e\n\u003cp\u003eProvided are action classes that can be added to toolbars or menus, a wide range of widgets for selecting characters, fonts, colors, actions, dates and times, or MIME types, as well as platform-aware dialogs for configuration pages, message boxes, and password requests.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KWidgetsAddons (with tax)","offer_id":30985442132065,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KWidgetsAddons (no tax)","offer_id":31129729106017,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_0ed798fe-500d-4444-971b-5e265b37aade.png?v=1574931001"},{"product_id":"kwindowsystem","title":"KWindowSystem","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eAccess to the windowing system.\u003c\/h4\u003e\n\u003ch2\u003eKWindowSystem Introduction\u003c\/h2\u003e\n\u003cp\u003eConvenience access to certain properties and features of the windowing system.\u003c\/p\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kwindowsystem\/html\/classKWindowSystem.html\" title=\"Convenience access to certain properties and features of the window manager. \"\u003eKWindowSystem\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides information about the windowing system and allows interaction with the windowing system. It provides an high level API which is windowing system independent and has platform specific implementations. This API is inspired by X11 and thus not all functionality is available on all windowing systems.\u003c\/p\u003e\n\u003cp\u003eIn addition to the high level API, this framework also provides several more low level classes for interaction with the X Windowing System.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KWindowSystem (with tax)","offer_id":30985465757793,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KWindowSystem (no tax)","offer_id":31129688080481,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_4aae1b3d-104b-4b11-80f0-a7fa78a0987a.png?v=1574931031"},{"product_id":"networkmanagerqt","title":"NetworkManagerQt","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003e\n\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ewrapper for\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/networkmanager-qt\/html\/namespaceNetworkManager.html\" title=\"This class allows querying the underlying system to discover the available network interfaces and rea...\"\u003eNetworkManager\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eDBus API.\u003c\/h4\u003e\n\u003ch2\u003eNetworkManagerQt Introduction\u003c\/h2\u003e\n\u003cp\u003eNetworkManagerQt provides access to all\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/networkmanager-qt\/html\/namespaceNetworkManager.html\" title=\"This class allows querying the underlying system to discover the available network interfaces and rea...\"\u003eNetworkManager\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003efeatures exposed to DBus. It allows you to manage your connections and control your network devices and also provides a library for parsing connection settings which are used in DBus communication.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"NetworkManagerQt (with tax)","offer_id":30985499410529,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"NetworkManagerQt (no tax)","offer_id":31129730515041,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_d669103d-a51e-4304-af61-84923dc7508d.png?v=1574931135"},{"product_id":"qqc2-desktop-style","title":"QQC2 Desktop Style","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003eUsing\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qstyle.html\"\u003eQStyle\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eto paint the controls in order to give it a native look and feel.\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003eA style for QtQuickControls2.\u003c\/h2\u003e\n\u003cp\u003eIt has no API, applications shouldn't (and can't) use it directly, but they can depend on this framework in their desktop version if they want to impose an integrated look when running on the desktop.\u003c\/p\u003e\n\u003cdl class=\"licenses\"\u003e\u003c\/dl\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"QQC2 Desktop Style (with tax)","offer_id":30985538469985,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"QQC2 Desktop Style (no tax)","offer_id":31129725010017,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_8795a0d8-9716-4356-ba4d-e36aad806b8b.png?v=1574864673"},{"product_id":"quick-charts","title":"KQuick Charts","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003eA QtQuick module providing high-performance charts.\u003c\/h4\u003e\n\u003cp\u003eThe Quick Charts module provides a set of charts that can be used from QtQuick applications. They are intended to be used for both simple display of data as well as continuous display of high-volume data (often referred to as plotters). The charts use a system called distance fields for their accelerated rendering, which provides ways of using the GPU for rendering 2D shapes without loss of quality.\u003c\/p\u003e\n\u003ch3\u003e\u003c\/h3\u003e\n\u003cdiv class=\"fragment\"\u003e\u003c\/div\u003e\n\u003ch2\u003eKQuick Charts Concepts\u003c\/h2\u003e\n\u003cp\u003eThere are three main concepts to consider when using this module: charts, data sources and decorations.\u003c\/p\u003e\n\u003ch3\u003eCharts\u003c\/h3\u003e\n\u003cp\u003eThese are the main items of the module. They process data and render it in a certain way. Currently there are three main types of charts: pie charts, line charts and bar charts. All charts inherit the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classChart.html\"\u003eChart\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eclass, which provides the most basic chart interface. On top of that is the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classXYChart.html\"\u003eXYChart\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ebase class, which provides an interface for charts that are based on an X\/Y grid.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classPieChart.html\"\u003ePieChart\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classLineChart.html\"\u003eLineChart\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classBarChart.html\"\u003eBarChart\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eData Sources\u003c\/h3\u003e\n\u003cp\u003eData sources are objects that provide data to charts. These objects act as adapters to other objects, like\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e's models. All data source objects inherit\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classChartDataSource.html\"\u003eChartDataSource\u003c\/a\u003e, which represents the basic data source interface.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classSingleValueSource.html\"\u003eSingleValueSource\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classArraySource.html\"\u003eArraySource\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classModelSource.html\"\u003eModelSource\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classValueHistorySource.html\"\u003eValueHistorySource\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classModelHistorySource.html\"\u003eModelHistorySource\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classColorGradientSource.html\"\u003eColorGradientSource\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classChartAxisSource.html\"\u003eChartAxisSource\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eDecorations\u003c\/h3\u003e\n\u003cp\u003eDecorations are items that provide extra information about a chart. These are things like a legend or axis labels. They usually work with multiple types of charts, though some may be limited to X\/Y charts.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classAxisLabels.html\"\u003eAxisLabels\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classGridLines.html\"\u003eGridLines\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classLegendModel.html\"\u003eLegendModel\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKQuick Charts Controls\u003c\/h2\u003e\n\u003cp\u003eA submodule is provided that contains pre-made controls that are provided as a convenience layer. These controls may be more restrictive in their data sources or how they display things. They are composed of Charts items along with some QtQuick Controls items. Some of the controls may use style-specific theming.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classorg_1_1kde_1_1quickcharts_1_1controls_1_1Legend.html\"\u003eLegend\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classorg_1_1kde_1_1quickcharts_1_1controls_1_1LegendDelegate.html\"\u003eLegendDelegate\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classorg_1_1kde_1_1quickcharts_1_1controls_1_1LineChartControl.html\"\u003eLineChartControl\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kquickcharts\/html\/classorg_1_1kde_1_1quickcharts_1_1controls_1_1PieChartControl.html\"\u003ePieChartControl\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKQuick Charts Supporting Code\u003c\/h2\u003e\n\u003cp\u003eThere are a number of classes and other pieces of code that are not considered public API and thus not part of the public API documentation. Primarily, these are all the QtQuick Scene Graph related classes located in\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003esrc\/scenegraph\/\u003c\/code\u003e, in addition to the shaders that are used for rendering charts.\u003c\/p\u003e\n\u003ch3\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"Quick Charts (with tax)","offer_id":30985560621153,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Quick Charts (no tax)","offer_id":31129722060897,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_cab427f1-c4da-493c-9ae5-0bdd1d994d84.png?v=1574865375"},{"product_id":"solid","title":"Solid","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eDesktop hardware abstraction.\u003c\/h4\u003e\n\u003cp\u003eSolid is a device integration framework. It provides a way of querying and interacting with hardware independently of the underlying operating system.\u003c\/p\u003e\n\u003cp\u003eIt provides the following features for application developers:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardware Discovery\u003c\/li\u003e\n\u003cli\u003ePower Management\u003c\/li\u003e\n\u003cli\u003eNetwork Management\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThere is also a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/solid\/html\/song.html\"\u003eSolid song\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"Solid (with tax)","offer_id":30985612361825,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Solid (no tax)","offer_id":31129705414753,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_bf17668b-551b-4d32-84b8-127c1857ea81.png?v=1574930540"},{"product_id":"sonnet","title":"Sonnet","description":"\u003ch4\u003eMulti-language spell checker.\u003c\/h4\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/sonnet\/html\/namespaceSonnet.html\" title=\"The sonnet namespace. \"\u003eSonnet\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis a plugin-based spell checking library for Qt-based applications. It supports several different plugins, including HSpell, Enchant, ASpell and HUNSPELL. \u003cbr\u003eIt also supports automated language detection, based on a combination of different algorithms. \u003cbr\u003eThe simplest way to use\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/sonnet\/html\/namespaceSonnet.html\" title=\"The sonnet namespace. \"\u003eSonnet\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ein your application is to use the SpellCheckDecorator class on your\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/doc.qt.io\/qt-5\/qtextedit.html\"\u003eQTextEdit\u003c\/a\u003e.\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003eSonnet Usage\u003c\/h2\u003e\n\u003cspan face=\"Helvetica Neue, Helvetica, Arial, sans-serif\"\u003e\u003cspan\u003eCMake:\u003c\/span\u003e\u003c\/span\u003e\u003cbr\u003e \u003cmeta charset=\"utf-8\"\u003e\n\u003cpre class=\"fragment\"\u003efind_package(KF5Sonnet)\ntarget_link_libraries(yourapp KF5::SonnetCore KF5::SonnetUi)\u003c\/pre\u003e\n  \u003cbr\u003eqmake:  \u003cbr\u003e \u003cmeta charset=\"utf-8\"\u003e\n\u003cpre class=\"fragment\"\u003eQT += SonnetCore SonnetUi \u003cbr\u003e\u003cbr\u003e\u003c\/pre\u003e\n\u003ch2 class=\"fragment\"\u003eSonnet Example\u003c\/h2\u003e\n\u003cpre class=\"fragment\"\u003e#include \u0026lt;QTextEdit\u0026gt;\n#include \u0026lt;spellcheckdecorator.h\u0026gt;\n\nMyFoo::MyFoo(QWidget *parent) : QWidget(parent)\n{\n    QTextEdit *textEdit = new QTextEdit(this);\n    Sonnet::SpellCheckDecorator *decorator = new Sonnet::SpellCheckDecorator(textEdit);\n}\u003c\/pre\u003e","brand":"The KDE Community","offers":[{"title":"Sonnet (with tax)","offer_id":30985651257441,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Sonnet (no tax)","offer_id":31129712197729,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_eb6db9fb-0220-4fa9-9d91-64ad2b49d129.png?v=1574930505"},{"product_id":"threadweaver","title":"Thread Weaver","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eHelper for multithreaded programming.\u003c\/h4\u003e\n\u003cp\u003eThreadWeaver is a helper for multithreaded programming. It uses a job-based interface to queue tasks and execute them in an efficient way.\u003c\/p\u003e\n\u003cp\u003eYou simply divide the workload into jobs, state the dependencies between the jobs and ThreadWeaver will work out the most efficient way of dividing the work between threads within a set of resource limits.\u003c\/p\u003e\n\u003cp\u003eSee the information on\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/threadweaver\/html\/usecases.html\"\u003euse cases\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eand\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/threadweaver\/html\/multithreading.html\"\u003ewhy multithreading can help\u003c\/a\u003e, as well as the usage section below, for more detailed information. \u003c\/p\u003e\n\u003ch2\u003eThread Weaver Usage\u003c\/h2\u003e\n\u003cp\u003eThreadWeaver is a Job queue. It executes jobs in threads it internally manages. The minimum and maximum number of threads provided by a Weaver is set by the user. Jobs are regular QObjects, which allows users to connect to the\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003edone()\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003esignal to be notified when the Job has been executed. The Weaver class provides objects that handle a number of threads called the inventory. Users usually acquire a reference to a WeaverInterface object.\u003c\/p\u003e\n\u003cp\u003eJobs may depend on other jobs. A job will only execute if all jobs it depends on are already finished. In this, dependencies reorder job execution. If no dependencies are declared, jobs are executed in queueing order. Multiple dependencies are possible, which allows the creation of complex flow graphs that are automatically executed by the Weaver. It is important, though, to avoid circular dependencies. Two jobs that depend on each other in both directions will simply never be executed, since the dependencies will never resolve.\u003c\/p\u003e\n\u003cp\u003eThreads are created on demand and do not exit until the containing weaver is deleted. Threads have an eager policy in trying to execute jobs out of the queue. The managing Weaver blocks them if no jobs are available.\u003c\/p\u003e\n\u003cp\u003eWeaverObservers are used to receive more informative events about the thread states and job execution. They can be used to provide progress or debugging information or to implement GUIs to show the thread activity. Observers can be attached to Weavers and will disconnect automatically when they are deleted.\u003c\/p\u003e\n\u003ch3\u003eJob Execution\u003c\/h3\u003e\n\u003cp\u003eIn general, jobs are executed in the order they are queued, if they have no unresolved dependencies. This behaviour can be used to balance I\/O, network and CPU load. The SMIV example shows how this can be done.\u003c\/p\u003e\n\u003ch3\u003eEmitting Signals from Jobs\u003c\/h3\u003e\n\u003cp\u003eTo notify the application's GUI of progress or other events, it may be desirable to emit signals from the Job objects that can be connected to the main thread. Since the job will be executed in another thread, such signals are delivered asynchronously.\u003c\/p\u003e\n\u003cp\u003eThe Job class in the ThreadWeaver library itself contains such a helper class that can be used as a reference for this approach.\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2 class=\"label\"\u003eThread Weaver Home page\u003c\/h2\u003e\n\u003cdiv class=\"value\"\u003e\u003ca href=\"http:\/\/api.kde.org\/frameworks-api\/frameworks5-apidocs\/threadweaver\/html\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttp:\/\/api.kde.org\/frameworks-api\/frameworks5-apidocs\/threadweaver\/html\/index.html\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"Thread Weaver (with tax)","offer_id":30985698213985,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Thread Weaver (no tax)","offer_id":31129707151457,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_cf68ea4d-e014-4c30-a9df-c8d752d5099a.png?v=1574930469"},{"product_id":"incredibuild","title":"Incredibuild - Turbocharges Development","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cdiv class=\"trix-content\"\u003e\n\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003e\u003cspan\u003eIt is a plug-and-play solution that empowers Qt users to dramatically reduce their Qt applications build times.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e8x faster builds. 80% shorter release cycles. 4x the number of iterations.\u003c\/h2\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eIncredibuild, supported on both Windows and Linux, has a dedicated Qt Creator plugin that turbocharges development from compilations to testing and releases automation by turning every host into a supercomputer with hundreds, even thousands, of cores.\u003c\/p\u003e\n\u003cp\u003eIncredibuild’s Virtualized Distributed Processing™ technology utilizes idle CPU across your network and cloud resources.\u003c\/p\u003e\n\u003cp\u003eUsing the same code, processes, and tools, Qt Creator or Visual Studio users accelerate product development with 8x faster builds, 80% shorter release cycles, and 4x the number of iterations, consistently releasing better products to market radically faster.\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"UTF-8\"\u003e\u003cstrong\u003ePlease note, following your check-out you will be directed to Incredibuild website to complete the sign-up process and receive your 30 days free license.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eIncredibuild is available in a \u003ca href=\"https:\/\/www.incredibuild.com\/free-trial?utm_source=qtmarketplace\u0026amp;utm_medium=referral\"\u003eFree trial version\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlease visit the following resources for additional information:\u003cbr\u003e \u003cbr\u003e \u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/incredibuild.atlassian.net\/wiki\/spaces\/IUM\/pages\/19202836\/IncrediBuild+for+Qt+Creator\"\u003eIncredibuild for Qt Creator – Documentation and set-up instructions\u003c\/a\u003e.\u003cbr\u003e \u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/youtu.be\/xPe_dxWOBgA\"\u003eA recording of Incredibuild and Qt joint webinar\u003c\/a\u003e.\u003cbr\u003e \u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/sec.ch9.ms\/ch9\/d921\/641f0ac6-1b27-4ce5-a092-1938f7b4d921\/WhatIsIncrediBuild_high.mp4\"\u003eAnkit Asthana, senior program manager in Microsoft's Visual C++, talks about Incredibuild and Qt integration.\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003e \u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"trix-content\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"asaf.eldad@incredibuild.com","offers":[{"title":"Incredibuild - Turbocharges development (with tax)","offer_id":31040544440417,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Incredibuild - Turbocharges development (no tax)","offer_id":31129705676897,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/Incredibuild-logo.jpg?v=1603716628"},{"product_id":"kactivities","title":"KActivities","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003eCore components for the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eActivity concept.\u003c\/p\u003e\n\u003ch2\u003eKActivities Introduction\u003c\/h2\u003e\n\u003cp\u003eWhen a user is interacting with a computer, there are three main areas of contextual information that may affect the behaviour of the system: who the user is, where they are, and what they are doing.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003eActivities\u003c\/em\u003e\u003cspan\u003e \u003c\/span\u003edeal with the last one. An activity might be \"developing a KDE application\", \"studying 19th century art\", \"composing music\" or \"watching funny videos\". Each of these activites may involve multiple applications, and a single application may be used in multiple activities (for example, most activities are likely to involve using a web browser, but different activities will probably involve different websites).\u003c\/p\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities\/html\/namespaceKActivities.html\" title=\"Namespace for everything in libkactivities. \"\u003eKActivities\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides the infrastructure needed to manage a user's activites, allowing them to switch between tasks, and for applications to update their state to match the user's current activity. This includes a daemon, a library for interacting with that daemon, and plugins for integration with other frameworks.\u003c\/p\u003e\n\u003ch2\u003eKActivities Usage\u003c\/h2\u003e\n\u003cp\u003eMost applications that wish to be activity-aware will want to use\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities\/html\/classKActivities_1_1Consumer.html\" title=\"Contextual information can be, from the user's point of view, divided into three aspects - \u0026quot;who am I...\"\u003eKActivities::Consumer\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eto keep track of the user's current activity, and\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities\/html\/classKActivities_1_1ResourceInstance.html\" title=\"This class is used to notify the system that a file, web page or some other resource has been accesse...\"\u003eKActivities::ResourceInstance\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eto notify the activity manager of resources the user has accessed (this is not necessary for resources accessed via\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" href=\"https:\/\/api.kde.org\/frameworks\/kio\/html\/namespaceKIO.html\"\u003eKIO\u003c\/a\u003e, as a plugin is provided to do that automatically).\u003c\/p\u003e\n\u003cp\u003eThe other classes available in the API are primarily intended for use by the workspace to allow the user to view and manage available activities.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KActivities (with tax)","offer_id":31041032519777,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KActivities (no tax)","offer_id":31129714983009,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_ca6e31aa-e823-49dc-87ae-640d976272b3.png?v=1574870736"},{"product_id":"kauth","title":"KAuth","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003eExecute actions as a privileged user.\u003c\/p\u003e\n\u003ch2\u003eKAuth Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kauth\/html\/namespaceKAuth.html\"\u003eKAuth\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides a convenient, system-integrated way to offload actions that need to be performed as a privileged user (root, for example) to small (hopefully secure) helper utilities.\u003c\/p\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KAuth (with tax)","offer_id":31041068466273,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KAuth (no tax)","offer_id":31129691979873,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_eb8182c2-9f93-407d-acff-a31272f6d6ef.png?v=1574871775"},{"product_id":"kcompletion","title":"KCompletion","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cp\u003ePowerful completion framework, including completion-enabled line-edit and combo box.\u003c\/p\u003e\n\u003ch2\u003eKCompletion Introduction\u003c\/h2\u003e\n\u003cp\u003eWhen typing filenames, email addresses and other text where the user often wants to select from existing data (including what they previously typed) rather than enter anything wholly original, users often find it helpful if they only need to type the first few characters, and then have the application offer them a set of choices or attempt to finish off what they were typing. Email clients, shells and \"open file\" dialogs often provide this functionality.\u003c\/p\u003e\n\u003cp\u003eThis framework helps implement this in Qt-based applications. You can use one of the completion-ready widgets provided by this framework, or integrate it into your application's other widgets directly.\u003c\/p\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KCompletion (with tax)","offer_id":31041763246177,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KCompletion (no tax)","offer_id":31129724649569,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_d28abb25-876a-4042-a918-7e2a31eff291.png?v=1574934290"},{"product_id":"kcontacts","title":"KContacts","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003cdiv class=\"contents\"\u003e\n\u003cdiv class=\"textblock\"\u003e\n\u003ch4\u003eIt provides an API for contacts\/address book data following the vCard standard (RFC 2425 \/ RFC 2426).\u003c\/h4\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003eKContact Features \u003cbr\u003e\n\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003evCard data model (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcontacts\/html\/classKContacts_1_1Addressee.html\" title=\"address book entry \"\u003eKContacts::Addressee\u003c\/a\u003e).\u003c\/li\u003e\n\u003cli\u003evCard input\/output (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcontacts\/html\/classKContacts_1_1VCardConverter.html\" title=\"Class to converting contact objects into vCard format and vice versa. \"\u003eKContacts::VCardConverter\u003c\/a\u003e).\u003c\/li\u003e\n\u003cli\u003eContact group management (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcontacts\/html\/classKContacts_1_1ContactGroup.html\" title=\"This class represents a group of contacts. \"\u003eKContacts::ContactGroup\u003c\/a\u003e).\u003c\/li\u003e\n\u003cli\u003eLocale-aware address formatting (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcontacts\/html\/classKContacts_1_1Address.html\" title=\"Postal address information. \"\u003eKContacts::Address\u003c\/a\u003e).\u003c\/li\u003e\n\u003cli\u003eLocalized country name to ISO 3166-1 alpha 2 code mapping and vice verca (see\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcontacts\/html\/classKContacts_1_1Address.html\" title=\"Postal address information. \"\u003eKContacts::Address\u003c\/a\u003e).\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KContacts (with tax)","offer_id":31041787854945,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KContacts (no tax)","offer_id":31129727959137,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_ad2b8579-ef18-4ec8-b789-22a9bb48dd01.png?v=1574934395"},{"product_id":"kcrash","title":"KCrash","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eGraceful handling of application crashes.\u003c\/h4\u003e\n\u003ch2\u003eKCrash Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kcrash\/html\/namespaceKCrash.html\" title=\"This namespace contains functions to handle crashes. \"\u003eKCrash\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eprovides support for intercepting and handling application crashes.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KCrash (with tax)","offer_id":31041813512289,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KCrash (no tax)","offer_id":31129726091361,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_52ad0060-b1a4-4564-8bb4-76b1e16962e4.png?v=1574934595"},{"product_id":"knotifications","title":"KNotifications","description":"\u003cdiv class=\"trix-content\"\u003e\n\u003ch4\u003eDesktop notifications.\u003c\/h4\u003e\n\u003ch2\u003eKNotifications Introduction\u003c\/h2\u003e\n\u003cp\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/knotifications\/html\/classKNotification.html\" title=\"KNotification is used to notify the user of an event. \"\u003eKNotification\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis used to notify the user of an event. It covers feedback and persistent events.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KNotifications (with tax)","offer_id":31041844969569,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KNotifications (no tax)","offer_id":31129721700449,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_6e2e6520-775f-4b74-9cbf-ca41f0414e40.png?v=1574934120"},{"product_id":"kdoctools","title":"KDocTools","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eProvides tools to generate documentation in various formats from DocBook files.\u003c\/p\u003e\n\u003ch4\u003eCreate documentation from DocBook.\u003c\/h4\u003e\n\u003ch2\u003eKDocTools Authors\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEric Bischoff (everything not named below ;-)\u003c\/li\u003e\n\u003cli\u003eClaudiu Costin (conversion script for Romanian and Russian TeX output)\u003c\/li\u003e\n\u003cli\u003eFrederik Fouvry (DSSSL style file customization and SGML setup)\u003c\/li\u003e\n\u003cli\u003eDavid Rugge (DocBook crash course and documentation template)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eplus a number of people that made suggestions, improved scripts, sent bug reports, etc, etc. \u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KDocTools (with tax)","offer_id":31174300401761,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KDocTools (no tax)","offer_id":31174300434529,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_b79a385c-b5ba-4812-92db-ab8d80463d75.png?v=1574934050"},{"product_id":"kfilemetadata","title":"KFileMetaData","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eIt provides a simple library for extracting the text and metadata from a number of different files.\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch3\u003eKFileMetaData\u003c\/h3\u003e\n\u003cp\u003eThis library is typically used by file indexers to retrieve the metadata. This library can also be used by applications to write metadata.\u003c\/p\u003e\n\u003cul\u003e\u003c\/ul\u003e","brand":"The KDE Community","offers":[{"title":"KFileMetaData (with tax)","offer_id":31174348177505,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KFileMetaData (no tax)","offer_id":31174348210273,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_5a4f4869-1ab5-4745-8abd-10891df01914.png?v=1574934663"},{"product_id":"kimageformats","title":"KImageFormats","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003ePlugins to allow\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtgui.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qimage.html\"\u003eQImage\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eto support extra file formats.\u003c\/h4\u003e\n\u003ch2\u003eKImageFormats Introduction\u003c\/h2\u003e\n\u003cp\u003eThis framework provides additional image format plugins for QtGui. As such it is not required for the compilation of any other software, but may be a runtime requirement for Qt-based software to support certain image formats.\u003c\/p\u003e\n\u003ch2\u003eKImageFormats Formats\u003c\/h2\u003e\n\u003cp\u003eThe following image formats have read-only support:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eGimp (xcf)\u003c\/li\u003e\n\u003cli\u003eOpenEXR (exr)\u003c\/li\u003e\n\u003cli\u003ePhotoshop documents (psd)\u003c\/li\u003e\n\u003cli\u003eSun Raster (ras)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe following image formats have read and write support:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eEncapsulated PostScript (eps)\u003c\/li\u003e\n\u003cli\u003ePersonal Computer Exchange (pcx)\u003c\/li\u003e\n\u003cli\u003eSGI images (rgb, rgba, sgi, bw)\u003c\/li\u003e\n\u003cli\u003eSoftimage PIC (pic)\u003c\/li\u003e\n\u003cli\u003eTarga (tga): supports more formats than\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e's version\u003c\/li\u003e\n\u003cli\u003eXView (xv)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKImageFormats Contributing\u003c\/h2\u003e\n\u003cp\u003eSee the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtgui.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qimageioplugin.html\"\u003eQImageIOPlugin\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003edocumentation for information on how to write a new plugin.\u003c\/p\u003e\n\u003cp\u003eThe main difference between this framework and the qimageform ats module of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eis the license. As such, if you write an imageformat plugin and you are willing to sign the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eProject contributor agreement, it may be better to submit the plugin directly to the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eProject.\u003c\/p\u003e\n\u003cp\u003eNote that the imageformat plugins provided by this module also provide a desktop file. This is for the benefit of\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kdelibs4support\/html\/KDELibs4Support.tags:..\/..\/..\/frameworks\/kdelibs4support\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKImageIO.html\"\u003eKImageIO\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ein the KDE4 Support framework.\u003c\/p\u003e\n\u003ch2\u003eKImageFormats Duplicated Plugins\u003c\/h2\u003e\n\u003cp\u003eThe TGA plugin supports more formats than\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e's own TGA plugin; specifically, the one provided here supports indexed, greyscale and RLE images (types 1-3 and 9-11), while\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e's plugin only supports type 2 (RGB) files.\u003c\/p\u003e\n\u003cp\u003eThe code for this cannot be contributed upstream directly because of licensing. If anyone were willing to write fresh code to improve\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e's TGA plugin, it would allow the TGA plugin in this framework to be removed.\u003c\/p\u003e\n\u003ch2\u003eKImageFormats License\u003c\/h2\u003e\n\u003cp\u003eThis framework is licensed under the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/www.gnu.org\/licenses\/old-licenses\/lgpl-2.1.html#SEC1\"\u003eLGPLv2.1\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eThe CMake code in this framework is licensed under the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/opensource.org\/licenses\/BSD-3-Clause\"\u003eBSD license\u003c\/a\u003e.\u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KImageFormats (with tax)","offer_id":31174361579617,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KImageFormats (no tax)","offer_id":31174361612385,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_9466d6aa-4943-4669-8c83-e44265f4b748.png?v=1574940839"},{"product_id":"kjobwidgets","title":"KJobWidgets","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003eWidgets for showing the progress of asynchronous jobs.\u003c\/h4\u003e\n\u003ch2\u003eKJobWidgets Introduction\u003c\/h2\u003e\n\u003cp\u003eKJobWidgets provides widgets for showing the progress of asynchronous jobs.\u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KJobWidgets (with tax)","offer_id":31174377177185,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KJobWidgets (no tax)","offer_id":31174377242721,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_a15b797a-8414-49cd-a038-82f6e81f03db.png?v=1574934248"},{"product_id":"kpackage","title":"KPackage","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003eInstallation and loading of additional content (ex: scripts, images...) as packages.\u003c\/h4\u003e\n\u003ch2\u003eKPackage Introduction\u003c\/h2\u003e\n\u003cp\u003eThe\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kpackage\/html\/namespaceKPackage.html\" title=\"Namespace for everything in kpackage. \"\u003eKPackage\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eframework lets the user install and load packages of nonbinary content such as scripted extensions or graphic assets as if they were traditional plugins.\u003c\/p\u003e\n\u003ch1\u003e\u003c\/h1\u003e","brand":"The KDE Community","offers":[{"title":"KPackage (with tax)","offer_id":31174396543073,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KPackage (no tax)","offer_id":31174396575841,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_338aca55-f5c3-43f7-b5ed-7ee74a64facc.png?v=1574931301"},{"product_id":"kpty","title":"KPty","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003eInterfacing with pseudo terminal devices.\u003c\/h4\u003e\n\u003ch2\u003eKPty Introduction\u003c\/h2\u003e\n\u003cp\u003eThis library provides primitives to interface with pseudo terminal devices as well as a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kcoreaddons\/html\/KCoreAddons.tags:..\/..\/..\/frameworks\/kcoreaddons\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kcoreaddons\/html\/classKProcess.html\"\u003eKProcess\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ederived class for running child processes and communicating with them using a pty.\u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KPty (with tax)","offer_id":31174414860385,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KPty (no tax)","offer_id":31174414893153,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_08615a1e-cdf3-4eb5-858b-b0d28c571c3c.png?v=1574930673"},{"product_id":"kunitconversion","title":"KUnitConversion","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003eConverting physical units.\u003c\/h4\u003e\n\u003ch2\u003eKUnitConversion Introduction\u003c\/h2\u003e\n\u003cp\u003eKUnitConversion provides functions to convert values in different physical units. It supports converting different prefixes (e.g. kilo, mega, giga) as well as converting between different unit systems (e.g. liters, gallons). The following areas are supported:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eAcceleration\u003c\/li\u003e\n\u003cli\u003eAngle\u003c\/li\u003e\n\u003cli\u003eArea\u003c\/li\u003e\n\u003cli\u003eBinary Data\u003c\/li\u003e\n\u003cli\u003eCurrency\u003c\/li\u003e\n\u003cli\u003eDensity\u003c\/li\u003e\n\u003cli\u003eElectrical Current\u003c\/li\u003e\n\u003cli\u003eElectrical Resistance\u003c\/li\u003e\n\u003cli\u003eEnergy\u003c\/li\u003e\n\u003cli\u003eForce\u003c\/li\u003e\n\u003cli\u003eFrequency\u003c\/li\u003e\n\u003cli\u003eFuel efficiency\u003c\/li\u003e\n\u003cli\u003eLength\u003c\/li\u003e\n\u003cli\u003eMass\u003c\/li\u003e\n\u003cli\u003ePermeability\u003c\/li\u003e\n\u003cli\u003ePower\u003c\/li\u003e\n\u003cli\u003ePressure\u003c\/li\u003e\n\u003cli\u003eTemperature\u003c\/li\u003e\n\u003cli\u003eThermal Conductivity\u003c\/li\u003e\n\u003cli\u003eThermal Flux\u003c\/li\u003e\n\u003cli\u003eThermal Generation\u003c\/li\u003e\n\u003cli\u003eTime\u003c\/li\u003e\n\u003cli\u003eVelocity\u003c\/li\u003e\n\u003cli\u003eVolume\u003c\/li\u003e\n\u003cli\u003eVoltage\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eKUnitConversion Usage\u003c\/h2\u003e\n\u003cp\u003eTo convert 100 GBP into EUR, you can write:\u003c\/p\u003e\n\u003cpre class=\"fragment\"\u003eusing namespace KUnitConversion;\nValue pounds(100, Gbp);\nValue eur = pounds.convertTo(Eur);\u003c\/pre\u003e","brand":"The KDE Community","offers":[{"title":"KUnitConversion (with tax)","offer_id":31174422691937,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KUnitConversion (no tax)","offer_id":31174422724705,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_c3f76013-9c50-4035-a876-f9e3a10510de.png?v=1574930891"},{"product_id":"syndication","title":"Syndication","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch4\u003eParser library for RSS and Atom feeds.\u003c\/h4\u003e\n\u003cp\u003eRSS (0.9\/1.0, 0.91..2.0) and Atom (0.3 and 1.0) feeds are supported. syndication offers a unified, format-agnostic view on the parsed feed so that the using application does not need to distinguish between feed formats.\u003c\/p\u003e\n\u003cdl class=\"licenses\"\u003e\u003c\/dl\u003e\n\u003cp\u003eFor questions and discussions about syndication either contact the author or the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/api.kde.org\/frameworks\/syndication\/html\/index.html#\" onclick=\"location.href='mai'+'lto:'+'kde'+'-p'+'im@'+'kd'+'e.o'+'rg'; return false;\"\u003ekde-pim@kde.org\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003emailing list.\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003eSyndication Download\u003c\/h2\u003e\n\u003cp\u003egit clone git:\/\/anongit.kde.org\/syndication.git\u003c\/p\u003e\n\u003ch2\u003eSyndication Usage\u003c\/h2\u003e\n\u003cp\u003e\u003cspan face=\"Helvetica Neue, Helvetica, Arial, sans-serif\"\u003e\u003cspan\u003eCMake:\u003cbr\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cpre class=\"fragment\"\u003efind_package(KF5Syndication)\ntarget_link_libraries(yourapp KF5::Syndication)\u003c\/pre\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eqmake: \u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cpre class=\"fragment\"\u003eQT += Syndication\u003c\/pre\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003e\u003c\/h2\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2 class=\"label\"\u003e\u003c\/h2\u003e","brand":"The KDE Community","offers":[{"title":"Syndication (with tax)","offer_id":31174434291809,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Syndication (no tax)","offer_id":31174434324577,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_72895437-799e-44b5-8481-1b97679b1f98.png?v=1574852048"},{"product_id":"baloo","title":"Baloo","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003e\u003cspan\u003eFile indexing and file search framework for\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kdelibs4support\/html\/KDELibs4Support.tags:..\/..\/..\/frameworks\/kdelibs4support\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/plasma-framework\/html\/Plasma.tags:..\/..\/..\/frameworks\/plasma-framework\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/namespacePlasma.html\"\u003ePlasma\u003c\/a\u003e\u003cspan\u003e.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003eAbout Baloo\u003c\/h2\u003e\n\u003cp\u003eBaloo is the file indexing and file search framework for\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kdelibs4support\/html\/KDELibs4Support.tags:..\/..\/..\/frameworks\/kdelibs4support\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/plasma-framework\/html\/Plasma.tags:..\/..\/..\/frameworks\/plasma-framework\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/plasma-framework\/html\/namespacePlasma.html\"\u003ePlasma\u003c\/a\u003e. It focuses on speed and a very small memory footprint. It maintains an index of your files and optionally their contents which\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/baloo\/html\/searching.html\"\u003eyou can search\u003c\/a\u003e.\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003ch2\u003e\u003c\/h2\u003e","brand":"The KDE Community","offers":[{"title":"Baloo (with tax)","offer_id":31174571229281,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"Baloo (no tax)","offer_id":31174571262049,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_aafc1871-c058-4487-805d-d8c2df961156.png?v=1574867342"},{"product_id":"kactivitiesstats","title":"KActivitiesStats","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eLibrary to access the usage statistics data collected by the\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kdelibs4support\/html\/KDELibs4Support.tags:..\/..\/..\/frameworks\/kdelibs4support\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eactivity manager.\u003c\/p\u003e\n\u003ch2\u003eKActivitiesStats Introduction\u003c\/h2\u003e\n\u003cp\u003eThe KActivitiesStats library provides a querying mechanism for the data that the activitiy manager collects - which documents hae been opened by which applications, and what documents have been linked to which activity. The activity manager also keeps the score for each document which gets higher when a particular document has been often accessed or kept open for longer periods of time. This score is also available through the querying mechanism.\u003c\/p\u003e\n\u003ch2\u003eKActivitiesStats Usage\u003c\/h2\u003e\n\u003cp\u003eThe library provides the following important classes:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ccode\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities-stats\/html\/classKActivities_1_1Stats_1_1ResultSet.html\" title=\"Class that can query the KActivities usage tracking mechanism for resources. \"\u003eKActivities::Stats::ResultSet\u003c\/a\u003e\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eis a low level class that provides a forward iterator to the list of results that match the specified query\u003c\/li\u003e\n\u003cli\u003e\n\u003ccode\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities-stats\/html\/classKActivities_1_1Stats_1_1ResultWatcher.html\" title=\"A very thin class that sends signals when new resources matching a predefined query are available...\"\u003eKActivities::Stats::ResultWatcher\u003c\/a\u003e\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eprovides signals when a new resource that matches a query arrives, or when an existing one is gone (usage statistics cleared or some for other reason)\u003c\/li\u003e\n\u003cli\u003e\n\u003ccode\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities-stats\/html\/classKActivities_1_1Stats_1_1ResultModel.html\" title=\"Provides a model which displays the resources matching the specified Query. \"\u003eKActivities::Stats::ResultModel\u003c\/a\u003e\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eprovides a\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/home\/api\/quality-kde-org\/apidox\/data\/5.2\/qtcore.tags:https:\/\/doc.qt.io\/qt-5\/\" href=\"https:\/\/doc.qt.io\/qt-5\/qt.html\"\u003eQt\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003edata model that shows the resources that match the specified query. This model should be subclassed to teach it to handle the different resource types that you want to show as the results.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eQueries are defined by the\u003cspan\u003e \u003c\/span\u003e\u003ccode\u003e\u003ca class=\"el\" href=\"https:\/\/api.kde.org\/frameworks\/kactivities-stats\/html\/classKActivities_1_1Stats_1_1Query.html\" title=\"The activities system tracks resources (documents, contacts, etc.) that the user has used...\"\u003eKActivities::Stats::Query\u003c\/a\u003e\u003c\/code\u003e\u003cspan\u003e \u003c\/span\u003eclass using a simple range-like syntax.\u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KActivitiesStats (with tax)","offer_id":31174598557793,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KActivitiesStats (no tax)","offer_id":31174598590561,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_1069c7bd-5732-45d0-8178-46153ab1ad01.png?v=1574871045"},{"product_id":"kbookmarks","title":"KBookmarks","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"contents\"\u003e\n\u003cdiv class=\"textblock\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eLets you access and manipulate bookmarks stored using the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"http:\/\/pyxml.sourceforge.net\/topics\/xbel\/\"\u003eXBEL format\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eKBookmarks – Bookmarks management library\u003c\/h2\u003e\n\u003cp\u003eThe most common use for bookmarks is web browsers, but this can also be useful in any application where local files or URLs can be saved as bookmarks.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"The KDE Community","offers":[{"title":"KBookmarks (with tax)","offer_id":31174614024289,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KBookmarks (no tax)","offer_id":31174614057057,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_bb432930-fdbf-4a56-b19e-ea42d8cabee2.png?v=1574930382"},{"product_id":"kcmutils","title":"KCMUtils","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eProvides various classes to work with KCModules. \u003c\/p\u003e\n\u003ch2\u003eKCMUtils introduction\u003c\/h2\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eUtilities for\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kdelibs4support\/html\/KDELibs4Support.tags:..\/..\/..\/frameworks\/kdelibs4support\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kdelibs4support\/html\/namespaceKDE.html\"\u003eKDE\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eSystem\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kirigami\/html\/Kirigami2.tags:..\/..\/..\/frameworks\/kirigami\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kirigami\/html\/classSettings.html\"\u003eSettings\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003emodules. KCModules can be created with the KConfigWidgets framework.\u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KCMUtils (with tax)","offer_id":31174633455713,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KCMUtils (no tax)","offer_id":31174633488481,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_c230af51-1864-46fe-aa9e-74a60fc14616.png?v=1574933844"},{"product_id":"kconfigwidgets","title":"KConfigWidgets","description":"\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eIt provides easy-to-use classes to create configuration dialogs.\u003c\/p\u003e\n\u003ch2\u003eKConfigWidgets Introduction\u003c\/h2\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eWidgets for configuration dialogs. KConfigWidgets provides a set of widgets that uses\u003cspan\u003e \u003c\/span\u003e\u003ca class=\"elRef\" doxygen=\"\/srv\/sources\/api-workspace\/tempdocs\/apidox-frameworks\/frameworks\/kconfig\/html\/KConfig.tags:..\/..\/..\/frameworks\/kconfig\/html\/\" href=\"https:\/\/api.kde.org\/frameworks\/kconfig\/html\/classKConfig.html\"\u003eKConfig\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eto store their settings.\u003c\/p\u003e","brand":"The KDE Community","offers":[{"title":"KConfigWidgets (with tax)","offer_id":31174646988897,"sku":"","price":0.0,"currency_code":"USD","in_stock":true},{"title":"KConfigWidgets (no tax)","offer_id":31174647021665,"sku":"","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0099\/4220\/4513\/products\/kde-logo-blue-transparent-3000x3000_bce3443e-b6ee-4da3-a579-4a267d7d123e.png?v=1574934324"}],"url":"https:\/\/marketplace.qt.io\/collections\/all-products\/gltf.oembed","provider":"Qt Marketplace","version":"1.0","type":"link"}