Summary:
I found two places in plasma-framework svg.cpp (Plasma::Svg) that were triggering this message.
path variable was not being checked for empty before passing to QFile::exists().
This seems to be one source of the issue reported in [[ https://bugs.kde.org/show_bug.cgi?id=388389 | Bug 388389 ]]
Test Plan: Found that kicker was triggering this message and also plasmashell tooltips.
Reviewers: #frameworks, davidedmundson
Reviewed By: davidedmundson
Subscribers: ngraham, alexeymin, aacid, #frameworks
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D9928
Summary:
Horizontally align the toolbar row to the days/month/etc grid canvas.
(The bar was used to be a few pixels wider)
Test Plan:
Before: {F5514329}
After: {F5514330}
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: aacid, davidedmundson, broulik, plasma-devel, #plasma, #frameworks
Tags: #frameworks, #plasma
Maniphest Tasks: T7499
Differential Revision: https://phabricator.kde.org/D9019
This will have the ConfigModule use the same engine as we do, ensuring we use the correct QtQuick Controls style.
BUG: 388766
Differential Revision: https://phabricator.kde.org/D9785
We have a special case for sources starting with "file://" but a "/" also represents an absolute path and shouldn't
conflict with icon theme names.
Kicker sets a custom image as local path and then we would end up trying to load it as a QIcon::fromTheme eventually.
This will cause the implicit size of the icon item to stay at its default as we only check a custom implicit size
for a source QImage or an SVG. Moreover, this potentially introduces scaling artefacts.
Differential Revision: https://phabricator.kde.org/D9812
Summary:
--PlasmaComponents3.ComboBox now appears correctly
its list items in RTL environments by aligning them
to the right
BUG: 387558
Test Plan:
check the combobox list both in RTL and LTR environments
in order to confirm that the list items are aligned correctly
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: mart, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9275
This adds a dedicated, green, task bar progress graphic.
Currently there isn't and as a fallback it uses the hover graphic.
BUG: 368215
Differential Revision: https://phabricator.kde.org/D9324
Summary:
minimize file access during url rewrite
we still need it for accessing stuff under code/
Test Plan: plasma still loads, seems to save ~2%
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, ngraham, apol, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9124
This reverts commit 4ce50cc61f.
This caused a regression with toggling compositing, causing SVG reloads
with the same path to switch to opague elements. As this revision was
meant as a performance optimization, it can be reverted with no other
consequence for now.
Summary:
like other platforms, on mobile devices make scrollbars visible only when
dragging/flicking, behavior on desktop unchanged
it introduces a runtime dependency on kirigami, but was already kinda there
but broken as the Settings singleton was already used.
if this can't be done, i'll add something in plasmacore which reads as well the
QT_QUICK_CONTROLS_MOBILE environment variable
Test Plan: scrollbar disappearing with the variable set, normal behavior otherwise
Reviewers: #plasma, bshah, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9287
Summary:
to minimize metadata lookups, pass the kpackage created in pluginloader
to the applet itself as args. the args structure will be used only by the
internal constructor and applet sublasses will get their args unaltered
Test Plan:
plasma loads correctly, from 3 kpackage instantiation per applet to 2
(last is in the access manager)
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9123
The style is global per engine, there's no need to set it for every applet created
as the engines are shared.
Since this entire thing is just a hack, just setting a dynamic property to identify
that we've set a style is valid imho.
Also turn it into a plain QtObject since we don't need a fully-fledged Item.
Differential Revision: https://phabricator.kde.org/D4362
Summary:
Setting a window icon is costly enough to be worth avoiding when it's
not actually needed.
This is a resurrection of David's old patch:
https://git.reviewboard.kde.org/r/128484/
The concerns in the old discussion that led to its rejection are no
longer valid today: In the meantime we implemented a way for apps to
announce their .desktop file in a window hint, which KWin (and libtm)
will fall back to to look up an icon if not set. As plasmashell does
this, we can drop the setIcon call here and won't regress.
Test Plan:
The pinned systray popup dialog still gets the Plasma icon in the
Present Windows effect.
Reviewers: #plasma, #frameworks, davidedmundson, graesslin
Subscribers: plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9209
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
Summary:
Plasma::Svg initializes SvgPrivate::scaleFactor to 1.0. On systems with
a higher value for Units:devicePixelRatio, that means Svg::setScaleFactor
gets called with a different value right after instanciation and a fair
amount of work is done twice.
This patch introduces a static SvgPrivate::s_lastScaleFactor,
initialized to 1.0 but updated in Svg::setScaleFactor.
SvgPrivate::scaleFactor is then initialized to the static every time
its instanciated. That means after the first time Svg::setScaleFactor
is called with e.g. 2.0, subsequent Svg instances get initialized
with 2.0.
This ends up shaving a decent amount of time off of startup on scaled
systems.
Reviewers: #plasma, davidedmundson, broulik
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9119
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
Summary:
Plasma::Svg initializes SvgPrivate::scaleFactor to 1.0. On systems with
a higher value for Units:devicePixelRatio, that means Svg::setScaleFactor
gets called with a different value right after instanciation and a fair
amount of work is done twice.
This patch introduces a static SvgPrivate::s_lastScaleFactor,
initialized to 1.0 but updated in Svg::setScaleFactor.
SvgPrivate::scaleFactor is then initialized to the static every time
its instanciated. That means after the first time Svg::setScaleFactor
is called with e.g. 2.0, subsequent Svg instances get initialized
with 2.0.
This ends up shaving a decent amount of time off of startup on scaled
systems.
Reviewers: #plasma, davidedmundson, broulik
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9119
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
Summary:
During my plasmashell startup this saves time for 17 calls. Opening
something like Simple Menu saves another ~dozen.
It's worth investigating why Svg::setImagePath gets called repeatedly
with the same args to begin with, but this is worth doing anyway.
Reviewers: #plasma, davidedmundson, mart
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9115
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
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
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
We know we have a QQuickItem so we can just use its methods directly and then also use setSize
which does both at once, saving intermediate signal emission and potential re-layouting
Differential Revision: https://phabricator.kde.org/D9068
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
This would create the surface after which this flag has no effect causing menus to have black rounded corners.
CHANGELOG: Fixed an issue where context menus would appear with broken corners
CCBUG: 381799
Differential Revision: https://phabricator.kde.org/D8963
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
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
frame->fooHeight is the same as frame->fooFixedHeight if the border is enabled, we only meddle
with margins, not heights. Thus we can just do the lookup once and re-use the value.
Also store the hintFooMargin instead of doing the same exact lookup once for fixed
and once for non-fixed margins.
Differential Revision: https://phabricator.kde.org/D8135
Summary:
The OSDs are positioned by the Wayland compositor. This fixed the issue
found in D8268.
Reviewers: #frameworks, #plasma
Subscribers: plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D8304
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
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
For a panel it makes sense to have panel options easily available on every applet
but on the desktop you typically have some free space to access the containment actions.
This is especially confusing if you have a Folder View on your Folder View desktop
and end up with a "Folder View Options" menu that affects the desktop behind it rather than the applet.
Differential Revision: https://phabricator.kde.org/D8009
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
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
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
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
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
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
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
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
The appendCategory(ConfigCategory*) allows to add a category created by e.g. an Instantiator
that can use bindings rather than fixed arguments.
The removeCategory methods allow to remove a category when e.g. the model in an Instantiator resets.
CCBUG: 372090
Differential Revision: https://phabricator.kde.org/D7602
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
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
Summary:
using the qml url interceptor, rewrite imports in order
to load always the plasma styled qqc2 controls in plasmoids
and plasma views. As is per-engine, is possible to load
controls with qstyle theme in configuration dialogs
and plasma style in plasmoids.
Note: this replaces just the style org.kde.desktop
to Plasma and not every style (so with Material
set as QT_QUICK_CONTROLS_STYLE environment variable
plasma would load controls with material style) because
we can control both org.kde.desktop and Plasma styles:
they must have the same subdirectories as unlike files,
their existence is checked before the rewrite (in our case,
"private"), so in order to work they must exist in both
styles
Test Plan:
a qqc2 button in a plasmoid has the plasma style, in
a config dialog has the qwidget style. rewrite works
only from org.kde.desktop to Plasma and not from other
styles, due to the existence of the "private" subdirectory
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6964
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
Summary: createObjectFromSource can return a null on error. This needs guarding.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D7532
I don't get the comment on why it is /dev/null instead of QString() but using SimpleConfig at least saves 0.3ms per call for me.
Differential Revision: https://phabricator.kde.org/D7510
It's not being set to anything anymore and people typically don't have 256 color displays these days.
Differential Revision: https://phabricator.kde.org/D7516
We're passing it an absolute path to a file in our install directory anyway,
so we probably don't want inheritance.
Differential Revision: https://phabricator.kde.org/D7362
Summary:
imagePath can be an absolute path into an iconTheme
-> Do not try to find it in the Plasma theme
imagePath can be empty
-> Do not try to look it up at all
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: #frameworks
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D7250
Summary:
on multiscreen systems, the notification dialog gets resized to 0x0
right after componentcomplete by someone else (either kwin, notification
applet or Qt code) causing 382340, resizing a window to a null size is not correct anyways
and should never happen.
with this, all other resize events are correct and notifications are ok on multiscreen
systems
BUG:382340
Test Plan:
system with primary monitor and panel in the external monitor
at the right of a panel, notifications are fine
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, broulik, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D7127
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
The applet context menu contains containment actions which might be outdated if we don't call this.
Differential Revision: https://phabricator.kde.org/D6894
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
Summary:
fd2e850156 introduces some behaviour
changes that affect X even though they should be only Wayland related.
BUG: 381130
Reviewers: #plasma
Subscribers: graesslin, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6776
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
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
Test Plan:
Installed battery monitor locally with kpackagetool5 -i
moved x-test .po file from being installed systemwide to only being
inside the bundle
still get xx everywhere
BUG: 374825
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D5209
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
The code wants to check whether we're not a tooltip. This wasn't done properly and didn't work
when other flags were present.
Differential Revision: https://phabricator.kde.org/D6554
This ensures the panel does not auto-hide then.
It also forces a re-evaluation of auto-hide status when the menu closes,
so even if we mess up with mouse grabbing, it should more reliably auto-hide afterwards.
BUG: 344205
CCBUG: 351823
Differential Revision: https://phabricator.kde.org/D6527
PlasmaQuick::Dialog::WindowType uses KWindowSystem's API, so removing
it from the list of the public libraries causes compilation issues in
projects that depend on plasma-framework (such as plasma-desktop) which
no longer find KWindowSystem's includes.
This reverts commit f8de13c674.
CCMAIL: kde@davidedmundson.co.uk
Summary: We don't use it in public API
Reviewers: #plasma
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6495
Summary:
Current code will, when mirrored, treat all keys like they're the left
key.
BUG: 379894
Test Plan: Ran plasma in RTL
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6480
This fixes the build of plasma-framework on KDE CI. Without this it will
error out as,
dialog.cpp(309): error C2065: 'shellSurface': undeclared identifier
dialog.cpp(310): error C2065: 'shellSurface': undeclared identifier
dialog.cpp(310): error C2227: left of '->setPosition' must point to
class/struct/union/generic type
Signed-off-by: Bhushan Shah <bhush94@gmail.com>
Summary:
* make sure after a showevent the size is final and the
dialog can be safely repositioned.
* set mainItem visible in :setVisible() so that is executed before showEvent:
resizing windows in their show event is definitely not enough, causes events to arrive to
reset to the old geometry in race with the setgeometry done there, don't know yet
if it's the qpa, qwindow, or the windowmanager
* make synctomaintem and updatelayoutparameters working even if
the dialog is not visible as we need to resize beforehand
* move the plasmasurface window also in the show event as if there was no moveevent
after an hide/show, its position would be resetted to 0,0
Test Plan:
current dialog users behave the same (like pre-D6216 notifications applet), tests still pass
notifications applet reworked to use this works as expected
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: sebas, hein, davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6215
Make sure to use style sheets and fill:currentColor or else it won't adapt
to the Plasma theme at runtime (e.g. white icon for dark themes etc)
CCMAIL: guoyunhebrave@gmail.com
Even though this change is probably technically correct, it breaks
things in workspace which aren't really setting focus properly.
Better to revert now and merge again later when things work.
This reverts commit e65d7b98be.
Summary:
Now that applets are their own focus scope (which makes sense) we've
also made containments their own focus scope.
We therefore need to also say the containment FocusScope has the focus
within the view.
BUG: 381124
Test Plan:
Renamed something in folderview
Used cursor nav
Reviewers: #plasma
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6192
Summary:
sometimes a frame changed enabled borders causing a dangling
pointer in s_sharedFrames, since oldkey was generated
with the new enabled borders, it generated a key not present
in the hash, tryed to remove it and left the one associated
with the old key in the hash.
if the need to reuse a frame with that key ever arised again,
we had a crash
BUG:378508
Test Plan:
couldn't reproduce the crash neither with or without patch,
with the patch, if i put debug in every place a framedata is removed,
searching if the key is in the hash before removing it, now
it's always true, before sometimes it was false
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6162
like happened in KPasswordWidget, show the show password
button also when there is no text, otherwise is impossible
to know what will be typed, a dot or the actual letter
BUG: 378277
Summary:
Like Loaders an applet should be a focus scope. It allows an applet to
set an item to have focus which will then have activeFocus when that
applet gets focus.
Also makes it easy to test if any item within the plasmoid has
activeFocus.
Test Plan:
Keyboard nav in kicker/klipper still work
Added opacity: Plasmoid.activeFocus ? 1 : 0 in an applet and it worked
as expected
Reviewers: #plasma
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6152
Summary: Ported away some classes, removes many unneeded casts that happen when starting.
Test Plan: Tests still pass, plasma starts properly
Reviewers: #frameworks, #plasma, mart
Reviewed By: #plasma, mart
Subscribers: davidedmundson, mart, plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6041
Using the new extra-cmake-modules module ECMAddQch (since 5.36.0)
this adds the option to automatically build and install a file
in QCH format with the docs about the public API, which then can be
used e.g. in Qt Assistant, Qt Creator or KDevelop.
Additionally the installed cmake config files will be extended
with a target KF5Plasma_QCH containing information about how to "link"
into the generated QCH file, which then can be used in the cmake build
system of other libraries building on this library, by
simply listing this target in "LINK_QCHS" of their ecm_add_qch() usage.
And a respective doxygen tag file with all the metadata about the
generated QCH file and used for the "linking" will be created and
installed.
Pass -DBUILD_QCH=ON to cmake to enable this.
Summary:
Don't construct a QUrl for every source strings. Check it's a file url
first (which is the only kind of url we support at the moment)
When extracting the path, use toLocalFile, so it works on platforms where
path!=toLocalPath (e.g. windows)
Don't split a string and get a chunk, but just extract the chunk we need
with section. Reduces allocations that are automatically discarded.
Narrow iconPath scope
Test Plan: Tests still pass, plasmashell still works
Reviewers: #frameworks, #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6014
Summary:
take into account size hints also when adjusting with synctomainitemsize
which sometimes has to be executed right before adjusting from the layout
hints, giving one wrong resize
introduce geometryUpdatesBlocked, which stops the dialog
from syncing which is useful when both visual parent and item
contents gets updated in one go (the tooltip) it is not
yet exported to qml and it shouldn't as is dangerous, but
kicker may make use of it between changing the submenu model and
the visualparent
alternative implementations may be:
* a method that takes both main item and visual parent
* delaying with a timer setGeometry (ouch)
this part can also be left behind for now and see if the rest is good enough
Test Plan:
no visual glitches visible anymore in wayland when moving the tooltip
in the taskbar, x11 ok too
Reviewers: #plasma, hein, davidedmundson
Reviewed By: #plasma, hein, davidedmundson
Subscribers: broulik, davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D5912
Summary:
set transient parent for popup menus created by appletinterface/
containmentinterface, it makes them appear at the proper coordinates
Test Plan: containment menus appear where the mouse was pressed
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D5918
Summary:
this ensure two things:
* submenus have the main menu as transientParent
* the visualParent window() is used as transientParent, if exists
this partly fixes popup positioning in wayland, tough
the main taskbar menu is still mis positioned
Test Plan: submenus ok, taskbar contextmenus only partially fixed
Reviewers: #plasma, #plasma_on_wayland, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D5773
Summary:
every time the window gets shown the wayland surfaces
get created, when hidden, they get destroyed
showevent is too early for it as they aren't there yet,
use :Exposed instead, but only the first time when the surface
isn't there yet
Test Plan:
popup applets always have correct blur in a wayland
session
Reviewers: #plasma, #plasma_on_wayland, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D5745