restore the disconnect: sometimes appletRemovedForward gets executed after
aboutToQuit is emitted, but before closingDown returns true
this prevents configuration to be forgotten
the problem is that sometimes when QCoreApplication::aboutToQuit the containment is already deleted (the order is not really deterministic), therefore appletScript::applet() will hit an assert.
using a qpointer should solve it, its data being already 0ed in the cases the containment is already deleted at :aboutToquit time.
the disabled/invisible actions already have it as properties.
this fixes the add widgets action sometimes not being available
in the toolbox
Reviewed by: Bhushan Shah <bhush94@gmail.com>
Applet::immutability() is the maximum between internal applet immutability
and the immutability of its containment.
so not set higher immutability in the internal member of Applet
or the applet will not be able to be unlocked properly
Reviewed by: Sebastian Kügler <sebas@kde.org>
the color properties are remotely useful only when used from QML
and risk to explode in number in the future,
it's not a good thing for a public c++ api.
Also, they will become kinda deprecated as in largely replaced by
the ColorRole api. Too late to remove those properties completely,
but still last days to move them at least out of c++ api.
(and in qml they could be removed in the future in a 2.1 version
of the import while still being present in 2.0 if needed)
This moves the color properties is a theme subclass available only from QML
REVIEW:118972
The latter breaks for subclasses of QMenu.
Follow up to review 118361.
CCMAIL:martin.klapetek@gmail.com
Fixes libkonq menus opened from Folder popup dialogs closing the
dialog.
BUG:336702
Qt::Tooltip is a mix of other flags (0x0001101)
using a simple & is not correct as any Window will have (0x0000001) set
and the bitwise & operation will return a non-zero value
REVIEW: 118906
The popup dialog can currently never be resized, so it doesn't make
sense to record its height in a config file. Additionally, this also
causes problems when applet writers change the size of their plasmoid.
Since the old size is saved in the config file, it is shown with the old
dimensions instead of the new ones.
REVIEW: 118849
BUG: 336070
Included is a plasma theme to make it look the same.
A known regression is that SectionScroller is temporarily removed
but that is currently not used in plasma-desktop
and this fixes a lot more problems than it causes.
REVIEW: 114283
it's an import in core, and advertises itself as an "attached property"
with this we can:
say that all its chidren are of a certain context, like "button" or
"complementary"
then anywhere there will be available an attached property, as ColorScope,
so like:
PlasmaCore.ColorScope {
group: PlasmaCore.Theme.Complementary
PlasmaComponents.Label {
text: "foo"
color: ColorScope.textColor
}
}
- internally, smallSpacing, largeSpacing and gridUnit are entangled, and
all use the font's rendered size. This means we can save a
QFontMetrics construction by merging the updating of these three
props.
- A wanted side-effect is that the updating of spacing and gridunit now
happens at the same time, so they're updated consistently in the UI.
- Also, use compile-time connects for the Plasma::Theme::themeChanged
connection
1/8 is really ridiculously small, it ends up being 2px on almost all
systems, and using it between UI elements makes them look really
cramped. 1/4 works much better, and makes this property actually useful.
for areas intended to have independent background and text color than
all the rest, like the Logout dialog
if Colors:Complementary is not present in the theme, it falls back to
normal colors
The used corona is either the containment's parent or, in case the parent
is an applet, it's containment's corona. With this change we ensure the
proper corona is always found.
This change requires screenContainment to be able to walk through the
object tree in case it's not a containment directly managed by it.
BUG: 334500
Basically splits the Calendar::m_startDate into 'today' and
'displayedDate', where displayedDate is the date that is displayed (it
controls the days model etc) and can be manipulated by the user by eg.
changing months in the plasmoid, and today is the current day, populated
by our dataengine (which means it auto-updates with no need for a
timer).
This allows for greater flexibility and things like "Go back to today"
when eg. the plasmoid is hidden or when the user have browsed too far in
the calendar and just wants to get back to today (the button to do that
pending).
Also this fixes a problem where the time dataengine is being polled
every 30secs for the clock and would reset the calendar view as the
startDate is currently bound to the dataengine and the view resets on
that change.
REVIEW: 118668
CCBUG: 336304
This enables and disabled menuitems with a timer, so we can see whether
dynamically updating these properties are propagated to the QMenu in the
proxy.
CCBUG:336281
* trigger an update after the animation finished as the IconItem needs to
switch to SVGTextureNode again
* Don't connect needlessly to a lambda slot
* FadingMaterialShader had the texture bind swapped
* Fix virtual method hidden warning in FadingMaterialShader
* Use dynamic_cast instead of static_cast to convert to SVGTextureNode
or FadingNode.
REVIEW: 118251
this makes it as synced as possible with the window
will still be behind the window size by exactly one frame
but at least is ensured is no more than one
experiment in dynamic repacement of Text and Background
colors, in order to be able to generate icons of different colors
based on where they are (for instance if the normal background
is dark and the button background is light
at the moment supported an option to invert colors, one
to use the "highlight" color (if we want colored icons
on mouse over)
It doesn't make sense to try to give hints at what it will be given that
we don't know.
For example, see how we're defining ::numScreens as 1 on the other method
as well.
newly created containments may have some default entries like plugin
or formfactor written in the config group, but not in keyList()
they have to be explicitly removed because wouldn't be removed in
deleteGroup
BUG:335792
since it is now possible to have different svg/framesvg with
different themes, s_sharedFrames must be indexed by theme first
what it's really the identifying thing is ThemePrivate, so it's indexed by that
this fixes a crash that occurs the second thime the theme gets changed
BUG:335472
When plasmoid in a popup (applet opened from panel) is opening a QMenu,
the popup itself hides because it looses focus. There's currently no way
to obtain the Dialog the applet popup is in and pass it to the QMenu
window as a parent, so we have to go this way.
REVIEW: 118361
BUG: 335422
It was returning QObjects on most places and it didn't make much sense
since since it was just expecting the API users to qobject_cast to
QQuickItem to do anything with these. Considering that fullRepresentation
can be anything other than a graphic item doesn't sound good anyway.
when qml object gets created with an async incubator,
events are still processed, so we have to guard gainst
double triggers that can lead to creating the
extended representation again
BUG:335406
now is actually possible to obtain a startup with zero svg renderers
* svg::isValid will create a renderer only if really nevessary
* the rects cache is ensured to be written on disk
* fixed the check on the theme metadata age
* rect cache is shared between all applications
Currently we have 3 applets using the calendar grid and all of them put
the extra heading to the calendar. We also offer ways to change the
displayed month so we should also show /which/ month is the current one
displayed, implicitly.
REVIEW: 118328
BUG: 334147
This introduces new property on MonthView - "today". This property is
updated by dataengine (or can be a timer too, but we already get signals
from dataengine every 30 seconds to update the clock) and is never
updated by the code itself.
Furthermore, the DayDelegate is now bound to it, so when "today"
changes, the selection rectangle in the calendar should also change.
And finally, the selected item in the grid is cleared if MonthView's
date property is cleared (which is second part of this patch, to the
applet itself).
REVIEW: 118277
Many classes from QtGui are specified in the header files, this alone is
enough reason to make it a public dependency. (QGuiApplication, QFont,
QPixmap are some examples).
This also pulls QtCore (e.g. QString, QRect, QUrl), which also is, of
course.
CCMAIL: plasma-devel@kde.org
Removing eliding in Toolbutton, this causes a binding loop as the
sizeHint is dependent on the paintedSize, which will change if you
elide.
In all cases we are trying to make toolbuttons fit the contents, so this
actually got in the way of that.
Otherwise the label can get out of the button boundaries. Tested with
RTL text too, it's elided properly as the elipsis switches to Left on
its own.
Reviewed-by: Marco Martin
BUG: 334867
ToolTipAreas are often the critical path for mouse handling, since
hover events are not filterable from below in the item hierarchy.
When disabling tooltips also stops updating containsMouse code has
no way to adapt, since there's no API to read the pref from within
QML. This changes the implementation of the pref to only prevent
tooltips from being shown, but still continue to handle hover events.
We need to use a GLXFBConfig which matches the depth of the window
pixmap's depth. So far it used the GLXFBConfig of the GL context.
This worked fine for RGBA windows, but failed for RGB windows on e.g.
some NVIDIA drivers.
After this change the FBConfig of the context is completely ignored,
instead it tries to find a good FBConfig for a given depth.
Whenever a FBConfig for a given depth is found it's inserted in a
cache shared between all WindowThumbnails so that we don't have the
X roundtrips all the time.
BUG: 334241
REVIEW: 118110
The WindowThumbnail needs XCB_EVENT_MASK_STRUCTURE_NOTIFY on the window.
For this it needs to change the window attributes. But it needs to keep
the existing event mask to not break other code. Also it cannot remove
the event mask again, as there is no chance to know whether another
component requires STRUCTURE_NOTIFY.
This fixes the not updating items in the tasks applet as the event mask
needed for KWindowSystem got overwritten.
BUG: 331956
REVIEW: 118137
Port IconItem to native QSGTexture including the animation.
This will save constantly uploading a new texture to OpenGL throughout the animation.
REVIEW: 116024
All QQuickWindows share a default format. By setting a custom format
it overwrites the default and this results in a format without a
stencil buffer being requested resulting in possible rendering errors.
REVIEW: 118122
sometimes on plasma start, other context events may be triggered
while the menu is in its exec(), byt the qqmlincubator.
if so, close the already existing menu.
BUG:334562