564 Commits

Author SHA1 Message Date
David Rosca
526915895b Add autotests for IconItem
Add some tests for IconItem.
Also found one issue in animation when quickly changing source, first frame
will be rendered with wrong icon.

REVIEW: 127103
2016-02-27 21:24:45 +01:00
David Rosca
fca765bc05 ToolTip: Prevent multiple geometry changes while changing contents
Unset mainItem and set it back only after changing of tooltip contents
is completed. This improves behavior of morphingpopups effect (popups
animates from/to incorrect values).

REVIEW: 127118
2016-02-21 15:06:44 +01:00
David Rosca
596fa082dd SvgItem: Don't use Plasma::Theme from rendering thread
Logic is similar to IconItem - rendered image is updated
in updatePolish().

REVIEW: 127115
2016-02-19 18:16:30 +01:00
Kai Uwe Broulik
eccf7cf0b2 [ToolTip] Stop show timer if hideTooltip is called
This prevents the tooltip from showing up if hideTooltip was called
before it was shown.

BUG: 358894

Differential Revision: https://phabricator.kde.org/D959
2016-02-18 21:58:35 +01:00
Aleix Pol
978529d175 Remove unused variable
Reviewed by Marco Martin
2016-02-18 17:03:49 +01:00
David Rosca
1f98734dd3 Disable animation of icons in plasma tooltips
Tooltips are now animated with KWin effect.

REVIEW: 126653
2016-02-17 18:40:14 +01:00
Marco Martin
ce9751cb35 drop animations from tooltips
tooltips are now animated by a KWin effect, don't try
to animate own X11 positions, that's quite dangerous

Change-Id: I08ef2bc23ec1ef7cb7c432ba1bf6d9c5b0a0ab01
2016-02-17 17:16:02 +01:00
Dan Vrátil
525bf2d377 Fix IconItem not loading non-theme icons with name
Commit 5184ac introduced a small regression that caused IconItem
to no longer load non-theme icons with name set, for instance icons
coming from sni-qt, causing sni-qt apps to not show in systray.

BUG: 359388
FIXED-IN: 5.20
REVIEW: 127091
2016-02-16 21:16:01 +01:00
David Rosca
1e196fdfb2 WindowThumbnail: Discard glx pixmap in stopRedirecting()
BUG: 357895
FIXED-IN: 5.20
REVIEW: 127072
2016-02-15 19:05:26 +01:00
David Rosca
83cec13edb IconItem: Add usesPlasmaTheme property
Add usesPlasmaTheme (enabled by default) property to make it possible
to disable using icons from Plasma theme.

REVIEW: 126814
2016-01-20 11:28:56 +01:00
David Rosca
5184ac94c9 IconItem: Try to load QIcon::fromTheme icons as svg
When showing QIcons in IconItem, it would ignore stylesheet colors.
This tries to load QIcons created with QIcon::fromTheme as svg, by using
the icon name returned from QIcon::name.

REVIEW: 126792
CCBUG: 353358
2016-01-19 10:14:49 +01:00
Kai Uwe Broulik
d9719f1037 [Units] Return at least 1ms for durations
Animators do not reliably work with a duration of 0 as can be seen in the linked bug report.

Upstream bug report: QTBUG-39766

BUG: 357532
REVIEW: 126652
2016-01-17 12:59:30 +01:00
Marco Martin
225efd7e71 attached properties have parent, not parentItem
attached properties never, ever are in a scene
even if they are qquickitems it may cause big rendering
problems
2016-01-14 15:12:20 +01:00
Kai Uwe Broulik
bbf295cdfa [PlasmaCore DataModel] Don't reset model when a source is removed
REVIEW: 126687
2016-01-11 18:00:43 +01:00
Marco Martin
5b79da30f0 support simple QObjects too
support ColorScope in Svg as well (that's not a QQuickItem)
2016-01-08 16:11:19 +01:00
Marco Martin
5911ad2920 keep track of the context parents
keep internally a pointer (important that is *not* a smart pointer)
to the item the context has been created for.
on context deletion, remove the copy from the static bookeeping hash
this solves two related crashes: an infinite recursion
and a connection to a deleted object
2016-01-08 13:38:06 +01:00
Marco Martin
e565c5c225 rework ColorScope
Since some time PlasmaCore had the very useful ColorScope class,
which can semi-automatically make children take colors of the
View, Button or Complementary color groups.
Unfortunately it didn't support dynamic reparenting, giving
wrong colors in some cases (see black on black battery on the phone)

even tough is a bit complicated, now by cascading signals down the
children tree, support on the fly apply of the new context upon
reparenting.

also add a manual test case showing text, rectangles and icons
dynamically changing color as they get moved from one scope
to the other

REVIEW:126654
Change-Id: I3d746b73eac55a359c4706fb719b4d5018677fb5
2016-01-07 11:06:40 +01:00
David Rosca
e4ea8d55b7 IconItem: Add animated property
Add property animated, that allows to disable cross-fade animation when
changing icon (enabled by default).

REVIEW: 126637
2016-01-06 20:21:15 +01:00
Kai Uwe Broulik
6353e0e7bf Remove obsolete comments 2016-01-05 18:57:00 +01:00
Kai Uwe Broulik
073e7ec7ae [Unity] Scale Desktop icon size
Given with Qt high-dpi support manually adjusting the icon sizes to fit is mostly
obsolete because applications will do that nowadays - we should do the same.

REVIEW: 126641
2016-01-05 18:40:56 +01:00
Marco Martin
c532ca8ff7 paintedWidth/paintedheight for IconItem
export the actual painted icon size of the icon item
REVIEW:126625

Change-Id: Ifa6667fdb9e3f7ee675b2c36628eae2ea5394a35
2016-01-04 18:20:38 +01:00
Marco Martin
3f56e63e70 use the new KDEPackageAppTemplates ECM module
REVIEW:126557
Change-Id: Ie32644a0641d1f0d5299ba9d1b0053e3f37d2635
2015-12-29 15:41:35 +01:00
Eike Hein
fa0030a9ac Always check both before redirecting. 2015-12-22 20:36:10 +01:00
Eike Hein
c64a94a265 Stop redirecting windows when item is disabled or hidden.
Concretely fixes Task Manager tooltips slowing down app rendering even
after the tooltip is hidden.

REVIEW:126475
BUG:356938
2015-12-22 19:26:15 +01:00
Eike Hein
9dcb6e5d52 Oops. Drop timer member. 2015-12-22 18:42:17 +01:00
Eike Hein
706276d108 Stop relying on timer to schedule pixmap updates.
The timer was used to skip ahead of parsing and to compress prop
updates to handle width/height changes atomically. This achieves
both by moving pixmap load into the polish phase after those are
guaranteed to be done.

This fixes a bunch of flicker all over the place since 150ms is
obviously far beyond the frame time budget on 60 hz, but we can
usually easily fit into one frame on hot caches.
2015-12-22 18:39:53 +01:00
Eike Hein
283ab4a634 Fix element ids for east orientation. 2015-12-22 05:04:01 +01:00
Kai Uwe Broulik
9b48e3d010 [Window Thumbnails] Don't crash if Composite is disabled
We were checking for Composite at compile-time but not at runtime causing a crash
when Composite has explicitly been disable in which case Damage might still be availab.e

REVIEW: 126296
2015-12-13 20:25:20 +01:00
Nick Shaforostoff
c7c2980f14 qstring optimizations
REVIEW: 126148
2015-11-27 20:03:48 +00:00
Kai Uwe Broulik
9ccc6293f7 [IconItem] Don't crash on null KIconLoader theme
REVIEW: 126168
BUG: 355577
FIXED-IN: 5.17
2015-11-25 18:17:57 +01:00
Marco Martin
a9d3d9a81a make event filters static to decrease installed filters on qApp
since seems there are so many event filters installed
on the QApplication installed that may give performanc
 issues, try to use separate, singleton watchers for them
to decrease the amount of eventfilters called

REVIEW:126113
2015-11-20 14:26:16 +01:00
Martin Gräßlin
fae8384845 [declarativeimports/core] Specify HAVE_XCB_COMPOSITE in config-x11.h 2015-11-09 11:11:06 +01:00
Martin Gräßlin
286300ad35 Use newer cmake syntax for XCB dependencies 2015-11-09 11:11:06 +01:00
Martin Gräßlin
e95de33465 [declarativeimports/core] Drop xcb shape dependency as it's unused 2015-11-09 11:11:06 +01:00
Martin Gräßlin
ae4ba8920e [declarative/core] Use BypassWindowManagerHint only on platform X11
BypassWindowManagerHint is a flag which is X11 specific. Because of
that for example QtWayland doesn't create a real window for QWindows
with this flag.

Using such a window will eventually result in a freeze of the whole
application. If one renders with QtQuick to such a window, mesa will
request a frame callback from the compositor. Just the compositor
will never deliver the frame rendered callback as it doesn't know the
window exists in the first place and by that doesn't render it and
will never ever deliver the frame rendered callback.

If now one tries to render another frame, mesa notices that it hasn't
got the frame callback and will block the thread till that happens.
With the setup described: that's until eternity.

See Qt Bug: https://bugreports.qt.io/browse/QTBUG-49272

REVIEW: 125961
2015-11-06 08:51:37 +01:00
Dāvis Mosāns
39f8db95c2 Initialize QFunctionPointer to Q_NULLPTR
REVIEW: 125756
2015-10-22 16:23:51 +03:00
Marco Martin
c1065ccf39 Theme breeze icons when loaded trough IconItem
This makes IconItem try to load global icons from the theme
with Plasma::Svg as well, making it assign the colors from
the stylesheet if the breeze monochrome icons are treated,
that should be scriptable, from some attempts i did the
script seems to convert them correctly, without any
change in rendering.

This will automatically color monochrome breeze icons only
in plasmashell, and more specifically only those that use
IconItem, not QIconItem (iconitem should probably have an
animation-less mode to be able to be used in taskmanager
and stuff)
perhaps in the future we'll be able somehow to hook all
this stuff in QIconEngine to be able to use it in QWidget
applications, but since QIcon does have any idea where it is,
is not usable yet for things like the fullscreen fixed-dark
gwenview view.

Change-Id: I28e5fedabafbe8ed82a9df7614f8e2af18c6a24d
REVIEW:125657
2015-10-20 11:49:20 +02:00
Takahiro Hashimoto
64b951fab3 Make tooltip dialog hidden on the cursor entering the inactive ToolTipArea
REVIEW: 125443
2015-10-02 23:23:14 +09:00
David Rosca
4b4461d76b Don't fade animate icon in plasma tooltips
PlasmaCore.IconItem has a fade animation when changing source.
Clearing the source when tooltip is not visible eliminates the
animation.

REVIEW: 125178
2015-09-14 11:06:00 +02:00
Bhushan Shah
4fcb1c6dc5 Fix documentation of gridUnit
gridUnit doesn't correspond to milimetter but size of capital M

REVIEW: 125099
2015-09-08 12:25:40 +05:30
Kai Uwe Broulik
80940951e0 Make PlasmaCore.Dialog opacity work
CHANGELOG: PlasmaCore.Dialog now has an 'opacity' property

REVIEW: 124408
2015-07-21 22:28:34 +02:00
Marco Martin
13bd6703c0 Merge branch 'mart/singleQmlEngineExperiment'
REVIEW:123736
2015-06-10 09:05:46 -07:00
Dan Vrátil
afd962a15b Fix crash when QGuiApplication::primaryScreen() returns a null pointer
There can be a situation when changing resolution/scaling or some other screen
property that driver/XRandR decides to turn the screen off temporarily, during
which there are no screens and QGuiApplication::primaryScreen returns a null
pointer.

Approved-by: David Edmundson
2015-06-06 16:06:51 +02:00
Martin Klapetek
70cf70be3a Fix typo in ToolTipArea documentation
Change-Id: I6a823b1356099f364d0bd59e3f3a0daa137f1ae7
2015-06-05 14:34:56 +02:00
Marco Martin
cb6b03e907 use QmlObjectSharedEngine for tooltips
Change-Id: I6ddb3bcad870165e24bd7b5cd63505fd31ca46b9
2015-05-11 20:06:28 +02:00
Marco Martin
e37576f8d8 expose repaintNeeded()
also emits marginsChanged when is needed
on the fly theme changes work a bit better now

Change-Id: Icefc4fba9c6a80531edc4b1e0c08b62ea039e244
2015-03-30 13:42:40 +02:00
Kai Uwe Broulik
4985a4fe65 Immediately hide tooltip on ToolTipArea destruction or when it becomes empty
When the tooltip is empty (no text, no subtext, and no mainItem) it will not be shown.
However, when it becomes empty while it is already shown, it stays there as a small
rectangle. This hides the tooltip immediately (so KWin's fadeout animation still has
the proper content rather than the empty tooltip) when the TooltipArea that opened
the tooltip has been destroyed or its content becomes empty.

CHANGELOG: Fixed stray tooltips when temporary owner of tooltip disappeared or became empty

REVIEW: 122939
2015-03-26 15:23:46 +01:00
Marco Martin
3516c04006 device pixel ratio applied before generating svg
Change-Id: I22bc343894716cbbebabd5c0633889890ce1da9e
CCBUG:345155
2015-03-25 12:07:41 +01:00
David Edmundson
fa3cd81597 Initialise bool members of iconitem
Change-Id: I289ab2e2676ea27e1add8b0b4548dd6502cc8adc
2015-03-24 11:50:28 +01:00
David Edmundson
7b355093d0 Initialise members
Not a real issue as initialize() is always called before they're used
but  it's cleaner and fixes a coverity warning.

Change-Id: Ib1168be7f9d72c7d5765850a7f35d524ea279a75
2015-03-24 11:46:03 +01:00