Compensate for inset in implicit size.
Set padding to 0 if background is not present or does not have the margins property.
Use more of TextField's properties for setting the appearance.
Fix input alignment in RTL layouts.
Use colorGroup to set colors instead of deprecated properties.
Make placeholder text renderType match TextField's.
Use `clear()` instead of `text = ""`.
Use disableTextColor for placeholderTextColor.
Reduce background to 2 elements and set implicit size like most controls.
Set `anchors.rightMargin` of inlineButtonRow to `background.margins.right`.
The context property version is slower to access and won't be supported
in Qt6. Let's port away from it and use the singleton version instead.
Here was my full process for making this change:
1. Made the change with `find . -name '*.qml' | xargs perl -pi -e 's/units\./PlasmaCore\.Units\./g'`
2. Verified no more occurrences with `grep -r " units."`
3. Made sure this didn't change any comments in a silly way by inspecting the output of `git diff | grep "+ " | grep "//"`
4. Manually inspected the full git diff to make sure there were no other unintentional or silly changes (there were none)
5. verified that all changed files have the PlasmaCore import with the correct name with `for FILE in `git status | grep modified | cut -d ":" -f 3`; do grep -q "as PlasmaCore" $FILE || echo "$FILE needs the PlasmaCore import"; done` (one needed the import)
In TextField, it was not disabled, so the mousearea that changes the
cursor shape wasn't working properly. Fixed now.
In TextArea, it was not disabled, not the right color, and was
inappropriately selectable. Fixed now.
The UI tests were testing for these conditions but were broken, and are
now fixed by these changes.
BUG: 433864
FIXED-IN: 5.80
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.
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.
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
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
Summary:
the mobile text selection toolbar uses toolbuttons, which in turn use the
private import. This will make the components loading stuck in dependency
resolution
Test Plan: all loads correctly now
Reviewers: #plasma, hein
Reviewed By: #plasma, hein
Subscribers: hein, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20428
This reverts commit c72ee78bbb.
Broke PlasmaComponents3. Missing files? Error example:
MenuRepresentation.qml:172:5: Type PlasmaComponents3.TextField unavailable
file:///home/eike/devel/install/lib64/qml/org/kde/plasma/components.3/TextField.qml:27:1: "mobiletextselection": no such directory
CCMAIL:notmart@gmail.com
this avoids a qml type resolution recurtion which can
in some cases stuck the component to loading forever
this was particularly visible in plasma mobile
Summary:
in QQC2 the text selection controls depend upon the style, which has to
implement it by itself
this adds touch based draggable cursor and text selection handles,
alongside a tiny toolbar for cut/copy/paste
the desktop style will need the exact same thing
T10023
Test Plan:
works correctly when in tablet mode, none of this is visible
when in desktop mode where the text fields behave normally
Reviewers: #plasma, bshah
Reviewed By: #plasma, bshah
Subscribers: ngraham, abetts, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D16841
Summary:
When `PLASMA_USE_QT_SCALING=1` is set, Plasma uses native Qt scaling. This works fine for integer scale factors, and fixes a lot of bugs (see [[https://bugs.kde.org/show_bug.cgi?id=356446|Bug 356446]]) but it introduces a new one: with non-integer scale factors, text becomes blurry and pixellated because of a bug in `Text.NativeRendering`: https://bugreports.qt.io/browse/QTBUG-67007
QQC2-desktop-style forces the use of `Text.QtRendering` rendering for non-integer scale factors, successfully working around the problem. But PlasmaComponents QML objects don't implement the same workaround, so we see the issue in Plasma. This patch fixes that, and gets us one step closer to being able to use Qt scaling in Plasmashell.
There is no effect when `PLASMA_USE_QT_SCALING=1` is not being used.
FIXED-IN 5.13
BUG: 391691
BUG: 384031
CCBUG: 386216
CCBUG: 391695
CCBUG: 391694
CCBUG: 385547
CCBUG: 391692
CCBUG: 356446
Test Plan:
Before: `PLASMA_USE_QT_SCALING=1` set, 1.2 scale factor: Plasma text looks awful:
{F5749797}
After: `PLASMA_USE_QT_SCALING=1` set, 1.2 scale factor: Plasma text looks amazing!
{F5749798}
Note that we still get sub-pixel anti-aliasing and good kerning. There appear to be no layout regressions.
Without both `PLASMA_USE_QT_SCALING=1` and a non-integer scale factor set, there is no visual change compared to the status quo.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: mart, broulik, #frameworks
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D11244
Summary: The PlasmaComponents TextField makes placeholder text light enough so that it doesn't compete with other UI elements, but the PC3 version does not. This patch fixes that.
Test Plan:
Before:
{F5734041}
After:
{F5734042}
Reviewers: mart, hein, #plasma
Reviewed By: mart, #plasma
Subscribers: #frameworks
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D10922
Summary:
for styles in order to work at all they need to import
the latest available qqc2 version installed in the system
or any app using new qqc2 feature will fail to load.
do like in qqc2-desktop-style and set the import version
at build time
Test Plan: all generated files have 2.3 here as version and apps using qqc2 still oload
Reviewers: #plasma, bshah
Reviewed By: #plasma, bshah
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D10074
Summary:
This is a basic styling of a QtQuickControls2 series based on Plasma theme.
it has the main controls available in Qt 5.7
it installs them as a separate import (org.kde.plasma.controls 3.0) for
use restricted to plasmoids, is probably needed to be still installed as
a style as well
Test Plan:
tried with minimal QML files, a more comprehensive gallery may be needed.
pending considerations:
* some of the classes, like Drawer, the dialogs and ApplicationWindow *don't* make sense in plasmoids
* it will probably still need to be installed also as a qqc2 style, as this should be used in Plasma mobile
* probably only some of the controls should be installed as a separate import, the whole set as a style strictly for Plasma Mobile use. the same qml files would be used, so no maintainance overhead
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, broulik, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D4508