1550 Commits

Author SHA1 Message Date
Noah Davis
7062c635a9 Fix PC2 ToolButtonStyle margins
Previously, it was trying to use the margins of toolbutton-hover for flat buttons, but toolbutton-hover doesn't have real margins (0.001 since 0 isn't valid).

BUG: #425255
2020-08-13 17:10:35 -04:00
Andreas Cord-Landwehr
d10afb5d2a plasma-framework: Convert copyright statements to SPDX expressions 2020-08-13 19:08:54 +00:00
Nate Graham
b811a9b30b [PlasmaComponents3] very small refactor of ToolButton shadow code
This introduces a bit more consistency to this big `if` chain.
2020-08-12 15:56:10 -06:00
Nate Graham
f389064ca3 [PlasmaComponents3] Fix reversed condition for flat ToolButton shadow
Non-flat ToolButtons are supposed to have a shadow, but flat ToolButtons
are not. The ternary providing this was inverted so that the reverse was
true.
2020-08-12 15:42:34 -06:00
Nate Graham
0fe4fc53ef [PlasmaComponents3] Strip mnemonic ampersands from tooltip text
They're never useful in that context, and this prevents having to strip
them out manually when assigning a tooltip text that comes from a source
that sets a mnemonic ampersand. For example
https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/171#note_79871
2020-08-11 18:24:06 +00:00
David Redondo
3e225d8664 Only draw the focus indicator when we got focus via the keyboard
QQC2 controls gain activeFocus on press this is a difference to controls 1
which had activeFocusOnPress property that defaulted to false. qqc2-desktop-style
also only sets the focus flag if it was gained via keyboard (kquickstyleitem.cpp:705).
BUG:424446
2020-08-11 06:58:19 +00:00
Nate Graham
711789908b Drop implicit minimum sizing from PC2 and PC3 Buttons
For the following reasons:
- It can break and look bad on Plasma Mobile which uses the Plasma style
- It makes buttons with icons and short text look visually unbalanced
- QStyle and QML desktop style buttons do not do this so it's a source
  of inconsistency

Tests are adjusted to all pass. Stuff looks better to my eye.
2020-08-10 18:47:49 +00:00
Carson Black
8ef5347074 Add PC3 equivalent to PC2 ListItem 2020-08-07 17:26:34 +00:00
Nicolas Fella
52f81b4630 [pc3] Make ToolBar more aligned with qqc2-desktop-style one
The qqc2-desktop-style one has an implicit height of 40 plus some other tweaks
2020-08-06 21:25:49 +02:00
Alexander Lohnau
c1fd9b4439 Add timeout property to ToolTipArea 2020-08-02 17:26:59 +00:00
David Redondo
b1345e9d30 Set cpp ownership on the units instance
Fixes common and frequent crashes introduced by 6c627ea044e9e68ccbc9f3ecfc3ae49cb0af0fee.
Otherwise the engine will try to delete it. The docs say:
 NOTE: A QObject singleton type instance returned from a singleton type provider
 is owned by the QML engine unless the object has explicit
 QQmlEngine::CppOwnership flag set.
2020-07-28 13:12:53 +02:00
David Redondo
32fce1e668 Do not unnecessary specify a default capture for singleton registration lambdas
A lambda can only be converted to a function pointer if it does not capture
anything. Just specifying a default capture even if it does not capture anything,
prevents this. In newer Qt this actually ended up calling the std::function
(which is much heavier than function pointers) overload which was introduced
only after Qt 5.12.
2020-07-28 08:58:41 +02:00
Nate Graham
e781341ee0 Add some missing PlasmaCore imports 2020-07-27 13:59:15 -06:00
Carson Black
6c627ea044 Remove usage of context properties for theme and units 2020-07-27 19:54:44 +00:00
Jonah Brüchert
630e5c88e8 PC3: Improve look of the Menu 2020-07-26 11:57:14 +00:00
Nate Graham
c505340e20 Make showTooltip() invokable from QML
It may become necessary for various reasons to want to programmatically
show a tooltip, like how the tooltip can be programmatically hidden.
2020-07-23 14:39:20 +00:00
Nate Graham
b7ee696250 [PlasmaComponents3] Honor icon.[name|source] property
Since a checkbox is a subclass of AbstractButton, it can be given an
icon. QWidgets checkboxes will faithfully display this icon, but
PlasmaComponents3 ones will not. They should. :)

I will submit a similar change for the QQC2 checkbox style
to make them consistent.
2020-07-23 14:38:14 +00:00
Friedrich W. H. Kossebau
f125cb0233 Document why qmlRegisterInterface<Plasma::T>("T) cannot be ported for KF5
GIT_SILENT
2020-07-20 22:19:31 +02:00
Friedrich W. H. Kossebau
efb2f2bb6c Remove QML registration of DataSource as interface, done as type before
GIT_SILENT
2020-07-19 19:58:08 +02:00
Friedrich W. H. Kossebau
8d3f4fccbd Remove broken metatype registration for types missing the "*" in the name
The old code calling
    qRegisterMetaType<Plasma::T *>("T");
was broken, as it registered for the name "T", not the pointer
type "T*". Things still work though as that registration is also
covered due to
    qmlRegisterInterface<Plasma::T>("T");
internally also calling
    qRegisterMetaType<Plasma::T *>("T*");
so that in the end "T*" was registered and mapped to the right type.
2020-07-19 19:58:08 +02:00
Nate Graham
1a2e4023b0 Correct QT Bug URL for font rendering hack
This makes it clear which version of Qt (5.14) Frameworks has to be
able to depend on before we can remove the font rendering hack.
2020-07-14 16:35:28 -06:00
Shantanu Tushar
c0e721429c Don't use hand cursor because it is not consistent
We should use the normal arrow cursor when a list item is hovered.
The hovered state is depicted with a highlight already, so the hand
cursor is unnecessary and doesn't go well with the rest of the desktop.
2020-07-14 20:40:59 +05:30
Nate Graham
cc86759139 [ExpandableListItem] use standard button sizes
The sizes of the context buttons on the list item were being overridden
for no apparent reason. Let's stop doing that so that the button sizes
are consistent with other PC3 button sizes.
2020-07-14 03:55:15 +00:00
Nate Graham
bc4a6d06bc [PlasmaComponents3] Show ToolButton focus effect and omit shadow when flat
Make sure the shadow item--which includes the hover effect, if present--can
be shown when the ToolButton is focused, and also always omit the shadow
when the ToolButton is flat.
2020-07-14 03:50:31 +00:00
Nate Graham
e607c1ae47 Unify height of PC3 buttons, TextFields, and Comboboxes
Now all of them have a base height of units.gridUnit. Combined with
the standard 6px margins it works out to make all of these controls
a uniform 30px tall with the default Noto Sans 10 font. If the font
is changed or the size is increased, even to absurd levels, all of
them scale evenly.
2020-07-13 14:59:59 +00:00
Nate Graham
26fdcbea63 [PlasmaComponents3] Add missing features to TextField
The PC3 version was missing the clear button and show password button,
which the PC2 version has. This should allow us to port more things to
use the PC3 version.
2020-07-11 14:11:32 -06:00
Nate Graham
12dd2589f6 [ExpandableListItem] Fix silly error 2020-07-10 23:05:21 -06:00
Laurent Montel
e45a66139a Use camelcase include. (scripted) 2020-07-08 07:44:43 +02:00
Nate Graham
8a4576a751 [spinbox] Don't use QQC2 items when we should use PlasmaComponents
BUG: 423445
FIXED-IN: 5.72
2020-07-03 04:42:27 +00:00
Friedrich W. H. Kossebau
f96f17c285 Revert "Port away from deprecated qmlRegisterInterface<>() overload"
This changed the name of the types for which the classes where registered
from unnamespaced "Service", "ServiceJob", "DataSource" to the fully
namespaced "Plasma::Service", "Plasma::ServiceJob", "Plasma::DataSource",
so making the old names no longer known to the system and thus breaking
support for any invokable methods which use the unnamespaced type name.

And not only that, qmlRegisterInterface<T>("Name") also registered the
classes' pointer counterparts T* by the name "Name*", so here
"Service*", "ServiceJob*", "DataSource*". While the new again instead
does this with the fully namespaced names "Plasma::Service*",
"Plasma::ServiceJob*", "Plasma::DataSource*", so also breaking support
here.

This reverts commit 7c4f5c5f1ef120df70f1bc7f206d79aecdbcee92.
2020-07-01 20:09:49 +00:00
Friedrich W. H. Kossebau
7c4f5c5f1e Port away from deprecated qmlRegisterInterface<>() overload
GIT_SILENT
2020-06-26 16:20:40 +02:00
Friedrich W. H. Kossebau
94d7efaec2 Port away from deprecated QQmlListProperty<T> constructor
GIT_SILENT
2020-06-26 15:53:04 +02:00
Friedrich W. H. Kossebau
396c643154 Port away from deprecated qmlRegisterType
GIT_SILENT
2020-06-26 15:48:28 +02:00
Friedrich W. H. Kossebau
633eeaafdd Port away from deprecated QDateTime(QDate) constructor
GIT_SILENT
2020-06-26 05:55:29 +02:00
Friedrich W. H. Kossebau
fe73c236db Plasma components: restore lost color control of TabButton label
Accidentally removed in 3de1c2462eda58048170b90277eae983c86edfd7
2020-06-22 15:04:32 +00:00
Nate Graham
e1475e0907 Introduce PlaceholderMessage
This is a clone of the Kirigami component that we can use in Plasma
applets until we arrive at a solution for styling QQC2 items using the
Plasma style (https://phabricator.kde.org/T13256).

See dependent patches:
- plasma-workspace: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/73
- bluedevil: https://invent.kde.org/plasma/bluedevil/-/merge_requests/1
- print-manager: https://invent.kde.org/utilities/print-manager/-/merge_requests/1
- plasma-vault: https://invent.kde.org/plasma/plasma-vault/-/merge_requests/3

Merge request: https://invent.kde.org/frameworks/plasma-framework/-/merge_requests/13
2020-06-19 22:45:19 +00:00
Nate Graham
e6b8499304 [calendar] Reduce month label's size
Level 1 is too large for this, as it's typically used for the entire
window or popup's title. The smaller level 2 is therefore more
appropriate so that when the parent window supplies its own level 1
heading, the calendar month label don't inappropriately be the same size.

Needed for https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/98
2020-06-18 15:30:28 -06:00
Nate Graham
3d73484c32 [ExpandableListItem] Use same logic for action and arrow button visibility 2020-06-17 08:02:42 -06:00
Chris Holland
7005ef0ec8 Fix Kirigami.Units.devicePixelRatio=1.3 when it should be 1.0 at 96dpi
Summary:
I recently noticed that `Kirigami.Units.devicePixelRatio` was `1.3` even though I was at the default 96dpi when writing a widget's config.

{F8287886}

There's 4 different `Units.qml`, and I'm not certain which does what. 2 are in `krigiami` and the other 2 are in `plasma-framework`.

```
$ locate /Units.qml | grep /usr/
/usr/lib/qt/qml/org/kde/kirigami.2/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/Plasma/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml
```

* 2 years ago [`kirigami/src/controls/Units.qml`](https://github.com/KDE/kirigami/blame/master/src/controls/Units.qml#L75) (`/usr/lib/qt/qml/org/kde/kirigami.2/Units.qml`) was changed from `13/10 = 1.3` to multiply by `13*0.75` so that `9.75/10 = 0.975` (then `max(1, 0.975) = 1`).

-----

There's 2 files owned by `plasma-framework`. The `/styles/Plasma/Units.qml` binds PlasmaCore's `units.devicePixelRatio`, so that leaves `/styles/org.kde.desktop.plasma/Units.qml`.

```
$ pacman -Qo /usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml is owned by plasma-framework 5.69.0-2
```

This patch edits the `org.kde.desktop.plasma` style, and fixes `qmlscene KirigamiDevicePixelRatioTest.qml`, and `plasmashell` widget configs, and `plasmoidviewer` widget configs.

The Kirigami patch is D29462

Test Plan:
You can edit `/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml` then run:

* https://gist.github.com/Zren/621338b8cda7c550d7b43f8ea1ba71a7
* `qmlscene KirigamiDevicePixelRatioTest.qml`

and `Kirigami.Units.devicePixelRatio` should equal `1`.

Reviewers: #kirigami, mart

Reviewed By: #kirigami, mart

Subscribers: davidre, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29463
2020-06-09 08:46:15 -06:00
Nate Graham
7f9e189d87 Add property to access the ExpandableListItem loader's item 2020-06-07 08:46:39 -06:00
Nate Graham
df64b09eec Don't unnecessarily and inappropriately attempt to require Qt 5.14
DragHandler is in Qt 5.12, so we can use QtQuick 2.12 instead of 2.14
2020-06-03 10:12:10 -06:00
Jonah Brüchert
773d05d29b PC3: Add separator to toolbar 2020-05-28 23:41:31 +00:00
Marco Martin
50a699f9e3 Merge branch 'mart/headerGroup' 2020-05-25 11:16:52 +02:00
Kai Uwe Broulik
c46a0dbf00 [ToolTip] Make mainText use PlainText as per documentation 2020-05-22 18:01:10 +02:00
Marco Martin
5884df4cfc support the Header color grgoup
Support the new Header color group in KColorScheme by proxying it in
Plasma::Theme and the kirigami styles here
2020-05-21 18:43:38 +02:00
Nate Graham
1636b566bd Implement scroll and drag adjustment of values for SpinBox control
Summary:
Currently adjusting the value by scroll and click/touch+drag are not implemented.
This patch implements them.

Test Plan:
As far as I can tell, the `PlasmaComponents3.Spinbox` is not actually used anywhere in Plasma, so test with D29535:
{F8301480}

Reviewers: #vdg, #plasma, ahiemstra

Reviewed By: ahiemstra

Subscribers: ahiemstra, abetts, ndavis, cblack, kde-frameworks-devel

Tags: #frameworks

Maniphest Tasks: T9460

Differential Revision: https://phabricator.kde.org/D29534
2020-05-20 07:38:15 -06:00
Jonah Brüchert
ea73c6f60d
kirigamiplasmastyle: Add AbstractApplicationHeader implementation 2020-05-18 11:36:22 +02:00
David Edmundson
c215c54ece Avoid potential disconnect of all signals in IconItem
Summary:
m_svgIcon can be null.

disconnect(q, nullptr, nullptr, nullptr); would have pretty catastrophic
consequences as it disconnects everything. Anyone listening for
QObject::destroyed of IconItem for cleanup would no longer get anything.
That could lead to obscure conditions.

ShaderEffectSource watches for the source being destroyed for cleanup
and we have a newly introduced crash with ShaderEffectSource that seems
to come from this patch.

BUG: 421170

Test Plan:
Someone who could reproduce the crash reliably confirms it fixes the
issue

Reviewers: #plasma

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29742
2020-05-14 12:42:58 +01:00
Niccolò Venerandi
1bc004e5c6 Fix rounded borders
Summary: This makes borders of elements using plasmoidHeading rounded again

Test Plan:
After:
{F8289023}

Clearing cache might be needed here.

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, ngraham, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29479
2020-05-06 21:47:10 +02:00
Nate Graham
416f82f8f7 Use small font for ExpandableListItem subtitle
Summary:
We're moving towards using the small font for subtitles in Kirigami BasicListItem (D29432)
so we should probably do the same here since it has the same title + subtitle layout.

Test Plan:
Before: {F8284752}

After: {F8284751}

Reviewers: #plasma, #vdg, broulik, ndavis

Reviewed By: #vdg, ndavis

Subscribers: cblack, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29434
2020-05-06 08:55:45 -06:00