747 Commits

Author SHA1 Message Date
David Redondo
b7fa6e0e91 Try to apply the colorscheme of the current theme to QIcons
Summary:
Before icons loaded internally with QIcon::fromTheme were being colored with the
colors from the current global color scheme instead of the ones from the current
Plasma Theme. Leading to visual bugs when the two differ. This happened because
KIconLoader uses the global color scheme by default.
A prominent case is the notification send by the network plasmoid when one
successfully connected to a wireless network. It sets the icon
"network-wireless-on" which is not included in Breeze icons (but is included in
Breeze Plasma Theme). If the current icon theme is indeed Breeze, IconItem
resorts to using QIcon::fromTheme and we end up with a wrong colored
"network-wireless" icon.

BUG: 417780

Test Plan:
{F8125752}

{F8125753}

Reviewers: #plasma, cblack, ngraham, mart

Reviewed By: #plasma, cblack, ngraham, mart

Subscribers: mart, wbauer, cblack, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27589
2020-03-02 11:55:35 +01:00
Marco Martin
1b1dc79dc4 Revert "Make the attached property a simple QObject"
This reverts commit 68a273aef6c1dea1ea74794240121b136db0eb58.

introduced regressions in several places
2020-02-12 12:00:21 +01:00
Nate Graham
9d27675c3b Vertically center tooltip icon/image
Summary:
Right now the widget tooltip's icon/image is top-aligned, which in practice makes it
vertically centered when the tooltip has only one line of text, but not vertically
centered when there are two lines of text.

This patch makes it vertally centered all the time, improving the appearance.

Test Plan:
Before: {F8095695}

After: {F8095696}

{F8095697}

Reviewers: #vdg, #plasma, filipf, ndavis

Reviewed By: #vdg, filipf, ndavis

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27299
2020-02-10 11:17:30 -07:00
Marco Martin
68a273aef6 Make the attached property a simple QObject
Summary:
move all the logic in an attached property QObject
it's a bit less heavy to create so should make things slightly better
when this is used in delegates

Test Plan: Plasmoid background removal (with colors inversion) still works

Reviewers: bshah, #plasma

Subscribers: apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27200
2020-02-10 16:49:55 +01:00
Marco Martin
0c897d8048 tooltips always have normal colorgroup 2020-02-05 12:28:34 +01:00
David Faure
00ddc6c1f0 [plasma-framework] port away from deprecated KF5 APIs
Summary:
KDeclarative::setupBindings() is deprecated, replaced calls with its
implementation (setupContext + static setupEngine call), but see comment
about whether we can be sure this is done only once per engine, as
requested by the setupEngine API. It's 100% equivalent to the old code
though, can't be worse.

KPackage::contentsHash is deprecated, replaced call with implementation.

Depends on D25433 for the KActionCollection::changed signal.

Test Plan: Builds

Reviewers: mart, davidedmundson, broulik, apol

Reviewed By: apol

Subscribers: apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D25434
2019-12-15 00:01:39 +01:00
Aleix Pol
208b94365c Ignore parent scopes that are in the process of being removed
Summary:
When we destroy a colorscope, all children will try to reparent. This patch
makes it so they never pick an object if it's being removed.

Test Plan:
The logout screen greeter and kscreenlocker doesn't crash anymore
upon close.

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D25953
2019-12-13 17:04:55 +01:00
Aleix Pol
e32d28e548 fix warnings, remove unused captured variables 2019-12-12 11:33:48 +01:00
Kai Uwe Broulik
8f7b2c9ae0 [ColorScope] Work with plain QObjects again
Otherwise colorScope doesn't attach to things like Plasma.Svg.
Also remove superfluous cast as parentItem() returns a QQuickItem *.

Differential Revision: https://phabricator.kde.org/D25887
2019-12-11 16:02:11 +01:00
Marco Martin
09e7a5a6bb also monitor window changes
fixes some scopes not finding their parent and
never getting notified when it changes
2019-11-29 13:44:58 +01:00
Marco Martin
57fdb56790 support for user removing background and automatic shadow
Summary:
add the ability for the user to override the background hints anddecide
about applets having background or a shadow
A new handle button will be added to manually enable/disable background for
plasmoids that support it
if they don't, the ImmutableBackground flag is set in the hints.

PlasmaCore.ColorScope has been expanded to work more like Kirigami.Theme (which will be replaced by) even if it's oòld behavior still works. This makes the complementary colorscope in applets with shadow actually work (and at the same time gives a clearer porting path for kf6)

Test Plan: Tested the functionality and correct save/restore

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, ndavis, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D25590
2019-11-29 10:45:08 +01:00
Marco Martin
24702a5353 remove stray qgraphicsview stuff 2019-11-22 16:18:54 +01:00
Yuri Chornoivan
052a81f755 Fix minor issues found by EBN and typos 2019-11-10 12:06:10 +02:00
Marco Martin
1f6d7591e9 map disabledTextColor to ColorScope 2019-10-29 12:30:15 +01:00
Marco Martin
5f46dd6bd5 add DisabledTextColor to Theme 2019-10-29 11:29:12 +01:00
Kai Uwe Broulik
d5a5d07f0f Honor global animation speed factor
Multiplies the animation speed by the given factor.

Differential Revision: https://phabricator.kde.org/D23857
2019-09-25 15:55:17 +02:00
David Faure
b466a2a211 Port away from deprecated methods in Qt 5.14
Test Plan: Builds with -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 (as of today)

Reviewers: davidedmundson, broulik, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D23970
2019-09-16 05:40:34 +02:00
Friedrich W. H. Kossebau
5e09728c1b API dox: use @code/@endcode
GIT_SILENT
2019-09-08 23:33:09 +02:00
Aleix Pol
d3b22f8828 Port trivial connects to the new style 2019-08-30 17:26:54 +02:00
Laurent Montel
f53365633c GIT_SILENT: Use QLatin1String in QString::contains etc. Fix replace
usage
2019-08-29 07:25:48 +02:00
David Edmundson
39d1db6e49 Export SortFilterModel sort column to QML
Test Plan: Used in model

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21419
2019-05-27 08:03:28 +01:00
Friedrich W. H. Kossebau
e99f653113 plasmacore: fix qmldir, ToolTip.qml no longer part of module
Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21350
2019-05-24 15:08:48 +02:00
Friedrich W. H. Kossebau
3b950f38cc Update *.qmltypes to current API of QML modules
Reviewers: #plasma, apol, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21001
2019-05-17 18:38:10 +02:00
Friedrich W. H. Kossebau
1bc1994dfe FrameSvgItem: emit maskChanged also from geometryChanged()
Summary:
Needed e.g. to fix the missing update of the mask on changing the size of
the Plasma panel if only listening to mask changes.

Reviewers: #plasma, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21201
2019-05-14 15:10:27 +02:00
Friedrich W. H. Kossebau
084ba0f886 FrameSvgItem: emit maskChanged always from doUpdate()
Summary:
In that method we can assue a high chance that the mask is also affected.
Instead of adding complicated additional code to track if the mask
really changed, we rely on the cached value from FrameSvg.
This method is not too often called in a Plasma session, so that
further optimization work to avoid unneccesary emits seems not yet
worth it.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21179
2019-05-13 23:47:25 +02:00
Friedrich W. H. Kossebau
0f65c95771 API dox: point to Plasma5 versions on techbase if avail 2019-05-13 01:09:26 +02:00
Friedrich W. H. Kossebau
c8fe7bc5ac IconItem: remove remaining & unused smooth property bits
Summary: fix-up for 18a2ca50ab092e27a3464fca8d515cb7791c7d5a

Reviewers: #plasma, davidedmundson, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D20999
2019-05-04 01:48:12 +02:00
Kai Uwe Broulik
1b2424879a [Window Thumbnail] Also monitor scene visibility and clean up
Just because the item is visible doesn't mean the window itself is. Keep track of the window it's in.
Use itemChange instead of connects and move the check for starting to startRedirect so we don't have to check the conditions
for that in every change handler (visible && enabled && window->visible). It also saves three connects in the constructor.
Also, don't unredirect if we didn't redirect in the first place to avoid warnings printed on console.

BUG: 406303

Differential Revision: https://phabricator.kde.org/D20805
2019-04-25 15:04:20 +02:00
Friedrich W. H. Kossebau
170ff5668f [FrameSvgItem] Update filtering on smooth changes
Summary:
When just the smooth property is changed, this also results in a call of
QQuickItem::updatePaintNode reimplementations. So always just set the
filtering flag to match the current value of the smooth property.

Reviewers: #plasma, broulik, mart

Reviewed By: #plasma, broulik

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D20579
2019-04-18 13:04:17 +02:00
Kai Uwe Broulik
2a636d6671 [FrameSvgItem] Respect smooth property
This ensures the textures are rendered smoothly, especially when rotated.

Differential Revision: https://phabricator.kde.org/D20570
2019-04-15 12:46:12 +02:00
Friedrich W. H. Kossebau
18a2ca50ab SvgItem, IconItem: drop "smooth" property override, update node on change
Summary:
QQuickItem already has a "smooth" property, which was shadowed by the
custom ones with the same name. As the property was not part of public
symbols, but instead is dynamically looked up without the class name part
of the property, we just remove the custom versions and instead switch
all custom code to use the inherited property.

While doing that the code is also fixed to properly update the
textureNodes to the current value of the "smooth" property.
As well as not set the filtering only on the texture, when it is passed
to a texturenode which will set its own filtering state to the texture
right before the bind call and thus wipe any previous direct setting
of the filter mode on the texture.

This also changed the default to smooth=true for SvgItem, though
effectively smooth was always true, as the texturenode was hardcoded
to get a QSGTexture::Linear filtering (which, as said above, is forced
onto its texture, no matter what was otherwise set before).

Reviewers: #plasma, davidedmundson, mart

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D20510
2019-04-15 00:03:28 +02:00
Friedrich W. H. Kossebau
f20722fbe1 FrameSvgItem: add "mask" property
Summary:
This property allows e.g. the Plasma shell to query the shape a panel has
when defining the area for BlurBehind.

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D20202
2019-04-08 15:11:07 +02:00
Friedrich W. H. Kossebau
5f4f88ad66 FrameSvgItem: catch margin changes of FrameSvg also outside own methods
Summary:
FrameSvg updates the margins e.g. on a Theme change already in its
internal event handling before the methods of FrameSvgItem are invoked.
Due to that CheckMarginsChange guards before this change could not detect
any changes, and thus missed to trigger an update via the margin objects
to the QtQuick world.

So when changing the theme e.g. in a Plasma shell or in the Plasma Theme
Explorer, existing FrameSvg items are using outdated margins, resulting
in broken display.

By keeping a copy of the last seen margins as part of the item and not only
per method, changes outside the FrameSvgItem items can be properly detected.

Test Plan:
Switch Plasma themes between Air, Breeze & Oxygen, see how different margins
are reflected in the widgets sizes instantly.
Switch Plasma themes in the Plasma Theme Explorer, with "Show Margins"
enabled, see how margins are always correctly updated intead of taking the
value of the last theme used.

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19743
2019-03-22 11:32:44 +01:00
Friedrich W. H. Kossebau
0ffe183d71 FrameSvgItem: fix textureRect for tiled subitems to not shrink to 0
Summary:
The old logic results in broken rendering if the sample was bigger than the
area to render, due to normalized texture rect being 0 in the respective
dimansion. As well as stretched mapping of the sample for fractional
relationships between the area to render and the sample size.

Test Plan:
Borders of backgrounds of FluffyBunny theme render properly, no other
regressions seen (but unsure what else might rely on that artifact).

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: apol, sitter, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19787
2019-03-20 00:52:13 +01:00
Laurent Montel
ebae2d6303 Remove crash in plasmashell
Summary: remove bug in plasmashell Bug 405341

Test Plan: can't reproduce bug

Reviewers: dfaure, #frameworks, #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19698
2019-03-12 10:18:41 +01:00
Kai Uwe Broulik
017954185c [Icon Item] Also clear image icon when using Plasma Svg
When changing an IconItem from using a local image (e.g. PNG file) to using a Plasma themed icon,
the implicit size wasn't updated since the old image was still loaded in m_imageIcon.
Clearing it when clearing the other icon stores fixes this.

BUG: 405298

Differential Revision: https://phabricator.kde.org/D19674
2019-03-11 13:27:37 +01:00
Laurent Montel
9fc663d9f0 Make it compiles without deprecated method
Summary: compile without deprecated method

Test Plan: all autotest ok

Reviewers: dfaure, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19418
2019-02-28 23:01:43 +01:00
Kai Uwe Broulik
b6a6bb8e17 [Icon Item] Block next animation also based on window visibility
Plasma Dialog used to change the item's visiblity but this is no longer the case, so it would animate when a window is shown and
the source has changed in the meantime.

Differential Revision: https://phabricator.kde.org/D19421
2019-02-28 15:59:13 +01:00
Friedrich W. H. Kossebau
fcfc201c8d Use more https in links (& update a few urls)
GIT_SILENT
2019-01-19 16:36:59 +01:00
Kai Uwe Broulik
eac69e0469 Share Plasma::Theme instances between multiple ColorScope
Especially since the Theme isn't modified in any way but just used to read some data.
While the Private part of Theme is already shared, creating a Theme instance still has some setup cost.

Differential Revision: https://phabricator.kde.org/D18149
2019-01-18 12:24:21 +01:00
Albert Astals Cid
39aa628e17 Remove Qt version check
Now that Qt 5.10 is the minimum required version
2019-01-07 00:35:45 +01:00
Laurent Montel
03fbd3318b Add override 2019-01-03 21:42:30 +01:00
Laurent Montel
e7329b95ed Use isEmpty() 2018-11-30 07:58:34 +01:00
Laurent Montel
7931bdccdd Remove virtual keyword 2018-11-30 07:58:34 +01:00
Kevin Funk
fbfc9bdebb ASAN: Fix memory leak in DataSource
Trace:
Direct leak of 216 byte(s) in 27 object(s) allocated from:
    #0 0x544cc0 in operator new(unsigned long) (/home/kfunk/devel/install/kf5/bin/plasmashell+0x544cc0)
    #1 0x7fb2e9cd77d9 in Plasma::DataSource::setEngine(QString const&) /home/kfunk/devel/src/kf5/plasma-framework/src/declarativeimports/core/datasource.cpp:93:28
    #2 0x7fb2e9d5c8f1 in Plasma::DataSource::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/kfunk/devel/build/kf5/plasma-framework/src/declarativeimports/core/corebindingsplugin_autogen/EWIEGA46WW/moc_datasource.cpp:330:21
2018-11-20 15:15:42 +01:00
Albert Astals Cid
e6f6bf9624 Qt 5.9 is now the minimum required version 2018-11-17 11:24:51 +01:00
José Manuel Santamaría Lema
ed1724c63e Summary:
After this commit
https://cgit.kde.org/plasma-framework.git/commit/?id=9f08668147d2e99f8b5069ff50d5c54e672a87af
the iconitemtest started to fail, the reason was just a typo in the initial
"if" so it does exactly the same in the "if" and the "else" part. So let's
correct it to do what it is suposed to do.

Test Plan: Ran test

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D16733
2018-11-08 16:23:20 +01:00
Yuri Chornoivan
72ca2f79e0 Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
Marco Martin
9f08668147 Add missing component: RoundButton 2018-09-19 15:48:27 +02:00
Yuri Chornoivan
38431eebfa Fix minor typos 2018-09-05 22:22:38 +03:00