Commit Graph

1210 Commits

Author SHA1 Message Date
Michail Vourlakos
71f8f16fea [RTL] - align properly the selected text for RTL
Summary:
--align selected text correctly for
PlasmaComponents2.ComboBox taking into account
RTL.

BUG: 387415

Test Plan:
use ComboBoxes in RTL and LTR in order
to check a proper behavior

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: broulik, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9126
2017-12-05 19:13:40 +02:00
Eike Hein
a570254e1a Don't update when the underlying FrameSvg is repaint-blocked
Summary:
When the component completes `FrameSvg::setRepaintBlocked(false)`
is called, which calls `updateFrameData`, which emits
`repaintNeeded`, which is connected to `doUpdate` anyway.

This saves one `doUpdate` per instanciation. The reason for that
is as follows:
* The concept or repaint blocking is implemented in `FrameSvg`,
  which inherits from `Svg`.
* The `repaintNeeded` signal connected to `doUpdate` is the one
  in `Svg`.
* `Svg` code emits `repaintNeeded` liberally even when repaints
  are blocked, since it doesn't know anything about this.

Hence we check if repaints are blocked in doUpdate and abort,
implementing the QQmlParserStatus interface in the right class.

Reviewers: #plasma, davidedmundson, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9138
2017-12-04 00:12:11 +09:00
Kai Uwe Broulik
ab8915bc12 [FrameSvgItem] Don't create unneccessary nodes
If a border isn't enabled there's no point in creating a node for itIf a border isn't enabled there's no point in creating a node for it.

Differential Revision: https://phabricator.kde.org/D9121
2017-12-03 12:40:31 +01:00
Ben Cooksley
df09180d31 The #warning directive is not universal and in particular is NOT supported by MSVC
Remove the directive to restore compilation on Windows.
Ref D9108

CCMAIL: aleixpol@kde.org
2017-12-03 07:03:09 +13:00
Kai Uwe Broulik
f8e3a16040 [IconItem] Use ItemSceneHasChanged rather than connect on windowChanged
Saves a connection and also only schedule if we actually have a window.

Differential Revision: https://phabricator.kde.org/D9111
2017-12-02 18:13:19 +01:00
Kai Uwe Broulik
da2b6e270f [Icon Item] Explicitly emit overlaysChanged in the setter rather than connecting to it
There's literally just one place where this thing changes so just emit the signal
there and call it a day.

Differential Revision: https://phabricator.kde.org/D9112
2017-12-02 18:13:19 +01:00
Aleix Pol
1f9b5ed657 Performance
Summary:
Remove splitting + joining of a string just to remove the beginning of a
string.
Remove double look-up.
Solves Clazy warnings

Reviewers: #frameworks, #plasma, hein

Reviewed By: #plasma, hein

Subscribers: hein, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9109
2017-12-02 16:22:03 +01:00
Aleix Pol
b8b8a69fd1 Remove implicit string casting
Summary: Follow the KF5 guidelines

Test Plan: Plasma shell starts

Reviewers: #plasma, #frameworks, sebas

Reviewed By: #plasma, sebas

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9108
2017-12-02 15:44:14 +01:00
Aleix Pol
f8047e86b2 Reduce the amount of spurious property changes on ColorScope
Summary:
At the moment whenever something changed we were emitting colorGroupChanged
and then every color would recompute. This would end up being emitted
over 10 times at plasma startup so far.
This patch makes sure that the property will only be emitted if the color
group actually changes.

Test Plan:
Ran plasma, didn't notice issues.
I don't see all of the changes on the property anymore

Reviewers: #plasma, mart, davidedmundson

Reviewed By: #plasma, mart

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8917
2017-12-02 12:45:57 +01:00
Kai Uwe Broulik
9066c232b4 [Icon Item] Emit validChanged only if it actually changed
Differential Revision: https://phabricator.kde.org/D9102
2017-12-02 11:40:02 +01:00
Eike Hein
4779f9564a Suppress unnecessary scroll indicators if the flickable is a ListView with known orientation
Summary:
ListView.atYEnd is notoriously buggy and sometimes will cause indicators
to blink in and out of existence where not needed.

Reviewers: #plasma, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9089
2017-12-01 23:35:19 +09:00
Montel Laurent
5d9aa6816f We depend against 5.7 2017-11-29 21:10:48 +01:00
Kai Uwe Broulik
facaaf93d0 [PlasmaComponents Menu] Set WA_TranslucentBackground on the underlying QMenu
This ensures the menu can have nice round corners with Breeze and Oxygen. The same had already been done in ContainmentInterface's menu.

CHANGELOG: Fixed an issue where PlasmaComponents Menu would appear with broken corners

CCBUG: 381799

Differential Revision: https://phabricator.kde.org/D8965
2017-11-24 10:40:48 +01:00
Aleix Pol
28d9c7146e Remove double lookup 2017-11-20 16:13:46 +01:00
Aleix Pol
3e17a2d0a2 Remove duplicate boilerplate code
Summary: Don't replicate logic present in ::colorGroup for every color() call

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8914
2017-11-20 16:12:41 +01:00
Aleix Pol
aa4aa72d63 Synchronize the component with the one in Kirigami
Summary: Using the height property together with paintedHeight had binding loops.

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: broulik, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8870
2017-11-20 13:07:15 +01:00
Aleix Pol
11c9206bf6 Reduce spurious signal emissions
Summary:
We were reporting that the margins were changing whenever anything changed
in a FrameSvg, this patch makes sure we are only reporting the changes
when it actually changes.
This also fixes a binding loop in Desktop.qml from plasma-desktop.

BUG: 382233

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: broulik, davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8809
2017-11-16 16:18:04 +01:00
Marco Martin
9ea4774050 install Switch stuff 2017-11-13 15:31:03 +01:00
Kai Uwe Broulik
3ebdd64e6b Optimize SortFilterModel role names
* Reserve m_roleIds
* Avoid double lookup contains+value but use default value argument
* Constify

Differential Revision: https://phabricator.kde.org/D8639
2017-11-06 15:17:42 +01:00
Kai Uwe Broulik
d51456bdfc Remove DataModel::roleNameToId
It is unused and returned -1 whereas SortFilterModel would return Qt::DisplayRole

Differential Revision: https://phabricator.kde.org/D8638
2017-11-06 15:17:15 +01:00
Marco Martin
fc653a70a9 manually draw the circle arc
don't use the qqc2 private implementastion as change and will
break with Qt 5.10
2017-10-31 13:45:39 +01:00
Kai Uwe Broulik
c52a6c5748 [PlasmaComponents Menu] Add ungrabMouseHack
Ensures the PlasmaComponents.Menu doesn't confuse MouseArea states.

Differential Revision: https://phabricator.kde.org/D8445
2017-10-25 15:09:49 +02:00
Fabian Vogt
4f43c236e3 Fix org.kde.plasma.calendar with Qt 5.10
Summary:
Module internal types are not implicitly available anymore simply by placing
them inside the module's main directory. It is now necessary to mention them
as internal types in the qmldir file.

See qtdeclarative commits 22a2cc43387ec3b9f74a6c01f8665378a4541147 (introduced
the change) and 930aea8b9ca59a24838cf7f279653e3b2ee40cee (explanation)

Test Plan:
Built whole stack with Qt 5.10. The digital clock plasmoid does not
load due to the DaysCalendar type not being available. With these changes to
qmldir and a reload of the plasmoid it works.

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: broulik, #frameworks, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8077
2017-10-01 23:06:24 +02:00
Kai Uwe Broulik
c1e432065f sceneGraphBackend() is new in Qt 5.9 2017-09-29 10:48:37 +02:00
Kai Uwe Broulik
bb6b170516 [FrameSvgItem] Iterate child nodes properly
Documentation says "Children are stored internally as a linked list, so iterating over the children via the index is suboptimal."

Differential Revision: https://phabricator.kde.org/D8046
2017-09-28 23:05:36 +02:00
Marco Martin
9e7d02cde2 pick up the proper positive/neutral/negative colors 2017-09-28 16:14:33 +02:00
David Edmundson
6df656252b Add new component for the greyed out labels in Item Delegates.
Summary:
Plasma code is full of Label {opacity: 0.6}. We shouldn't be hardcoding
style into a UI, especially with magic numbers.

This adds a new component that does the same thing but will allow
plasmoids to write more semantic code.

Reviewers: #plasma, hein

Reviewed By: #plasma, hein

Subscribers: hein, sebas, broulik, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4831
2017-09-27 15:50:57 +01:00
David Edmundson
daef5c8b6b Fix FrameSVGItem with the software renderer
Summary:
Software rendering (at time of writing Qt5.10) doesn't seem to like our
tiling/stretching in the 9-tiles.
Also when using QPainter it's arguably faster to create and cache
pixmaps of the whole frame, which is what the slow path of FrameSVGItem
does.

Test Plan: Ran FrameSVG test then plasma shell with scene device set

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8013
2017-09-27 15:50:49 +01:00
David Edmundson
94235482f9 Don't animate IconItem in software mode
Summary:
IconItem uses a gorgeous shader to fade between two states. This doesn't
work with software rendering.

Given software rendering is a second class citizen, just skip the
animation.

Test Plan:
Hovered over kickoff.
Went from one to the other, without temporarily disappearing

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8014
2017-09-27 15:50:44 +01:00
Marco Martin
b62118c90c possibility to set an attached colorscope to not inherit
this makes an easy bridging between the plasma and kirigami theming
reviewed-by:Eike Hein
2017-09-19 16:42:08 +02:00
David Edmundson
ee2b12be04 Add extra visual indicator for Checkbox/Radio keyboard focus
Summary:
This draws a line underneath a Plasma checkbox label when it has
keyboard focus. This is needed as when an item is checked, the focus
shadow is practically invisible.

Visuals when clicking is completely unchanged
This brings it more in line with our QStyle.

Test Plan: Attached runtime tests

Reviewers: #plasma, #vdg, mart

Reviewed By: #plasma, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D7819
2017-09-19 13:50:44 +01:00
Kai Uwe Broulik
c707f6074c Remove unused functions
You can just use mapToItem(null, 0, 0)
2017-09-18 15:12:45 +02:00
Kai Uwe Broulik
7482bef085 Pass item to rootObject() since it's now a singleton
The "parent" used to be resolved by the place where the utils.js was imported from.
However, it was changed into a singleton and now this didn't work.

BUG: 384776
2017-09-18 15:11:09 +02:00
David Edmundson
7141ad1721 Don't list tab names twice
Summary:
The name (with a correct role) is already exported as a tab

By having the static text internally we get the name twice when we do a
flat review of the controls.

Reviewers: #plasma

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D7815
2017-09-14 14:50:57 +02:00
Marco Martin
6bb474621e don't accept active focus on tab
this was actually breaking keyboard navigation
see https://bugreports.qt.io/browse/QTBUG-63176
for our use case in pasmashell, it's better to just
rely on focus of the internal items or of the
ListView
reviewed-by: davidedmundson
2017-09-13 13:43:19 +02:00
Marco Martin
48e27b5493 register revision 1 for QQuickItem
make the base properties of revision 1 available
2017-09-13 11:29:04 +02:00
Safa AlFulaij
940adc7e6e [Plasma Components 3] Fix RTL in some widgets.
Summary: Some widgets are missed up in RTL mode, this should fix it.

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: mart, broulik, davidedmundson, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D7715
2017-09-10 10:42:51 +03:00
Kai Uwe Broulik
d574dec0f8 [EventPluginsManager] Expose pluginPath in model
That's what digital clock stores in its config, allows us to do matching.

Differential Revision: https://phabricator.kde.org/D7601
2017-08-31 14:27:43 +02:00
Kai Uwe Broulik
a963302926 [Icon Item] Don't needlessly unset imagePath
We'll eventually delete the Plasma::Svg anyway if we failed to find an appropriate icon.
Just need to make sure we don't use isValid with the old source set but this is only done with
m_usesPlasmaTheme, hence the new check there, also optimizes the non-themed case.

Differential Revision: https://phabricator.kde.org/D7584
2017-08-30 16:39:53 +02:00
Kai Uwe Broulik
a8ce2e85ec [FrameSvgItem] Create margins/fixedMargins object on demand
On my machine I end up creating 490 margins and 490 fixed margin objects.
After this change I only create 171 margin objects and 20 fixed margin objects.

Differential Revision: https://phabricator.kde.org/D7582
2017-08-29 11:10:19 +02:00
Marco Martin
b02c92fe5c fix check state for menu items 2017-08-28 13:15:25 +02:00
David Edmundson
a25b628e25 Install the PlasmaComponents.3/private folder
Summary:
It's used by ToolButton et al.
We install it in the theme folder, but not in the plasma components dir.

Test Plan: Used a toolbutton without error

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6693
2017-08-25 10:26:15 +01:00
Volker Krause
0a8d1f9cd4 Fix compilation on Yocto
Summary:
By default, Qt is built without accessibility there, which is what
would indirectly include the needed QColor with a "normal" Qt build
here.

Reviewers: #frameworks, broulik

Reviewed By: broulik

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D7117
2017-08-03 22:19:29 +02:00
Marco Martin
dcf08486fe add some @deprecated in the documentation 2017-07-28 11:49:23 +02:00
Marco Martin
162431d793 remove resourceinstance
resourceinstance wasn't compiled anymore, never ported to kf5
so is safe to just remove it
2017-07-28 11:37:28 +02:00
Fabian Vogt
48a8245db4 Treat Button/ToolButton labels as plaintext
Summary:
The label text gets treated as RichText/StyledText, which is required
to display mnemonics underlined. Therefore it is necessary to manually
HTML escape the label text, which unfortunately breaks mnemonics as
escaped HTML contains ampersands.
This commit fixes that by introducing a custom function to stylize
mnemonics in HTML escaped text.

Test Plan:
Ran a modified knotificationdbustest with "<h1>&&a&ction</h1>" and
"actio&n2" as actions. Result: http://i.imgur.com/xHifDBu.png

Reviewers: #plasma, broulik

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6679
2017-07-25 16:05:20 +02:00
Kai Uwe Broulik
d8f1d44a49 Declare AppManager.js as pragma library
It doesn't store any state but contains only functions.

Differential Revision: https://phabricator.kde.org/D6676
2017-07-13 14:27:59 +02:00
Kai Uwe Broulik
1d0a0b5cdf [PlasmaComponents] Remove Config.js
It got redundant and since it wasn't declared as "pragma library" an instance
of this script was created for every ListItem, causing quite some memory consumption.

Reviewed-By: notmart
2017-07-13 14:04:05 +02:00
Marco Martin
f5a217cf04 default to plain text for labels
as this control is new, we can change the default.
for sanity purposes, default to plain text
if the user really needs rich text, it can still
be explicitly setted

reviewed-by:kbroulik
2017-07-12 16:49:37 +02:00
Kai Uwe Broulik
21f954d94d [PlasmaComponents Menu] Don't crash on null action
You can assign a QAction as "action", this way you can just pass it e.g. plasmoid.action("configure").
However, when assigning a null action as can happen with kiosk restrictions, it would crash
as it assigns m_action the nullptr but never checks for that.

This patch ensures we always have a QAction, creating a new empty one, if neccessary.
Also deletes our own action if an external one is assigned

Differential Revision: https://phabricator.kde.org/D6608
2017-07-11 12:23:39 +02:00