Avoid using KPluginInfo and KPluginTrader in favor of KPluginMetaData
and KPluginLoader.
Add new method that uses KPluginMetaData
Deprecate old KPluginInfo-based methods.
See also https://phabricator.kde.org/T13889
plasmoids can use it as a standard heading with a config button and a
menu with all actions. this heading would be visible only when
plasmoids are not in the systemtray which has an header that replaces it
Hover buttons suffer from discoverability problems and can't be used on
touch, and this component is explicitly trying to be touch-friendly. So
let's make the buttons always be visible, not just on hover.
To avoid the appearance becoming too heavy, the Buttons are turned
into ToolButtons.
BUG: 428624
FIXED-IN: 5.76
The implicit sizing was set strangely, with implicitHeight not being set, and implicitWidth not following QQC2 conventions. Content height was also being set for some reason.
This MR locks the header colours of Breeze Dark and Breeze Light, for
Plasma 5.21/master, to the colours for the titlebars and window colours
that they currently use in 5.20 (from their respective colour schemes),
so that the locked appearance is consistent with how the background of
these Plasma Styles is already locked, as well as fixing an issue with
the header looking wrong on light colour schemes + Breeze Dark and
vice-versa. Breeze itself will still colour just as completely as usual,
though.
BUG: 427864
FIXED-IN: 5.76
There's no need to redefine contentWidth and contentHeight. For controls based on QQC2 Pane, content size is implicit size if not 0, else the implicit size of the top level child item if there is only one.
After "BusyIndicator: Do not rotate when invisible", plasmashell started
consuming 100% CPU due to plasma-nm's icon having an invisible BusyIndicator.
Adding the "visible" property back into the equation avoids this.
Third time's the charm?
My last patch triggered me to run clazy on the project. This patch
solves some of them:
- Proper iteration of some types, saving their copy.
- compile-time connects
- prefer using connects with the 3rd argument as an object when using
lambdas.
add the missing MenuSeparator component
support for radio buttons
like the desktop style, put icons and checkboxes in two separate columns, making them
all aligned to each other when there is a combination of neither, only icon, only checkbox, both
We are dividing by two and additionally availableHeight can be fractional
(observed when running kirigami gallery with plasma style for example). Round
the resulting values to avoid blurry rendering due to fractional positioning.
Otherwise it can be difficult to see, especially with dark backgrounds.
Also, let's set the opacity directly rather than using the enabled
property to approximate it.
BUG: 427171
FIXED-IN: 5.76
See QQuickComboBoxPrivate::updateEditText()
https://github.com/qt/qtquickcontrols2/blob/dev/src/quicktemplates2/qquickcombobox.cpp#L426
By removing the MouseArea previously in the contentItem, we lose the
ability to press+hold+drag to select a drop down item.
The wheel events still work, as they are captured by the MouseArea in
the background component.
The combobox previously closed the popup when releasing the click to
open the dropdown when editable=true.
BUG: 424076
We were passing the enum as the first argument, which was being
converted to 0 and would set lastModified to 0. This would in turn
result in the cache being bypassed because now `findInCache with a
lastModified timestamp of 0 is deprecated` taking the slow path on most
occasions.
BUG: 400278
FIXED-IN: 5.76
Now the plasmoids are toggled by default. The system tray is a
special case, which needs to be in plasma-workspace adjusted.
For some currently unknown reason the color property does not have
the binding as set in PC3's Label.
So explicitly setting it, like also done for CheckBox, Switch, RadioButton
This was causing it to not show up for people using the Breeze Dark
Plasma theme (but not the default Plasma theme with a dark color scheme)
BUG: 426537
FIXED-IN: 5.75
CCMAIL: vonreth@kde.org
Without this, the tooltips are light when using a light theme. This is
contrary to other tooltips, which are always dark no matter which
coloration of theme you're using.
BUG: 424506
FIXED-IN: 5.75
This brings applets with distinct heading areas into visual consistency
with windows, once the Tools Area MR lands.
When using a color scheme that lacks Header colors, there is no visual
change whatsoever.
This makes the highlight movement feel more responsive in Kickoff.
Unfortunately, the same cannot be done for the PC3 TabBar since it uses
a ListView with a highlight. The easing type for the highlight movement
animation cannot be customized.
MR: frameworks/plasma-framework!91
This, I suspect, is the true source of bug 426674. FrameSvg would
request items from the cache without specifying any modification time
stamp, so we end up always retrieving the cached version. Since
lastModified is now a required parameter, we need to ensure this does
not happen anymore.
BUG: 426674
Not tracking modification time of icon/themed stuff means we do not know
when we need to reject the cached versions of these. So ensure we try to
keep track of the svg that this is coming from, even if we do stuff to
it in the meantime.
Longer term this should be changed so the cache knows which files it is
caching and can reject things that changed in the meantime.
lastModified is used to track whether a file is outdated. Having a 0
here means we (in the old code) use the cached version. This causes
problems when the on-disk file has changed, as we have no way of
informing callers that they should regenerate the cache entry. To avoid
this, using a lastModified of 0 now warns and will always return false
(to indicate it is not cached). Unfortunately we can't simply drop the
default parameter of 0 since there is no source-compatible way of doing
that.
CCBUG: 426674
glXGetCurrentContext checks if any GLContext exists and is current.
resolveGLXFunctions uses window->openglContext()
One can hit a situation that you are using software rendering for the
window, yet someone else has created a GL Context. This then crashes.
It never held the width of an 'M', it held the height of a boundingRect that happened to contain an 'M'. The fact that there is an 'M' doesn't really matter since the bounding rect is much taller.
This came up in yesterday's VDG meeting.
When we introduced the idea of an edit mode. We kind of danced areound
what it is, and didn't call it a mode, even though it is. We named the
menu item "Customize layout". However in all of our communications with
the user outside of the UI, we call it the global edit mode. Users
themselves call it "mdit mode". The code calls it "edit mode". We call
it edit mode when we talk about it internally. I think it's pretty clear
what it is in people's minds. So let's make the UI text reflect that.
Running is a property managed by a state machine. It is bound in the
transition between states. We don't run a transition to get to the first
state.
These transitions aren't needed and can be written away simplifying the
code considerably in the process.
This means krunner is invisibly animating at 60fps constantly even when
it's not doing anything.
This fixes the mismatched default sectionDelegate compared to PlasmaComponents.ListItem,
where it was default false and this was default true.
BUG: 425769
Having the macro's definition of the operator| in the namespace of the
flags argument improves/unbreaks things for the argument-dependent
lookup of unqualified function names, e.g. when flags are combined in
calls of other methods, but there is some other operator| defined in the
namespace of the current code.
Given Q_DECLARE_OPERATORS_FOR_FLAGS creates inlined functions, this
should be a source and binary compatible change.
Qt did similar for Qt 5.12 in
https://codereview.qt-project.org/c/qt/qtbase/+/225348
Updated the tests so that you can see if the aspect ratio is correct.
Made an animated transition for when `control.running` is false.
Removed the code that updates the RotationAnimator when control.running changes since it didn't work.
Set padding to 0 (see comment).
BUG: 425504
Rather than duplicating the behaviors in both Button.qml and ToolButton.qml, leading to bugs and inconsistencies, the Button/ToolButton background code is split into separate reusable files. The correct background is used depending on whether or not flat mode is enabled.
BUG: 425174
This fixes installation on Windows.
An alternative solution would have been to dynamically create the symlinks
in the install step, on Linux, and to copy them on Windows.
01:05:07.444 CMake Error at src/desktoptheme/breeze-dark/cmake_install.cmake:43 (file):
01:05:07.444 file INSTALL cannot read symlink
01:05:07.444 "C:/_/acd4f350/plasma-framework-5.71.0/src/desktoptheme/breeze-dark/widgets/plasmoidheading.svgz"
01:05:07.444 to duplicate at
01:05:07.444 "C:/Craft/BC/windows-mingw_64-gcc/build/kde/frameworks/tier3/plasma-framework/image-RelWithDebInfo-5.71.0/Craft/BC/windows-mingw_64-gcc/bin/data/plasma/desktoptheme/breeze-dark/widgets/plasmoidheading.svgz":
01:05:07.444 No such file or directory.
01:05:07.444 Call Stack (most recent call first):
01:05:07.444 src/desktoptheme/cmake_install.cmake:40 (include)
01:05:07.444 src/cmake_install.cmake:41 (include)
01:05:07.444 cmake_install.cmake:109 (include)
The toolbutton-hover margins need to be inconsistent with the hover margins because 3rd party themes expect this inconsistent behavior now.
BUG: #425255
This reverts commit 7062c635a9.
Unfortunately, 3rd party themes were still broken after this commit was made because it didn't fix the real issue.
The real issue is that toolbutton-hover is supposed to have margins, but it didn't have real margins due to a previous patch to `button.svg`.
3rd party themes depend on hover and toolbutton-hover being used in inconsistent ways because of past behavior.
Unfortunately, they have to be inconsistent again
to not break themes.
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
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.
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
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.
Fixes common and frequent crashes introduced by 6c627ea044.
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.