1550 Commits

Author SHA1 Message Date
Carson Black
68d5995c63 Add smallFont to Kirigami plasma style
Test Plan: {F8283833}

Reviewers: #kirigami, mart

Reviewed By: #kirigami, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29412
2020-05-04 10:35:18 -04:00
Filip Fila
1b1018e687 [Plasmoid Heading] Draw the heading only when there is an SVG in the theme
Summary:
We're the only theme with the appropriate heading svgs that make the headers and footers look as they should.

All the other themes fall back to Breeze, which is not a good look for some of them:
- the heading is too jarring compared to applet background
- the heading does not extend all the way vertically and horizontally

To solve this, to avoid degrading unmaintained themes and to give themes a chance to adjust on their own terms, this patch makes the heading visible only when the needed SVG exists in the theme.

Test Plan:
Avoids this:
{F8276897}

{F8276896}

Breeze still works as it should.

Reviewers: #vdg, #plasma, niccolove, ngraham

Reviewed By: #vdg, niccolove, ngraham

Subscribers: ngraham, niccolove, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29352
2020-05-03 18:25:39 +02:00
Konrad Materka
4b0d4c4bda [PlasmaCore.IconItem] Regression: fix crash on source change
Summary:
When SvgSource is changed, old one is deleted. Connections are not automatically disconnected.
This change disconnects connections and fixes regression introduced in D28470.

BUG: 420801
FIXED-IN: 5.70

Test Plan:
STEPS TO REPRODUCE
1. click on mute button for a device
2. click on the desktop to collapse the applet
OBSERVED RESULT
crash in step 1 and in the rare case it doesn't crash it crash in step 2
EXPECTED RESULT
don't crash

Reviewers: #plasma, #frameworks, ngraham, davidedmundson

Reviewed By: ngraham

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29314
2020-04-30 22:27:32 +02:00
Konrad Materka
5a3fb570fe [PlasmaCore.IconItem] Refactor source handling for different types
Summary: There are 3 possible strategies: QIcon, QImage and SVG. This change moves logic of each of these strategies into separate class.

Test Plan: Should behave exactly the same

Reviewers: #plasma, broulik, apol, davidedmundson, #frameworks

Reviewed By: #plasma, davidedmundson

Subscribers: mart, davidre, cblack, kde-frameworks-devel, #plasma

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28470
2020-04-24 14:49:21 +02:00
Aleix Pol
25ce2b90da Prefer QIcon::pixmap(QWindow*, ...) overload
Summary:
It takes into account the dpi of the screen we're rendering to.
Other overloads assume the window is nullptr and will use the primary screen's dpi which can change almost randomly.

Test Plan: Icons still look fine even if I drag windows from a screen to another.

Reviewers: #plasma, #frameworks, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, ngraham, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29102
2020-04-23 02:11:44 +02:00
Nate Graham
77be3197e2 Make applet tooltip text spacing consistent 2020-04-18 20:36:54 -06:00
Nate Graham
52c0a136f9 [ExpandableListItem] make it touch-friendly
Summary:
Right now ExpandableListItem is not very touch-friendly due to use of a mousearea
hover effect for choosing the selected item. This patch fixes that by using a `TapHandler`
to handle left-clicks and  touch input. We still need a MouseArea inside it to handle
non-touch hover and right-click behaviors.

FEATURE: 393749
FIXED-IN: 5.70

Test Plan: Click behavior is identical to how it was before, but now touch works too: {F8234452}

Reviewers: #plasma, apol, #vdg, niccolove

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28808
2020-04-17 23:45:29 -06:00
Laurent Montel
48f60533b9 [plasma-framework] make it compiles without foreach
Summary: compile without foreach

Test Plan: autotest ok

Reviewers: dfaure, apol

Reviewed By: dfaure, apol

Subscribers: ahmadsamir, nicolasfella, broulik, apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19913
2020-04-17 06:47:04 +02:00
Nate Graham
359ac6bcc0 [ExpandableListItem] Use more semantically correct expand and collapse icons 2020-04-13 14:34:33 -06:00
Nate Graham
3743e9d674 Fix PC3 BusyIndicator binding loop
Summary:
Without this, the Busy Indicator generates binding loops for me when used in the new
ExpandableListItem component.

Test Plan: No more binding loops in console logging

Reviewers: #plasma, davidedmundson, broulik

Reviewed By: #plasma, broulik

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28787
2020-04-13 07:46:17 -06:00
Nate Graham
700f90538f [ExpandableListItem] Add new showDefaultActionButtonWhenBusy option 2020-04-12 22:35:38 -06:00
Niccolò Venerandi
0f9abc2d40 Remove rounded borders to plasmoidHeading
Summary: Neither the merged look nor the normal one needs to have rounded borders, as they are clipped out from the dialog and they would break third party themes without rounding. Without rounded borders, there's no need for the enabledBorders check, which also broke the heading when used in top panels.

Reviewers: #plasma, ngraham

Reviewed By: ngraham

Subscribers: manueljlin, ahiemstra, ndavis, ngraham, mart, davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28372
2020-04-11 23:49:29 +02:00
Nate Graham
d6f3a52d83 [ExpandableListItem] Add itemCollapsed signal and don't emit itemExpanded when collapsed 2020-04-06 12:55:23 -06:00
Nate Graham
7aaee715af Revert "Remove the panel tooltip icon"
This reverts commit 863ec93adec605241a1b1f3701054216790c5cc2.

This wasn't the right way to remove the icon for all panel widget
tooltips. See extended discussion in D27848.
2020-04-06 11:11:44 -06:00
David Edmundson
0051a4f919 Add readmes clarifying state of plasma component versions
Test Plan: N/A

Reviewers: #plasma, apol

Reviewed By: apol

Subscribers: romangg, apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28620
2020-04-06 14:47:01 +01:00
Nate Graham
96d203b4b8 Fix i18nd test by removing commented-out i18n() calls in API docs 2020-04-05 18:21:21 -06:00
Nate Graham
863ec93ade Remove the panel tooltip icon
Summary:
As discussed in T12778, the icon can never be in a correct state: either it's
redundant with the icon you're hovering over that made the tooltip appear, or
else it's different from the icon you're hovering over, which is inconsistent.

Since either case is undesirable, let's just remove the icon from the tooltip
entirely. This reduces the visual noise in the tooltip and solves the entire
class of bugs automatically.

Test Plan:
{F8150019}
{F8150017}
{F8150021}

Reviewers: #vdg, #plasma, cblack, niccolove, apol

Reviewed By: #vdg, cblack, niccolove, apol

Subscribers: cblack, kde-frameworks-devel

Tags: #frameworks

Maniphest Tasks: T12778

Differential Revision: https://phabricator.kde.org/D27848
2020-04-04 20:54:45 -06:00
Nate Graham
3bd31386ab Create ExpandableListItem
Summary:
This patch creates the `ExpandableListItem`, a re-usable PlasmaExtras item that can
be used for the views in various Plasma applet pop-ups, such as Vaults, Printers,
Bluetooth, Networks, and Device Notifier. This way those applets can share more code and
not have to implement this paradigm themselves in five different ways, as they currently
do.

All of these applets currently use slightly different visual styles. For example the
network applet uses a pushbutton with no icon as its "default action" button, while
other applets use icons-only toolbuttons. I tried my best to create a component that's
flexible but also consistent, so various applets that adopt it will see minor visual
changes as a result. Hopefully this is acceptable.

Closes T12812

Depends on D28144

Test Plan: {F8183650}

Reviewers: #vdg, #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: mart, davidedmundson, bruns, niccolove, cblack, davidre, kde-frameworks-devel

Tags: #frameworks

Maniphest Tasks: T12812

Differential Revision: https://phabricator.kde.org/D28033
2020-04-04 20:52:53 -06:00
Nate Graham
0739113a44 Make animation durations consistent with Kirigami values
Summary:
Right now longDuration is 120ms and shortDuration is 24ms. This presents three problems:
- The durations are far too fast, especially shortDuration, which is so fast that it seems like there is no animation at all.
- The durations are not consistent with Kirigami, which uses 150 for short and 250 for
 long.
- There is no longer value available, as with the one being added to Kirigami in D28143.

Accordingly, this patch makes the short and long values consistent with Kirigami's values,
and adds a new `veryLongDuration` value to match the one being added to Kirigami in D28143.

Reviewers: #plasma, davidedmundson, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28144
2020-04-04 20:42:35 -06:00
Niccolò Venerandi
8b5e093141 Added Page element
Summary: Page element was missing. I added it.

Reviewers: #plasma, ngraham, mart

Reviewed By: #plasma, ngraham, mart

Subscribers: ngraham, davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28466
2020-04-03 17:14:13 +02:00
Nicolas Fella
bc3ccd1782 [pc3/busyindicator] Hide when not running
Summary: When not running the indicator should be invisible. This matches the behaviour of the org.kde.desktop style.

Test Plan: Run KTrip with Plasma style. Open location search page. Indicator is only shown when actually loading things

Reviewers: #plasma, ngraham

Reviewed By: ngraham

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28391
2020-03-29 23:37:59 +02:00
Nate Graham
e2a13e9ac7 Revert "Make animation durations consistent with Kirigami values"
This reverts commit 049978008b1268a1f46bde99ad260002fee7fd56.

This commit changes existing animation durations, and must be landed
simultaneously with Plasma 5.19's release so that rolling release
users don't suffer from very slow animations for a month. Will
re-land after Plasma 5.59 is tagged so it gets released with Frameworks
5.60, the dependency version for Plasma 5.19.
2020-03-24 08:36:30 -06:00
Nate Graham
049978008b Make animation durations consistent with Kirigami values
Summary:
Right now longDuration is 120ms and shortDuration is 24ms. This presents three problems:
- The durations are far too fast, especially shortDuration, which is so fast that it seems like there is no animation at all.
- The durations are not consistent with Kirigami, which uses 150 for short and 250 for
 long.
- There is no longer value available, as with the one being added to Kirigami in D28143.

Accordingly, this patch makes the short and long values consistent with Kirigami's values,
and adds a new `veryLongDuration` value to match the one being added to Kirigami in D28143.

Reviewers: #plasma, davidedmundson, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D28144
2020-03-20 09:43:45 -06:00
Niccolò Venerandi
7d80f01c31 WIP: Create a new TopArea element using widgets/toparea svg
Summary:
This creates a new component that uses the widgets/toparea svg. First time I try to add something to PlasmaComponents, so I probably got stuff wrong and I probably have to still do thing like adding documentation. I'm creating the diff to get feedback on how to move forward with this.

Depends on D27444

Reviewers: mart, ngraham

Reviewed By: mart, ngraham

Subscribers: ngraham, davidedmundson, ahiemstra, kde-frameworks-devel

Tags: #frameworks

Maniphest Tasks: T10470

Differential Revision: https://phabricator.kde.org/D27695
2020-03-14 19:46:48 +01:00
Marco Martin
6f34838f97 make highlighted property work for roundbutton 2020-03-12 10:09:04 +01:00
Marco Martin
0b89e7f3f0 Buttons: allow to scale up icons
Summary:
always scale icons unless a size is specified in the api.
this makes icon sizing more in line with plasma components 2

Test Plan:
{F8129062}

{F8129064}

{F8129065}

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, ngraham, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27628
2020-03-02 14:42:15 +01:00
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
George Vogiatzis
10c112fccd [PlasmaComponents]Clean up ListItem code
Summary:
Removed two unused lines.
Removed old comments.
Minor style changes to comments.

Test Plan: Everything must stay unchanged visually and function wise for ListItems.

Reviewers: #plasma, ngraham

Reviewed By: ngraham

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27296
2020-02-25 21:00:02 +02:00
Nate Graham
6b8f114284 Port away from Title and towards level 1 Heading
Summary: `Title` is deprecated.

Test Plan: No visual changes anywhere; level 1 Heading is identical in appearance

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27350
2020-02-21 08:39:25 -07:00
Marco Martin
ba0b637de9 fix layout size hints for button labels
Summary:
icon sizes and label placements tested correct in  several scenarios

* control.icon.width/height is used as maximum size of the icon
* if the button is smaller icons always scale down
* icons stay ccentered regardless of button size when there is no text

Test Plan:
fixes icon sizes without workarounds like D27260
{F8108705}

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27460
2020-02-19 12:12:41 +01:00
Laurent Montel
9f02cf685a Use no deprecated qprocess api 2020-02-17 16:44:25 +01:00
Marco Martin
667dce502a make sure the size hints are integer and even
Summary:
for retrocompatibility with pc2 units.gridUnit * 1.6 is used
a lot as size hint (we have to guarantee buttons and
textfields have the same height by default for perfect
horizontal alignment.
tough we have make sure that size is integer and even otherwise
we'll have a lot of internal misalignments

Reviewers: broulik

Reviewed By: broulik

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27399
2020-02-14 13:55:21 +01:00
Marco Martin
3de1c2462e support icon.width/height
Summary:
support the icon size hint of the control. Reinstate it in ToolButton
and add the support for the other controls
CCBUG:417514

Test Plan:
possible to control buttons icon sizes
mediacontroller taskbar tooltip with icons set to small:
{F8103363}

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D27396
2020-02-14 12:37:42 +01:00
Marco Martin
97d431270d remove broken references 2020-02-12 18:14:23 +01:00
Marco Martin
655cc40db8 fix TabButton 2020-02-12 17:10:40 +01:00
Nate Graham
a9ea008b8d Slightly reduce level 1 heading size
To match the change agreed to in https://phabricator.kde.org/D27198
2020-02-12 08:04:53 -07: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
2b78afd921 support display property for Buttons
tested on buttons, toolbuttons and tabbuttons
2020-02-10 18:42:11 +01:00
Marco Martin
014c3fd104 revert unrelated changes in previous commit
Button and ToolButton were't supposed to be touched by previous commit
2020-02-10 17:00:36 +01: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
Noah Davis
ad625f68f3 Fix the size and pixel alignment of checkboxes and radiobuttons
Summary:
The checkboxes and radio buttons in plasmashell were signficantly different from checkboxes and radio buttons in the Breeze QStyle. This patch is needed to make D26271 look nicer.
- Plasmashell checkboxes and radio buttons were much larger.
-- 24x24 for checkboxes and 29x29 for radio buttons (Plasmashell) vs 16x16 (QStyle).
- Pixel alignment was very poor.
-- Checkbox indicator was 14x14, stretched to 24x24.
-- Radio button background was 22x22 or 32x32, adjusted to 29x29.
-- Radio button indicator was 16x16, stretched to 29x29.
- Style was different.
-- Checkbox indicators had sharper corners and less margin around the inner rectangle.
-- Radio buttons had a hardcoded dark gray circular frame and a shadow on the bottom of the inside of the frame.
-- Radio button indicators had less margin around the inner circle.

Test Plan:
{F7891476}

{F7891477}

Reviewers: #plasma, #vdg, ngraham

Reviewed By: #vdg, ngraham

Subscribers: ngraham, davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D26758
2020-01-28 01:31:07 -05:00
Marco Martin
02e57319f7 Same behavior for scrollbar as the desktop style
Summary:
bigger scrollbar and add a small line separator
to look consistent with D26655 and D26654

same behavior for mobile scrollbar

Test Plan: {F7882876}

Reviewers: #plasma, #vdg, ngraham

Reviewed By: #vdg, ngraham

Subscribers: davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D26664
2020-01-15 16:58:59 +01:00
Marco Martin
1d6870b156 Consistency: colored selected buttons
Summary:
color selected buttons to the highlight color when it has keyboard
focus.
This makes the behavior much more similar to the Breeze desktop style

Test Plan:
selected buttons look blue on Breeze, old themes still work as they did
Before
{F7872340}
After
{F7872341}

QWidget
{F7872344}

Reviewers: #plasma, #vdg, #goal_consistency, ngraham

Reviewed By: #vdg, ngraham

Subscribers: davidedmundson, ngraham, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D26540
2020-01-09 17:32:23 +01:00
Kai Uwe Broulik
886fd953fd [ToolTip] Round position
Otherwise screws up font rendering
2020-01-03 19:36:10 +01:00
Aleix Pol
66122410a1 Enable wheel events on Slider {}
Summary:
So far PC3 version of the slider doesn't react to events, this change
enables it.

Test Plan: Used it with a test.

Reviewers: #plasma, broulik, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D26055
2019-12-30 18:49:56 +01:00
David Edmundson
6756d00fba [calendar] Check out of bounds array access in QLocale lookup
Summary:
If we have a broken locale setup we don't have any uiLanugages to look
up the relevant locale object for.

In that case use the system locale.

Test Plan:
Had a crash here

#11 0x00007ff982aab0b2 in QList<QString>::at(int) const (this=0x7ffd50b1d928, i=0) at /opt/qt5/include/QtCore/qlist.h:571
#12 0x00007ff982aaaa4a in Calendar::monthName() const (this=0x5640cce026f0) at /home/david/projects/kde5/src/frameworks/plasma-framework/src/declarativeimports/calendar/calendar.cpp:202
#13 0x00007ff982aa14e9 in Calendar::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5640cce026f0, _c=QMetaObject::ReadProperty, _id=9, _a=0x7ffd50b1dd40) at src/declarativeimports/calendar/calendarplugin_autogen/EWIEGA46WW/moc_calendar.cpp:340

Reviewers: #plasma, vkrause

Reviewed By: vkrause

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D25960
2019-12-18 12:52:15 +00:00
Luigi Toscano
991ecb5ed6 Update the obsolete projects.kde.org URL
Use the generic redirect commits.kde.org.

Change discussed on the kde-frameworks-devel list:
https://mail.kde.org/pipermail/kde-frameworks-devel/2019-November/097564.html
2019-12-15 23:55:27 +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