7fd87741de
When the minimumWidth/Height of the attached Layout of the mainItem would change. The following events would happen - - updateMinimumWidth is called --> results in resizeEvent being called --> results in syncMainItemToSize --> results in slots connected to mainItem widthChanged ---> syncMainItemToSize + syncToMainItemSize being called a few more times. It's not entirely apparent why at thist point. This kind of logic is quite hard to follow and more importantly because of the timers in the middle, an extra paint event is called. This means the user can first see the window resize and then the item getting resized. This patch introduces a little bit of code duplication (can be fixed in future commits) to clearly establish what updateMinimumWidth should be doing - * disconnect signals to make sure mainItem's widthChange is not triggered * update window size + item size + borders * reposition if required The repositioning is useful as currently if a dialog becomes wider if will not reposition itself and will overflow. With this patch we always make sure the entire dialog is shown. Minor Point: On testing without the patch the dialog does reposition itself if it is not already overflowing. I suspect this is kwin moving the window. A test called dialog_minWidthHeighRepositioning.qml can be used to see how the change occurs before and after. |
||
---|---|---|
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:
- A C++ library: libplasma
- Script engines
- QML components
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.
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.