1. 03 Apr, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Implement do not disturb mode and grouping collapse · 9cee05eb
      Kai Uwe Broulik authored
      - Rework compact representation animations a bit
        For some reason they often got stuck
      - Implement do not disturb mode for applications
      - Add fallback timeout to ensure notifications eventually timeout
        Otherwise when disabling dnd mode you will get spammed
        and we would also keep apps running indefinitely waiting for the notification to close
      - Install plasmanotifyrc with some sane defaults
        So far only lets Spectacle show its screenshot notifications in dnd mode
      - Introduce Closable role rather than hardcoding that behavior everywhere in the view
      - Better app identification/grouping for jobs
      - Be more lenient about app identification (firefox will match Firefox, too)
      - Cleanups
      9cee05eb
  2. 02 Apr, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Implement do not disturb mode, more history work, cleanup · 54b4fc09
      Kai Uwe Broulik authored
      - Add basic do not disturb mode
        Can set a time until it enabled, persisted across reboots
        Whitelist for apps missing right not
        Inhibition API not wired up yet
      - d-pointer JobDetails
      - Use KFilePlacesModel for prettier destUrl reporting "Copying to Home"
      - Expose default action in history as button
      - Improved right-to-left language support
      - Let NotificationServer just lurk (without registering a service)
      - Catch when plasmoid is deleted and stick to another one
      54b4fc09
  3. 01 Apr, 2019 6 commits
    • Kai Uwe Broulik's avatar
      Replace old notification plasmoid by new one · e93bba28
      Kai Uwe Broulik authored
      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!
      e93bba28
    • Kai Uwe Broulik's avatar
    • Kai Uwe Broulik's avatar
      Completely wire up old dataengine and further touches · 723b6d13
      Kai Uwe Broulik authored
      - Old dataengine is fully functional now
        Except the inhibition stuff but I'm not sure if this is worth keeping the way it is
      - "More" menu opens on press now and highlights
      - Invoking any action closes the notification now
        KNotification explicitly does that for us but e.g. GTK does not
      - Add clear button for history
      - Restore kbroadcastnotification support
      - Allow forgetting seen application (for KCM)
      - Let users "create" notifications by calling NotificationServer::add
      - When no application name is provided look up the sender's process name as last resort
      - Add kdebugsettings categories file
      723b6d13
    • David Redondo's avatar
      Allow single images to be excluded from the slideshow · b1ae890a
      David Redondo authored and Nate Graham's avatar Nate Graham committed
      Summary:
      This allows to exlude single images from the slideshow by unchecking the little checkbox in the top right corner.
      Feature or todo?: If a folder is removed I don't touch the unchecked Slides. So the list could get very big but if a formerly removed folder is
      added again an excluded image will be excluded again.
      
      Test Plan:
      {F6684113}
      - Uncheck some images
      - They don't appear in the slideshow
      
      Reviewers: #plasma, #vdg, ngraham, davidedmundson
      
      Reviewed By: #plasma, #vdg, ngraham, davidedmundson
      
      Subscribers: davidedmundson, filipf, abetts, ngraham, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D19687
      b1ae890a
    • Friedrich W. H. Kossebau's avatar
      Do not try to set shadows for panels if theme does not provide elements · 2a63696f
      Friedrich W. H. Kossebau authored
      Summary:
      Older Plasma themes, which are still offered also for current Plasma 5 e.g.
      from store.kde.org, are missing out "shadow-*" elements for
      "widgets/panel-background". The old code of the PanelShadows class does not
      handle that case though, and as result for X11 sets a _KDE_NET_WM_SHADOW
      property with "0" for most of the pixmaps due to them being an empty pixmap
      in at least one dimension (except for the emtpy corner pixmap which is
      always 1,1). The resulting behaviour with current KWin (X11) is this:
      * when starting a Plasma shell with a theme without panel shadow elements,
        KWin does not show shadows
      * when switching from a theme with shadow elements to one without, the
        shadow of the previous theme is continued to be used.
      Reason is that KWin when parsing that property cancels the parsing when it
      comes across a "0"/null id for a shadow pixmap, without further error
      handling, so either does not create a shadow or keeps the old.
      
      This patch catches the case of themes without any panel shadow elements and
      only sets the _KDE_NET_WM_SHADOW property or wayland shadow if there are
      shadows, otherwise removes them if needed.
      
      Test Plan:
      Switch between Plasma themes with and without separate shadow elements
      defined (e.g. Breeze <-> Fluffy Bunny).
      
      Reviewers: #plasma, mart
      
      Reviewed By: #plasma, mart
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D20051
      2a63696f
    • Kai Uwe Broulik's avatar
      Improvements and cleanups all over the place · 1c4de1d4
      Kai Uwe Broulik authored
      - Improve compact reprsentation
      - Keep popup open during interaction (context menu, drag)
      - Improve "ago" label (e.g. show "Last Sunday")
      - Improve group visuals (still pretty much WIP)
      - Hide popups when interacted (opened file, triggered file action, etc)
        Closing when having invoked an action isn't implemented yet but is probably neccessary
      - Make autohide job popup setting work
      - Set critical AlwaysOnTop (requires KWin patch)
      - Improve error handling in ThumbnailStrip
        Show file icon if thumbnail generation failed instead of a blank space
      - Add heuristic for popup placement and make custom setting work
      - Add deviceName and displayApplicationName (for KDE Connect)
        So it can show from which device and which app this notification originally came from
      - Improved service discovery (and defaultComponent handling)
        Quite a few notifications, e.g. DrKonqi crashes are in plasma_workspace.notifyrc
        When we get an event like this, show the original app instead
      - Make blacklist for popup and history work
      - Add "lastRead" property for "unread" handling vs "expired" (latter likely to be dropped)
      - Add sortMode so history is strictly sorted by date (it's grouped after all)
      - Begin work on do not disturb UI in plasmoid
      1c4de1d4
  4. 26 Mar, 2019 6 commits
  5. 25 Mar, 2019 4 commits
  6. 23 Mar, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Cleanup, export, and start on settings and inhibition API · 79427e3d
      Kai Uwe Broulik authored
      - Cleanup, pimpl NotificationServer and Notification for export
      - Wire the old dataengine up to use it for compat:
        it shows notifications but is otherwise pretty broken right now
      - Start writing kconfigxt and Settings code (no real code yet)
      - Add a Inhibition DBus interface (no actual server-side code yet)
      - Group notifications by application
        Pretty much tasks grouping model from libtaskmanager slightly adjusted
      - Let widget take full height when expanded in vertical panel "side bar usecase"
      - Fix bugs here and there
      79427e3d
  7. 22 Mar, 2019 2 commits
  8. 21 Mar, 2019 3 commits
    • Kai Uwe Broulik's avatar
      Implement more missing stuff and be more spec-compliant · 3251c280
      Kai Uwe Broulik authored
      - Support replacing notifications properly
        - Now that we have nice models we can finally do the replacing in the way the spec
        asks for "atomically (ie with no flicker or other visual cues)"
      - Catch some more cases in notification details text (trash:/ stuff)
      - Prefer notifyrc name over desktop entry name in case a service within another app sends
        an event (e.g. Discover notifier in Plasma, KNotification automatically sends desktop-entry
        of the parent app)
      - Implement x-kde-urls thumbnailer with drag and drop and fancy blur
        Originally intended to be able to show multiple files but in practise only used for
        single pictures, so the code is significantly simplified for that usecase
      - Add "Open" feature for finished job notification, offers a context menu as well with
        all the KFileItemActions (component from the Thumbnailer)
      - Copy description labels to clipboard
        Once menu opens the update is paused so the text you copy is what you see
      - Fixup sanitizer so we can properly collapse notifications without body text
      
      ... and more
      3251c280
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 1fde3656
      Script Kiddy authored
      In case of conflict in i18n, keep the version of the branch "ours"
      To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
      1fde3656
    • Kai Uwe Broulik's avatar
      fb620e07
  9. 20 Mar, 2019 3 commits
  10. 19 Mar, 2019 1 commit
    • Kai Uwe Broulik's avatar
      Implement all the things · 35c575be
      Kai Uwe Broulik authored
      - Notification action buttons
      - Custom icon pixmaps in notifications
      - Popup handling
      - Notification urgency (low isn't shown as popup TBD, critical always no matter what)
      - History stuff (only expired notifications end up there, none that were closed or revoked)
      - Text selection and copy for body text
      - Basic tray icon support
      and many other things
      
      Application jobs are shown as part of regular notifications:
      - They show up as little popup that can be hidden in the history
      - When finished progress popup turns into a notification
      
      There's still some glitches and missing features, notably
      - Screenshot thumbnails
      - "Open" functionality for finished jobs
      - History layout
      - code cleanup
      - and basically every configuration option
      35c575be
  11. 18 Mar, 2019 2 commits
    • Harald Sitter's avatar
      Merge branch 'Plasma/5.15' · 14671459
      Harald Sitter authored
      14671459
    • Harald Sitter's avatar
      [service runner] throw out kde3 "compat" code · 1f3ab6f7
      Harald Sitter authored
      Summary:
      Desktop files such as kde/foo.desktop are identified as kde-foo.desktop
      because of the menu spec
      
      ```
      If the directory contains sub-directories then these sub-directories should be (recursively) scanned as well. The name of the subdirectory should be added as prefix to the desktop-file id together with a dash character ("-")
      ```
      
      the runner therefore broadly assumed that kde-foo.desktop is always
      the desktop file kde/foo.desktop and since kde/ was only used up to KDE3
      this assumption formed the basis for sepcial KDE3 compat handling. that is
      of course wrong because a service might just as well actually have a
      prefix and be actually called kde-foo.desktop rather than
      kde/foo.desktop. Specific example: kde-gtk-config.desktop
      
      seeing as this is ancient compatibility code that is actually wrong,
      the easiest solution seems to be dropping the code entirely (and thus no
      longer assume kde- has some special meaning).
      
      (also I didn't find a way to get the underlying filename of a kservice,
       so making the code not wrong seems non-trivial)
      
      CHANGELOG: the GTK+ settings module now correctly appears in krunner and kickoff
      BUG: 383287
      
      Test Plan: gtk kcm correctly shows up in both kickoff and krunner searches
      
      Reviewers: broulik
      
      Reviewed By: broulik
      
      Subscribers: GB_2, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D19788
      1f3ab6f7
  12. 17 Mar, 2019 1 commit
  13. 16 Mar, 2019 5 commits
  14. 14 Mar, 2019 4 commits