Go to file
Vishesh Handa 7fd87741de Dialog: Simplify handling of min/max width/height changed
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.
2014-08-27 18:16:24 +02:00
autotests tests for isValid and hasValidStructure 2014-08-08 14:12:22 +02:00
docs fix plasmapkg2 manpage 2014-05-05 13:16:05 +02:00
examples bind setAssociatedApplicationUrls 2014-08-07 19:34:57 +02:00
src Dialog: Simplify handling of min/max width/height changed 2014-08-27 18:16:24 +02:00
tests Dialog: Add manual test for repositioning on minWidth/Height change 2014-08-26 19:36:32 +02:00
.reviewboardrc Fix .reviewboardrc syntax 2014-06-02 17:39:23 +01:00
CMakeLists.txt Upgrade ECM and KF5 version requirements for 5.1.0 release. 2014-08-02 08:21:59 +00:00
COPYING Add COPYING and COPYING.LIB files 2013-12-23 18:39:10 +00:00
COPYING.LIB Add COPYING and COPYING.LIB files 2013-12-23 18:39:10 +00:00
KF5PlasmaConfig.cmake.in Fix Plasma_INCLUDE_INSTALL_DIR variable in config module 2014-04-26 12:56:34 +01:00
KF5PlasmaMacros.cmake Don't install dummydata folders with plasma_install_package 2014-06-12 16:42:43 +02:00
metainfo.yaml Add metadata about the QMake and CMake packages installed by this framework and remove Links from README.md 2014-08-13 10:56:51 +02:00
README.md Add metadata about the QMake and CMake packages installed by this framework and remove Links from README.md 2014-08-13 10:56:51 +02:00

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.