Friedrich W. H. Kossebau
9f48b41507
Fix unsetting associated application/urls for Plasma::Applets
Summary: Avoids a crash and a bogus menu entry. Current code does not properly handle any resetting, which results in Applet::hasValidAssociatedApplication() still returning true when urls have been set to an empty list and the application name to an empty string. Also are connections to the "destroyed" signal collected on repeated set calls. This patch fixes that. This fixes "Run the Associated Application" menu entry showing up with widgets. It also prevents the crash in associatedapplicationmanager.cpp:76, which assumes url lists to be non-empty: const QString mimeType = mimeDb.mimeTypeForUrl(i.value().first()).name(); Not happy yet with the signal/slot connection management, improvement proposals welcome. Reviewers: mart Reviewed By: mart Subscribers: plasma-devel Projects: #plasma Differential Revision: https://phabricator.kde.org/D1372
Plasma Framework
Foundational libraries, components, and tools of the Plasma workspaces
Introduction
The plasma framework provides the following:
- QML components
- A C++ library: libplasma
- Script engines
QML components
org.kde.plasma.core
Bindings for libplasma functionality, such as DataEngine and FrameSvg, see @ref core.
org.kde.plasma.components
Graphical components for common items such as buttons, lineedits, tabbars and so on. Compatible subset of the MeeGo components used on the N9, see @ref plasmacomponents.
org.kde.plasma.extras
Extra graphical components that extend org.kde.plasma.components but are not in the standard api, see @ref plasmaextracomponents.
org.kde.plasma.plasmoid
Attached properties for manipulating the current applet or containment, see @ref libplasmaquick
libplasma
This C++ library provides:
- rendering of SVG themes
- loading of files from a certain filesystem structure: packages
- data access through data engines
- loading of the plugin structure of the workspace: containments and applets
See @ref libplasma.
Script engines
Provides support to create applets or containments in various scripting languages.
Description
Languages
C++
63.9%
QML
29.4%
CMake
3.3%
Shell
1.3%
Python
1%
Other
1%