1. 11 Dec, 2020 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Check popup being null · 3b218117
      Kai Uwe Broulik authored
      I've seen popup being null when spamming notification removal.
      Perhaps when the model already yanked the item under us before the Instantiator
      had a chance to update its count... Not sure about the implications, but it
      silences a warning I observed.
  2. 16 Nov, 2020 1 commit
    • Konrad Materka's avatar
      Fix QML Binding warnings · 76890219
      Konrad Materka authored and Nate Graham's avatar Nate Graham committed
      Qt 5.14 introduced new restoreMode mandatory property. Fix warnings like this one:
      QML Binding: Not restoring previous value because restoreMode has not been set.
  3. 29 Sep, 2020 1 commit
  4. 18 Aug, 2020 1 commit
  5. 11 Aug, 2020 1 commit
  6. 23 Jul, 2020 1 commit
    • Nate Graham's avatar
      Begin porting to PlasmaComponents3 · f55b00fe
      Nate Graham authored
      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
      - 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
  7. 22 Jun, 2020 1 commit
    • Bhushan Shah's avatar
      [notifications] Fix notifications placement when aligned in center · ebfc2b53
      Bhushan Shah authored
      When calculating the popup location for center alignment, we added the
      popupEdgeDistance to it, which resulted in the notifications offset by
      units.largeSpacing*2 to right.
      It does not make sense to add popupEdgeDistance when notification is
      aligned in horizontal center.
  8. 11 Jun, 2020 1 commit
  9. 29 May, 2020 2 commits
    • Kai Uwe Broulik's avatar
      Fix typo · 3a39bd94
      Kai Uwe Broulik authored
    • Kai Uwe Broulik's avatar
      [Notifications] Position popups more relative to notification icon · a3b679d4
      Kai Uwe Broulik authored
      The available screen rect for notification popups is horizontally restricted by the panel they're in.
      This way when you have a centered panel, the notification popup are "emitted from the panel" rather
      than floating in mid air. The horizontal edge (left or right) is determined by which half of the
      panel the notification plasmoid is in. When in System Tray, the location of System Tray is relevant.
      For a vertical panel, it changes the position from bottom to top based on which half of the screen
      the notification popup is on.
      This affects only the default "near notification icon" placement setting. Manually setting a screen
      corner still moves the notification popup all the way to the screen corner.
  10. 28 May, 2020 1 commit
  11. 22 Apr, 2020 1 commit
    • Nate Graham's avatar
      [applets/notifications] Widen pop-up and reduce spacing when on top or bottom center · 0e40a1ca
      Nate Graham authored
      Somehow the notification pop-up's positioning has never felt quite right to me. When it's
      in a bottom corner, it blocks the view of the latest messages in chat apps, or the text
      I'm searching for in Kate. When it's in a top corner, it blocks part of the open app's
      toolbar or tab bar that I often use. The best place I've found for is in the top-middle,
      which doesn't block very many of the thing I'm active using, and its centered position
      feels aesthetically pleasing. I've been using this for a bit and quite like it.
      However there is ony deficiency: the pop-up is not very wide, so it becomes quite tall
      when displaying multi-line messages from chat apps in particular, which makes the
      notification stack intrude into the middle of the screen where it definitely blocks things
      you want to be looking at. This is annoying.
      This patch resolves that issue by making the pop-up's size wider and the spacing between
      pop-ups smaller when the pop-ups are positioned in the top or bottom middle.
      Test Plan:
      Centered pop-ups now look like this:
      Single pop-up: {F8247020}
      Stack of pop-ups: {F8247025}
      There is no visual change for pop-ups in the corner, where they are by default.
      Reviewers: #vdg, #plasma, broulik, ndavis, cblack, bshah
      Reviewed By: #vdg, #plasma, broulik, ndavis, cblack, bshah
      Subscribers: bshah, IlyaBizyaev, ndavis, cblack, plasma-devel
      Tags: #plasma
      Differential Revision: https://phabricator.kde.org/D28989
  12. 07 Apr, 2020 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Sort popups ascending · 55400729
      Kai Uwe Broulik authored
      This ensures that newer notification popups don't push old ones out.
      Some applications are notorious for spamming the user which right now results in a firework
      of notification popups. With this patch only the number that fits on screen is displayed and
      everything beyond that is off screen until there's enough room for new popups which are
      then gradually lowered.
      It also reduces the likelihood of the notification the user is interacting with being shifted
      away by an incoming notification. Furthermore, since notifications that are off screen will
      have their timeout reset, it can happen that you have a bunch of recent notifications at the
      bottom but then get some old ones that were off screen sliding back in because some middle ones
      have expired already, leading to awkward results.
      Notification scoring (e.g. critical before normal) is untouched, so a "battery is critical" notification
      will show up even if it's still chugging through the backlog of browser notifications.
      Differential Revision: https://phabricator.kde.org/D28646
  13. 10 Mar, 2020 1 commit
  14. 04 Feb, 2020 1 commit
  15. 31 Jan, 2020 1 commit
  16. 14 Jan, 2020 1 commit
  17. 22 Dec, 2019 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Add quick reply feature · 5f6f4634
      Kai Uwe Broulik authored
      This adds a quick reply feature with a text field inline in the notification popup.
      An action named "inline-reply" will spawn the text field and a NotificationReplied signal is emitted then.
      There's additional kde hints for changing the placeholder text (defaults to "Type a reply..."),
      submit button text (defaults to "Send") and submit button icon name (defaults to "document-send",
      that paper aeroplane icon).
  18. 15 Dec, 2019 1 commit
  19. 12 Dec, 2019 2 commits
  20. 29 Nov, 2019 1 commit
  21. 09 Oct, 2019 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Report effective Inhibited state on DBus · bb0e4208
      Kai Uwe Broulik authored
      The inhibition handling (e.g. combining time-based, screen mirrored, etc) is done inside the applet.
      The Server knows nothing about it and only reports Inhibited as true when an external application
      requested one, not when the user enabled it in the applet.
      This patch exposes the NotificationManager.Server as singleton QML type and adds a way for the
      applet to tell it the effective inhibition state.
      Exposing the server to QML could also be used in the future to provide better error reporting
      to the user when the service isn't running and/or owned by someone else (e.g. Dunst)
      Differential Revision: https://phabricator.kde.org/D24486
  22. 27 Sep, 2019 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Dodge Plasma dialogs · cc0c1254
      Kai Uwe Broulik authored
      The notification popup typically gets in the way of the system tray popup.
      In case it would cover a Plasma dialog, hide the notification popup.
      It doesn't specifically check for System Tray but then it will also get out of the way of your
      calendar and other widgets you might have placed in the respective corner.
      Differential Revision: https://phabricator.kde.org/D24208
  23. 25 Sep, 2019 1 commit
  24. 16 Sep, 2019 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Introduce dedicated "read" state for notification · 083e9409
      Kai Uwe Broulik authored
      Currently, a notification is considered "unread" when it was created or updated after the last time the user opened the history.
      To alleviate this, when the notification popup is hovered, e.g. because the user wanted to drag an image out, select some text,
      or open the "More" menu, it is considered read. It will still end up in the history but will not needlessly show the "unread notification" bell icon.
      Moreover, job finished notifications are always considered read, as they are either from long-standing jobs which the user is likely aware of,
      or confirmation of short tasks the user doesn't need explicit confirmation about. For example, extracting an archive in Dolphin,
      I get an "Extracting (Finished)" but I don't want to explicitly acknowledge that notification because I can just enter the folder that was just created in Dolphin.
      This surely doesn't fix the underlying problem of notification expiration and history, and the user might just interact wiht some
      tray icons or the clock and not actually deal with the notification popup but this is imho an acceptable stopgap until a proper
      solution is found, which won't happen in time for Plasma 5.17 anyway.
      Differential Revision: https://phabricator.kde.org/D23977
  25. 29 Aug, 2019 1 commit
    • Nate Graham's avatar
      [Notifications] Don't allow popup to obscure things in corners · cf931ee1
      Nate Graham authored
      One thing that has been bugging me a bit with notifications is how close the pop-up is
      to the screen corners/edges. It's so close that it obscures various things that live very
      close to screen edges, such as windows' titlebars and the text input field in chat apps.
      The latter case is really annoying in particular because if you have multiple chat apps
      running, notifications from the app that's in the background will obscure what you're
      typing in the text input field of the foreground chat app.
      This patch fixes these types of issues by doing the following:
      - Adjusting the popup positioning algorithm make popups that are in a corner equidistant from both adjacent screen edges, rather than only one
      - Doubling the defualt distance from the nearest corner/edge
      The combination of these changes allows pop-ups to no longer obscure window titlebars
      and chat windows' input fields.
      BUG: 401500
      FIXED-IN: 5.16.5
      Test Plan:
      Top corner popup position no longer obscures window titlebar text and buttons: {F7259424}
      Bottom corner popup position no longer obscures chat app's text input field: {F7259425}
      Reviewers: broulik, #plasma, #vdg
      Reviewed By: broulik, #plasma
      Subscribers: cblack, plasma-devel
      Tags: #plasma
      Differential Revision: https://phabricator.kde.org/D23253
  26. 13 Aug, 2019 1 commit
  27. 23 Jun, 2019 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Make popup placement more resilient · c26fd34c
      Kai Uwe Broulik authored
      The popup width is fixed, so don't rely on the actual dialog window width which might be bollocks.
      More importantly, place the popups immediately and before they are shown so they show up
      correctly and don't fly all over the place.
      It can happen that the popup contents aren't readily laid out when we enter positionPopups() after
      object creation, so don't reserve any space for the popup until it
      Differential Revision: https://phabricator.kde.org/D22045
  28. 24 May, 2019 1 commit
    • Kai Uwe Broulik's avatar
      [Notifications] Avoid stale screenRect · f76c949d
      Kai Uwe Broulik authored
      AppletInterface does not emit change signals for screen properties, only ContainmentInterface does it.
      Since a fix will only be in a future Frameworks version 5.16 won't depend on, mitigate the effect by not caching the property.
      The property was only a lazy Connections replacement anyway.
      Also, compress screen change updates to avoid flickery animation of the popup as you resize the panel.
      CCBUG: 407504
      BUG: 399257
      Differential Revision: https://phabricator.kde.org/D21365
  29. 13 May, 2019 3 commits
  30. 09 May, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Final round of review comments · 972840c9
      Kai Uwe Broulik authored
      - Fix leak and crash when job goes away before being shown
      - Some emit and signal fixes
      - Always create services watchers
      - Update unity job percentage in destructor, fixes the progress lingering around when disabling in settings
        Also tell the world that we're merely proxying a job progress
      - Don't hardcode KIO error codes
      - Honor "show critical on top of full screen" setting
      - Don't show generic "dialog-information" icon, it's pointlessly generic
  31. 06 May, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Address review comments and other clean up · 86260aba
      Kai Uwe Broulik authored
      * Use index(n, m, parent) instead of parent.child(n, m)
      * Update unity count when job is closed without stopping it first
      * Iterate whole dataChanged range [topLeft, bottomRight] when group is resolved
      * Generate roleNames from meta object
      * Use checkIndex()
      * Increase default timeout for notifications with thumbnail
      * Improved keyboard nav, support Home/End, let Return open thumbnail
  32. 24 Apr, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Address review comments and some more cleanups · 4269a3b4
      Kai Uwe Broulik authored
      * Make dataengines work fully standalone
      * Fix panel icon sizing
        There's still an issue with the popup size when resizing the vertical panel smaller so it collapses
      * Implement keyboard navigation for the list with focus hacks...
        Delete key closes notifications or groups, Arrow left/right expand/collapse groups, Enter invokes default action, if any
      * Fix DND times that are supposed to be hidden showing
        ModelContextMenu doesn't respect "visible" property
      * Move "Notifications" header to ListView header so it scrolls away and leaves more room for the notifications in systray popup
      * Fix finished jobs in history showing as failed when app is closed
      * Don't remember apps that spawned jobs, only for notifications
      * Use CriticalNotification window type (patches pending)
  33. 12 Apr, 2019 2 commits
    • Kai Uwe Broulik's avatar
      Kill kuiserver · 08f894ca
      Kai Uwe Broulik authored
      It is supposed to broadcast application job progress to multiple interested parties.
      However, effectively it was just plasmashell. Cut the middleman, including its never finished and unused UI,
      and talk to plasmashell directly.
      The applicationjobs dataengine is adjusted to use the new infrastructure instead.
      Since it works only in the same process now, Unity launcher API is used to at least broadcast basic
      application progress information for use in e.g. Latte Dock.
      Also, introduce JobViewServerV2 and JobViewV3 APIs which are using desktop entries for identification rather
      than application names, and more importantly are extensible using a QVariantMap hints, so adding new
      fields in the future should be significantly less painful with Frameworks, Applications, and Plasma all having
      their own release schedule. :)
    • Kai Uwe Broulik's avatar
      More cleanups and finish · 789eedc5
      Kai Uwe Broulik authored
      * Ship some more default rules in plasmanotifyrc
      * Improved do not disturb menu (add "for 4 hours" and "until disabled")
      * Expand unread notifications by default, overall improved expansion/collapse handling
      * Show unread count in panel and reset when plasmoid is closed again
      * Move notification sanitizer and its test from dataengine to lib
      * Load pixmaps into model also for files and limit their physical size
      * Enforce maximum limit for notifications (1000...)
  34. 05 Apr, 2019 1 commit
  35. 04 Apr, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Final touches · 2d1b66fb
      Kai Uwe Broulik authored
      - Rename some of the classes:
        NotificationServer -> Server (there's namespaces, you know)
        NotificationModel -> NotificationsModel (so it's plural like JobsModel)
      - Introduce NotificationGroupingCollapse
      - Wire up PulseAudio-qt for eventual notification silence in dnd mode
      - Touch up notification looks
        - Add indentation and "line" for grouped plasmoids
        - Rethink "show more" button to be at the end
        - Fix buttons overlapping
        - Remove NotificationDelegate item and do those few adjustments in FullRepresentation
      - Cleanup job details, handle when processed > total
      - Use States {} more
      - Show low urgency popups by default but don't add them to history