901cc3e159
KConfig->reparseConfiguration is expensive. It throws away our cached values. The Units constructor was calling this every single time. Units is created a _lot_; once per applet and once per FrameSVGItem. This meant we were reloading the same config ~100 times on startup for no reason. Perf showed this as being ~5% of the total startup time. - 7.47% 0.00% plasmashell libKF5ConfigCore.so.5.5.0 [.] KConfig::reparseConfiguration() - KConfig::reparseConfiguration() + 66.51% Units::settingsFileChanged(QString const&) + 25.95% KConfig::KConfig(QString const&, QFlags<KConfig::OpenFlag>, QStandardPaths::StandardLocation) + 3.93% KDesktopFile::KDesktopFile(QString const&) + 3.61% Units::settingsFileChanged(QString const&) Change-Id: Ia70b7001ba473c8063e6c999b8e4233ea5b206f5 |
||
---|---|---|
autotests | ||
docs | ||
examples | ||
src | ||
tests | ||
.reviewboardrc | ||
CMakeLists.txt | ||
COPYING | ||
COPYING.LIB | ||
KF5PlasmaConfig.cmake.in | ||
KF5PlasmaMacros.cmake | ||
metainfo.yaml | ||
README.md |
Plasma Framework
The plasma framework provides the foundations that can be used to build a primary user interface, from graphical to logical components.
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.