248 Commits

Author SHA1 Message Date
Marco Martin
af0dffd89b don't forward events if not visible anymore
BUG:342444
Change-Id: I58bfd951e4f55d07c8f3327881354a678a7f65ba
2015-01-13 13:18:00 +01:00
Alex Merry
48e9c2f29e Update installation variables. 2015-01-10 17:47:31 +00:00
Kai Uwe Broulik
6f58ddc05d Expose new OnScreenDisplay window type in Dialog
REVIEW: 121301
2015-01-02 12:18:21 +01:00
David Edmundson
0f5e9b1a5d Merge "Set visibility on mainItem to match Dialog" 2014-12-29 15:02:24 +01:00
Marco Martin
a629fe4d8f migrate to KPackage
Plasma::Package internally uses KPackage, being a pure wrapper.
old client code and old packagestructures still work using the wrapper.
old workspace code that is not directly using kpackage continues to work correctly

Change-Id: I05f95e8d05e3b67759973c4009e3753c61b1dcce
2014-12-29 13:56:52 +01:00
David Edmundson
7d545e22f1 Set visibility on mainItem to match Dialog
Otherwise we can have an invisible dialog in which the items think they
are visible.

QtQuick is smart enough to not redraw anything if the window isn't
visible, but a lot of bits of our code check the visibility flag to
enable/disable animations. These animation timers do still trigger when
the window isn't visible which wastes CPU cycles.

We are already meddling with the visibility flag so this shouldn't have
too much impact.

Change-Id: I92b969e60b4fdbe4ff2c70f9cce6e3408482a862
2014-12-28 20:37:04 +01:00
David Edmundson
86e89dd309 Document WallpaperInterface
Change-Id: I25819a1d11fb63d3685a6fa0940e0c2f88e5cfd4
2014-12-21 21:03:51 +01:00
Marco Martin
340a4680bf Different themes between desktop and dialogs
different themes between QtControl themes in applets
and in config dialogs: this allows QtQuickControls
to be freely usable in applets without worrying how they
will integrate

Change-Id: I696bdcbd78eb2e4df708367ac0d70d13c5d6cf12
2014-12-11 12:46:02 +01:00
Weng Xuetian
3093d69fa6 fix typo height -> width
updateMinimumWidth and updateMaximumWidth wrongly set the updated
value to height instead of width.

Change-Id: Ie24ef194d9bf02e53b92aa6802b0fbded68b896d
2014-12-02 10:01:20 -05:00
Marco Martin
fa0a37c705 never hide desktops
Change-Id: I804bc9de57b42c1e299cc20efb636bfab3457464
2014-11-13 11:44:25 +01:00
Marco Martin
8fe43b3c20 Merge "show/hide view when applet asked to be destroyed" 2014-11-04 15:21:41 +01:00
Marco Martin
bb0bd0a4c5 fix build
Change-Id: Ibb1d5a0a5432f8638d33251a8be6b3762f236265
2014-11-03 11:54:26 +01:00
Marco Martin
cb3c53a616 don't forward events if there is no mainItem
reviewed by: "Bhushan Shah" <bhush94@gmail.com>

Change-Id: I73227ee1a8f55bf167e4f41758b95a5558ebbeb3
2014-11-03 11:50:35 +01:00
Marco Martin
280902bbb5 show/hide view when applet asked to be destroyed
Change-Id: Id53300532c2322467188dbb44259f25dc6183a1e
2014-10-31 21:18:52 +01:00
Kai Uwe Broulik
b5f627352e Forward wheel events inside dialog
This makes it also forward wheel events in the same fashion as it does with clicks.

REVIEW: 120908
BUG: 340412
2014-10-30 22:01:15 +01:00
Marco Martin
2b07624173 make sure there is any screen geometry returned
if the heuristic fails (because the topleft of the dialog is offscreen)
use at least our screen()

the screen should be correctly updated now on Qt 5.3+ so should be
more reliable anyways (could be tried to remove the whole Q_FOREACH
at this point)

Change-Id: I29311f4767bde3e02ae7bcb54b400b72a8f190eb
2014-10-24 13:14:27 +02:00
Marco Martin
8d2aa05530 don't mess with cursor pos if mouse outside view
Change-Id: I9dde440b4644c5bddcbe20f6f7458b588d076fdc
2014-10-24 11:51:15 +02:00
Marco Martin
4062a53c9a always have margins in dialogs
always show full margins in dialogs
this is to make things look less cramped with screen and panel edges
since mouse still has to work on screen edges (fitts law)
in that case it forwards mouse events inside the actual content item
so things like menus at the edge of the screen keep working

Change-Id: I4b8a5a5bac92eadbaf7ad5b9b7dc0d5f364888c3
2014-10-21 16:55:38 +02:00
Aleix Pol
7a4998046e Adopt QuickAddons in plasma-framework
Removes the code that was moved to QuickAddons

REVIEW: 120596
2014-10-15 13:22:27 +02:00
Aleix Pol
8df7801d3b Don't crash if the plasmoid wasn't properly loaded
If d->applet->package().isValid(), then d->qmlObject->mainComponent()
is null.
This makes Plasma crash when a faulty plasmoid is loaded.

REVIEW: 120581
2014-10-14 15:45:14 +02:00
Marco Martin
68eadae6c8 never reparent old mainItems
This is not completely correct.
however, when reparenting the mainItem containming window thumbnails
it causes serious graphical artifacts, like the "lost fonts" on
nvidia and fglrx

Change-Id: Id194f5e7863e4ed71792835a9a3cf9c6e4fa70ee
2014-10-08 14:32:52 +02:00
Marco Martin
9796f043b7 Revert "set flags again on QEvent::Expose"
This reverts commit 65ab514a2c34b2ddf3c34a9c8abac92f1e6879d3.
2014-10-08 14:06:10 +02:00
Marco Martin
65ab514a2c set flags again on QEvent::Expose
is the only event we get we know the window will already be visible
to set the flags to have actually any effect

BUG:335572
Change-Id: Id1b69a894295af59a681946df9d14ff7ed316526
2014-10-08 13:57:37 +02:00
Marco Martin
ad03d0bb14 try to restore the original parent if possible
setting a null parent to mainitems seems to screw up with their QQmlContext

the problem can be seen with the taskbar, that after fiddling with tooltips a lot, (like switching between pager and a task) it loses thumbnails and it starts to output on stderr
about ids that aren't accessible anymore.

Change-Id: Ibbb6d270fd2e20b5b6745e228f4010b74d3266c9
2014-10-06 12:33:16 +02:00
Marco Martin
2a582e6b4a make sure the layout timer isn't running
when maintintem changes

Change-Id: I59d1930caf2686e1fa9a1fb0510e15630898d99f
2014-10-03 19:10:31 +02:00
Marco Martin
ab69d1029c guard mainItem of resize
crash--

Change-Id: Ifa08f78573d4eed690c23e93f87d1cf0b3c033ef
2014-10-03 13:51:57 +02:00
Marco Martin
419b344b6d make sure the theme is loaded on item sync
Change-Id: Iea920b208c9e84bc9fb3c6c3c39e4362782f0b5f
2014-10-02 16:17:35 +02:00
Marco Martin
afe0524fa7 queue change of minimum/maximum size
the layout size hints can change all together, in any order possible.
the only way to have a deterministic behavior is to compress them
and do the sync of the size all at once.
also being sure to do a single adjustGeometry (one X call) instead of
separate setWidth/setHeight

a test for the issue is dialog_resizeWithParent.qml

BUG:339478
Change-Id: Ia7c3c55e40ff89971beb734dcd205df05bfba687
2014-09-30 16:34:21 +02:00
David Edmundson
0d209f9d2a Make KWindowSystem a public dependency of plasmaquick
Dialog.h uses netwm_def.h in the header so it should be included by apps
that use plasmaquick implicitly

Change-Id: I55507f552025468dde32e4830a78e34dc35c03af
2014-09-26 16:47:46 +02:00
David Edmundson
62d240b7d6 Only update real visibility when component has finished completion
We only want to toggle our visibility until after all window flags have
been set, as some flags can only be set before the window is shown.

This patch caches and proxies the visibility flag and only update the
real visibility when the component is complete.

Change-Id: I4ce7744dc48afecf35db6679ca0991b7042e45a2
2014-09-26 16:17:33 +02:00
Marco Martin
5b50373b37 if rootObject exists, component is here and ready
Change-Id: I37deb527a04dde9ce458c5aea8e178b3d08b1b46
2014-09-25 18:02:59 +02:00
Marco Martin
a71697e68d the qquickitem con be resized before qml is created
AppletQuickItemPrivate::compactRepresentationCheck() must not be executed before
the qml parse is over and rootObject is here: the creation of the full or compact representation
would go very wrong in that case

Change-Id: Ib72f7d25f570a1ae34ada3330080350384d5c1e8
CCBUG:339329
2014-09-25 17:57:14 +02:00
Marco Martin
18b57ffc29 fix tooltips
use adjustSize in updateMinimumWidth et al.
changing tooltip content updates sizeHints
using setGeometry is immediate, and will kill the animations.
for dialogs other than tooltips there is no change since adjustGeometry
is just setGeometry

Change-Id: I3e6310f12f76e400f2663b8409a2bbc7e7398f39
2014-09-24 14:07:30 +02:00
Marco Martin
e3fd010166 don't update the minimum size when not visible
since when is not visible the dialog doesn't update its size
from the mainItem size, the minimum size should not be
updated as well, or the initial mainitem size will get lost
and the dialog will be initialized to a wrong size

Patch by: Vishesh Handa <vhanda@kde.org>

Change-Id: I272727fb4732474b102de64c9bfdddb7fc3906c8
2014-09-23 17:05:09 +02:00
Marco Martin
60a7419746 fix availableScreenGeometryForPosition()
when we check if a position is in a screen, we need
the whole screen geometry, panels included, otherwise if we pass
a coordinate under a panel, it will think no screen is there

Change-Id: I802a2bec4ae44b583eafdc309934e67b620cc463
2014-09-18 17:35:18 +02:00
Marco Martin
dff792a86b Update the size in two ways
A dialog can be resized for two reasons: the mainItem size changes, or the dialog size changes.

the first can happen programmatically, caused by the Layout, or just by assigning the width.

the second can be caused either programmatically, assigning the size of the dialog or externally by the windowmanager, that is the only one theat in the end has the only final control of the window size

Change-Id: Ifc5c7f683039f83d13a5046c10d6dd0227169542
REVIEW:120235
2014-09-18 17:25:48 +02:00
Marco Martin
6993ecf9f7 Revert "fix enabled borders management"
This reverts commit aaa1a6315ed9c6e249797393fe38b7ad3c1ccb0a.
2014-09-16 17:35:22 +02:00
Marco Martin
aaa1a6315e fix enabled borders management
* never enable all the borders just to take margins, there is fixedMargins for that
* redo ResizeOrigin: Dialog needs to sync from both sides: when the mainItem gets resized, *and* when the window gets resized (syncing mainItem)
* don't crash when there is no Layout: not all mainItems export one
* fix availableScreenGeometryForPosition()

Change-Id: I09370e33a3e8d03675b60f14c6c5754f8491d52c
2014-09-16 16:04:35 +02:00
Vishesh Handa
188df2daad Dialog: Correct typo. '+' should be '-' 2014-09-16 15:45:55 +02:00
Vishesh Handa
6f2c46807e Dialog: updateLayoutParameters after calling syncToMainItemSize
updateLayoutParameters's uses the borders in order to set the max and
minimum size, and therefore syncToMainItemSize should always be called
before it is ever called.

Also added code to not do anything if we are not completely initialized.
2014-09-16 15:26:50 +02:00
Vishesh Handa
18a6a7302b Merge branch 'master' into vhanda/dialogRefactor 2014-09-15 14:50:49 +02:00
David Edmundson
26620812a2 Don't include configmodel in doxygen
Change-Id: I7e4db3c81f4e67deec788932225026fc048fd128
2014-09-13 11:47:00 +02:00
David Edmundson
0b92063aff Add link to appletinterface documentation
Change-Id: I3a0bce2ec7ecc18c2efe9d5759eabd2c11a0acba
2014-09-12 13:53:00 +02:00
David Edmundson
13ddfd71e9 Sync documentation from wiki to dialog
Change-Id: I2c3f623ef3dce33025b3e6a6233a6f3da8dd2691
2014-09-12 13:05:23 +02:00
David Edmundson
98faacc5ef Add example to Dialog
Change-Id: I9adc43344ba13eb95038f1d5bffcef73ab93fa9e
2014-09-12 13:05:23 +02:00
David Edmundson
2c38364322 Add documentation on Applet/Containment Interface
Change-Id: I3dddb4d799fef98eb4370503ac8f1d20c6948b2d
2014-09-12 12:21:47 +02:00
Marco Martin
a54da78ce8 check for plugin validity 2014-09-01 18:17:22 +02:00
Vishesh Handa
012e002092 Dialog: Add accidentally removed Q_PRIVATE_SLOT 2014-08-29 14:35:47 +02:00
Sebastian Kügler
d8b2ef147f typo-- in comment 2014-08-28 23:30:29 +02:00
Vishesh Handa
f293888be6 Dialog: Avoid adjusting the geometry twice when with visualparent
We are in a strange cycle when we have a visual parent. In order to
obtain our position, we need to know our size. Our size depends on the
borders visible. The borders visible depend on the size.

When we do not have a visual parent this is not a problem as we do not
have a position where we are supposed to be.

In order to solve this cycle, when we have a visual parent, we typically
assume we have all borders, call popupPosition, move to that position
and then use that new position to figure out the borders, get the new
size (incase any borders have changed) and move again. This double
moving is not good. With that patch, we still do the same but we avoid
moving twice.
2014-08-28 18:25:03 +02:00