Instead of relying on the thumbnail strip size, which can temporarily
change during (re)layouting and/or be incorrect when we initially fetch
the thumbnail.
The potential change in image fidelity in notification history is
imho justifiable over the improved speed and reliability of thumbnail
generation when we don't needlessly create a pixmap we don't use.
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`
This begins the process of porting plasma-workspace to PlasmaComponents3. At
this point, only the relatively easy work is done. Every file not ported
now has been given the reason for still using PC2 in a comment on the import
line so you can see at a glance what the blocker is by running
`grep -r "org.kde.plasma.components 2.0"` in the repo.
Everything is tested and there are no breakages or functional regressions. In
the process, a few unused imports are removed.
Here are the remaining PC3 omissions blocking what's left from getting easily
ported:
- No Highlight
- No ListItem
- No PageStack
- No ContextMenu
- No QueryDialog
- No ModelContextMenu
- TabBar has no left and right tab states
- ToolButton has no built-in method to show a menu when clicked
I'm planning to use it in job notifications, too.
This should also make it easier to migrate away from a custom drag implementation to using Qt's if we were to do that.
Differential Revision: https://phabricator.kde.org/D25751
The popup is a pure QML singleton and as such doesn't inherit the i18n context from the applet. Use i18nd explicitly.
BUG: 407927
Differential Revision: https://phabricator.kde.org/D21422
Our dear friend Notification plasmoid has slipped the surly bonds of Earth
to touch the face of eternal preservation in Git history. It leaves a huge
emptiness in the hearts of all of us who loved it, many who here its friends.
Originally concveived in 2011 as a "New QML based notifications plasmoid
for mobile", it quickly outgrew its creator's vision and became a vital
component of the Plasma Desktop. When the new kid on the block arrived in
the form of Plasma 5, it showed its willpower to survive this stark transition
and served us for another half a decade. It taught us to seize every
opportunity to increase productivity and improve user experience,
yet it became evident that it reached its limits and so on April Fools' Day 2019
its heart beat for the last time.
Farewell!
Qt's Drag attached property doesn't like it at all when it gets deleted during drag. (QTBUG-65701)
Even though we try very hard to keep the popup open, when you have multiple notification applets, their dialogs don't know each
other but access a shared data engine.
This means that, since there can only we one hovered dialog at a time, another notification applet might still dismiss the
notification and have our dialog close.
By using a singleton NotificationHelper we 1.) decouple the Drag from the item and 2.) share the "is dragging" state between applets.
BUG: 388684
FIXED-IN: 5.12.0
Differential Revision: https://phabricator.kde.org/D9754
Copy-paste error from plasma-pa, there's no "padding" property as I didn't make it a dedicated component.
Fixed the enormous menu icon I had on the button
Makes it more obvious there's a menu with more options.
You can still right-click the thumbnail area as before.
Differential Revision: https://phabricator.kde.org/D9255
Since it represents a file, right clicking it should provide similar options found in a file manager.
This allows to open the application with an application other than the default, e.g. if you
want to edit the screenshot right away. It also offers a "Copy to clipboard" action as well as
service actions, such as send as email.
Differential Revision: https://phabricator.kde.org/D4838
When dragging a file from a notification and it times out, it closes and crashes.
This keeps the dialog open during drag.
Differential Revision: https://phabricator.kde.org/D4976
When a notification contains URLs, they will be shown as a large preview (in case of one
thumbnail) or multiple in a strip (similar to what Klipper does).
The previews can be clicked to open the file and can be dragged anywhere (e.g. to a
webbrowser or chat window).
Differential Revision: https://phabricator.kde.org/D3539