Force the whole thing to collapse if the children are invisible.
If there is a big notification followed by a small one, the height
of the popup does not always shrink back, so this forces it to
height = 0 when those are invisible. -1 means "default to
implicitHeight"
For some reason I have not yet fully identified, the notification popup
can get its y coord reset to 0 on resizing. This is a workaround but
fixes an annoying problem.
Now with the geometry being correct right after the popup is
being displayed, it can be placed directly to its exact intended
position (compared to sliding from default position because the
geometry was not known).
This should fix any issues left with the popups flying across
the screen and removes tons of code as a bonus.
REVIEW: 126668
These are not new strings since scripty always adds them
This usually happens automagically by calling KLocalizedString::setApplicationDomain but that only works if
the app uses a KMainWindow (or child class).
Since in this case it's not, we need to call setTranslator directly
This is better/simpler code, but doesn't fix that Plasma::Applet::loadPlasmoid()
instanciates applets but doesn't run scripts - which is difficult to achieve
because the scripting environment is designed around knowledge of a containment.
Perhaps scripts execution should be moved from ShellCorona to Applet and happen
the first time an applet is parented to a containment.
CCMAIL:notmart@gmail.com
The code is from a time before we had smart layouts and thus is pretty complicated
with lots of anchoring. This cleans up the code massively.
The layout is a bit tighter now, the eject/mount button is now a proper ToolButton.
The "n actions for this device" text now disappears when the actions are expanded;
(dis)appearance of the disk usage bar is now nicely animated, while the lagging behind
hover effet has been removed.
REVIEW: 126673
According to Git / SVN history research, it was last used by KDE in
KDE 1. It seems like other toolkits also stopped using it 10-20 years
ago. It should have little to no practical relevance anymore.
I've found some documentation of legacy XSM session management from
1992, and the first copyright year of the XSMP spec (what we're
currently using) is 1993.
Also, XSM was removed from GNOME's gnome-session in 2005, rationale
and short discussion here:
https://mail.gnome.org/archives/desktop-devel-list/
2005-July/msg00527.html
with the following objections:
- Firefox doesn't support XSMP (long fixed)
- CDE on Solaris doesn't support XSMP (oh well...)
- Motif applications don't support XSMP
On kde-core-devel and kwin, nobody cared too much.
Consider XSM "accidentally" broken now ;)
https://marc.info/?l=kde-core-devel&m=144857647812257https://marc.info/?l=kde-core-devel&m=144976915400658
There is a utility called xsmproxy which comes from X.org.
It talks legacy XSM to clients and XSMP to an XSMP compliant
session manager and can therefore maybe hopefully make session
management of dinosaur applicatons sort of work.
It seems like that one received its last major modification
in 2003.
There is also some XSM related code in KWin that I will remove next.
The bug happens because the binary part of the applet sends out the
available screen resolution _before_ the applet is fully loaded AND also
whenever the screen changes in any way. This works fine with the non-
auto hiding panel because once the panel gets loaded, it changes the
available screen area (cause the part where panel is is reserved and
windows cannot go there) and that change is told to the binary part of
the applet and that part tells the positioning part.
However with the auto-hiding panel the signal about the changed
available screen space never arrives because the panel does not take
that space when it loads. And so the applet was left with "available
screen space = 0x0" because the first signal is sent out before the
applet is fully loaded.
So the obvious fix is to simply ask for the available screen space
_after_ the applet has finished loading.
BUG: 357652
FIXED-IN: 5.5.4
This patch does this:
* moves the screen handling code from the import into
the applet baseclass, which can access the containment
available screen rect and watch for screen changes
* fixes the applet config dialog's custom screen position
setting which has a bug of always being enabled
* consolidates duplicated code in the helper import
into functions
* ensures that popups have correct positions when on
screen that does not start with y=0 (and x=0 in some
cases too)
REVIEW: 126408
CCBUG: 353966
CCBUG: 356461
Instead of showing the full DrKonqi dialog, drawing a lot of attention to a crash,
a Status Notifier Item will be placed in system tray. For auto-restarting system
services like Plasma a crash would often go unnoticed if it weren't for the DrKonqi
dialog showing up. Additionally, regular application crashes will spawn a desktop
notification offering to report a bug or restart the application.
The Status Notifier Item hides after one minute because if the user didn't bother
within that time he probably forgot what he did to cause the crash anyway. If the
session is idle the SNI stays indefinitely so a crash of a long over-night task
like video rendering can still be reported.
If no notification service is running and the application did not auto-restart
regular DrKonqi will show up right away.
REVIEW: 126515
In kde4 times, the layout of clock's tooltip was nicely arranged using a
table. Now it's a bit of a mess so this brings back some nice layout.
Also simplifies the timeForZone function which is used only for the
tooltip.
BUG: 357005
BUG: 351472
CCBUG: 357004
FIXED-IN: 5.6.0
REVIEW: 124047
It's nice that we offer to configure an application's notification settings
from a notification. Usually, however, you're lost in a dialog of notifications
and you have no idea which event you just saw.
CHANGELOG: When pressing the "configure" button on a notification, the actual
notification type will be pre-selected in the upcoming notifications list
REVIEW: 126570