Kevin Ottens [Thu, 8 Oct 2020 13:54:32 +0000 (15:54 +0200)]
Add KeepBothVersions as a possible solution to ConflictSolver
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 7 Oct 2020 14:30:43 +0000 (16:30 +0200)]
Move some of the SocketApi conflict handling in a ConflictSolver class
The socket api move and delete commands are not strictly about conflicts
since they also deal with files which couldn't be uploaded for some
other reason. Still the new ConflictSolver could be used in those cases.
This opens the door at reusing that logic in other places.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 7 Oct 2020 15:47:48 +0000 (17:47 +0200)]
Repair the canAddToDir logic
This could only work at the root of the sync folder where the record for
the parent folder would be invalid. Otherwise the negation would be
wrong... assuming you can add a file only if the permission is not
there.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Christian Kamm [Wed, 7 Oct 2020 12:51:04 +0000 (14:51 +0200)]
SocketAPI: Introduce conflict resolution actions #6252
For conflicts generally as well as new files in read-only directories
the context menu will now present delete and move options.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Christian Kamm [Tue, 22 May 2018 09:49:02 +0000 (11:49 +0200)]
FileSystem: make removeRecursively() reusable
We want to use it for deleting directory conflicts.
Christian Kamm [Tue, 22 May 2018 08:40:45 +0000 (10:40 +0200)]
FileSystem: Fix bad indentation
Kevin Ottens [Thu, 22 Oct 2020 13:08:01 +0000 (15:08 +0200)]
Merge pull request #2580 from nextcloud/delay-settingsdialog-init
Delay initialization of SettingsDialog
Michael Schuster [Thu, 22 Oct 2020 02:14:09 +0000 (04:14 +0200)]
Fix crash in SettingsDialog with delayed initialization
setWindowFlags triggered changeEvent, thus causing a crash in customizeStyle.
This fix should be kept even if we decide against delayed init in the future.
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Thu, 22 Oct 2020 01:57:29 +0000 (03:57 +0200)]
Delay initialization of SettingsDialog
ownCloudGui::slotShowSettings already got what it takes to create it only when we try to show it for the first time.
This however has some implications:
Pros:
- Only created when needed, while testing saved ca. 20 MB of RAM and got freed again after closing the dialog.
- Since we defaulted to the new Tray UI from 3.0, this is an added bonus for users don't opening the settings.
Cons:
- Resources like the avatar image have to be refetched everytime the dialog is recreated.
This may be desired as well, because it ensures displaying no outdated info (e.g. on connection issues).
Signed-off-by: Michael Schuster <michael@schuster.ms>
Nextcloud bot [Thu, 22 Oct 2020 03:39:17 +0000 (03:39 +0000)]
[tx-robot] updated from transifex
Kevin Ottens [Wed, 21 Oct 2020 12:13:40 +0000 (14:13 +0200)]
Merge pull request #2575 from nextcloud/expose_branding_values_to_qtquick
Expose branding values to qtquick
Kevin Ottens [Wed, 21 Oct 2020 11:46:51 +0000 (13:46 +0200)]
Use the Theme colors for the header part of the window
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 21 Oct 2020 11:46:38 +0000 (13:46 +0200)]
Expose Theme on the QML side
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 21 Oct 2020 11:46:04 +0000 (13:46 +0200)]
Expose the branding related members of Theme as properties
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 21 Oct 2020 11:40:42 +0000 (13:40 +0200)]
Don't hardcode the color of text in the header
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 21 Oct 2020 09:24:06 +0000 (11:24 +0200)]
Get rid of ncBlueHover
Use a similar trick of a semi-transparent rectangle on top when the
mouse area is hovered. This way it will always work whatever is the
background color.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 21 Oct 2020 08:16:14 +0000 (10:16 +0200)]
Merge pull request #2572 from nextcloud/avoid_depth_infinity_propfind_for_e2ee
Avoid depth infinity propfind for e2ee
Kevin Ottens [Tue, 20 Oct 2020 15:05:57 +0000 (17:05 +0200)]
Don't use depth infinity anymore to get the folders e2ee status
This way we avoid the expensive SQL query on the server at the price of
more round-trips since we're doing the recursive traversal by hand now.
Also it turns out this depth was used for all the other propfind calls
during sync when we want fresher information regarding a folder. This
was very inefficient in all cases and won't happen anymore.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 20 Oct 2020 14:51:38 +0000 (16:51 +0200)]
Make sure jobs don't outlive ClientSideEncryption
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 20 Oct 2020 14:48:54 +0000 (16:48 +0200)]
Factor out the logic to start a new e2ee status job
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 20 Oct 2020 14:36:10 +0000 (16:36 +0200)]
Mention the folder we listed in the debug logs
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 20 Oct 2020 14:33:46 +0000 (16:33 +0200)]
Change the way we store the job result
If there's more than one job we need to unite the maps not simply overwrite
them.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 20 Oct 2020 14:27:20 +0000 (16:27 +0200)]
Start managing a list of GetFolderEncryptStatusJob
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 20 Oct 2020 14:15:56 +0000 (16:15 +0200)]
Add a way to know which folder was listed for encrypted status
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Nextcloud bot [Wed, 21 Oct 2020 03:39:44 +0000 (03:39 +0000)]
[tx-robot] updated from transifex
Kevin Ottens [Tue, 20 Oct 2020 14:38:13 +0000 (16:38 +0200)]
Merge pull request #2568 from nextcloud/fix-macos-crash-403-folder-view
Fix crash when clicking on folder with status 403 in the main dialog.
Camila San [Tue, 20 Oct 2020 10:21:12 +0000 (12:21 +0200)]
Fix crash when clicking on folder with status 403 in the main dialog.
LsColJob was still being used after delete was called.
Signed-off-by: Camila San <hello@camila.codes>
Nextcloud bot [Tue, 20 Oct 2020 03:38:46 +0000 (03:38 +0000)]
[tx-robot] updated from transifex
Kevin Ottens [Mon, 19 Oct 2020 15:09:55 +0000 (17:09 +0200)]
Merge pull request #2551 from nextcloud/fix_share_dialog_animation_for_enforced_password_policy
Fix share dialog animation for enforced password policy
Kevin Ottens [Wed, 14 Oct 2020 16:41:35 +0000 (18:41 +0200)]
Stop the animation if we got an error message
Otherwise it would spin forever while we know we're not doing any work
anymore since we got a message from the server.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 14 Oct 2020 16:37:34 +0000 (18:37 +0200)]
Inform _emptyShareLinkWidget of linkShareRequiresPassword signals
All the other ShareLinkWidgets process that signal (which allows to
display error messages for instance) but not that one for some reason.
That being said it might need to deal with an enforced password
situation.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Wed, 14 Oct 2020 16:35:12 +0000 (18:35 +0200)]
Emit last to avoid use after delete crash
It turns out the shareDeleted() signal is connected to a function
cleaning up the ShareLinkWidget holding the last shared pointer to the
Share object. Since we use member variables for calling updateFolder()
this would lead to using deleted objects.
Just swap the call and the signal to have everything back in order.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Nextcloud bot [Sat, 17 Oct 2020 03:38:33 +0000 (03:38 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Fri, 16 Oct 2020 03:39:07 +0000 (03:39 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Thu, 15 Oct 2020 03:37:51 +0000 (03:37 +0000)]
[tx-robot] updated from transifex
Michael Schuster [Thu, 15 Oct 2020 00:15:42 +0000 (02:15 +0200)]
Update comments
Everyone uses their private mail, so ensure people can get in touch.
Signed-off-by: Michael Schuster <michael@schuster.ms>
Nextcloud bot [Wed, 14 Oct 2020 03:41:57 +0000 (03:41 +0000)]
[tx-robot] updated from transifex
Kevin Ottens [Tue, 13 Oct 2020 13:23:56 +0000 (15:23 +0200)]
Merge pull request #2534 from nextcloud/connection_wizard_improvements
Connection wizard improvements
Kevin Ottens [Tue, 13 Oct 2020 05:23:46 +0000 (07:23 +0200)]
Ensure we use the app name in the GUI
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Thu, 8 Oct 2020 15:39:24 +0000 (17:39 +0200)]
Fix the secure lock label aspect
Make sure we got a fixed size for that label. Also ensure that the
pixmap we display there is properly scaled to fit while maintaining the
aspect ratio.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Thu, 8 Oct 2020 15:25:12 +0000 (17:25 +0200)]
Hide the slideshow when going to the login page
This is indeed very distracting otherwise.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Thu, 8 Oct 2020 15:17:01 +0000 (17:17 +0200)]
Add a label explaining the server address field
This is as discussed in #1160
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Thu, 8 Oct 2020 15:13:01 +0000 (17:13 +0200)]
Improve wording on the wizard buttons
This is as discussed on #1158
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Nextcloud bot [Tue, 13 Oct 2020 03:40:16 +0000 (03:40 +0000)]
[tx-robot] updated from transifex
Kevin Ottens [Mon, 12 Oct 2020 15:31:11 +0000 (17:31 +0200)]
Merge pull request #2543 from renyhp/patch-2
Update bookmarks location
renyhp [Sat, 10 Oct 2020 14:15:26 +0000 (16:15 +0200)]
Update bookmarks location
Signed-off-by: renyhp <renyhp@disroot.org>
Kevin Ottens [Mon, 12 Oct 2020 15:00:49 +0000 (17:00 +0200)]
Merge pull request #2542 from nicolasfella/puzzel
Avoid string translation puzzle
Nicolas Fella [Fri, 9 Oct 2020 22:26:18 +0000 (00:26 +0200)]
Avoid string translation puzzle
Combining translated strings like this makes them hard to translate since the order of words is different between languages.
Use proper placeholder strings instead.
Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
Kevin Ottens [Mon, 12 Oct 2020 13:33:38 +0000 (15:33 +0200)]
Merge pull request #2541 from nicolasfella/work/nullptrflags
Don't use nullptr for QFlags
Nicolas Fella [Fri, 9 Oct 2020 20:56:45 +0000 (22:56 +0200)]
Don't use nullptr for QFlags
This fixes some deprecation warnings
Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
Kevin Ottens [Mon, 12 Oct 2020 11:51:47 +0000 (13:51 +0200)]
Merge pull request #2221 from nicolasfella/declarative
Make QML code more declarative by using properties
Nicolas Fella [Tue, 21 Jul 2020 11:24:59 +0000 (13:24 +0200)]
Make QML code more declarative by using properties
By using properties and property bindings the QML code gets more declarative rather than imperative, which is considered better.
This patch:
- Introduces a currentUserId property in UserModel that replaces the equivalent Q_INVOKABLE call
- Introduces an avatar property in User that contains the avatar's image provider url without any fallback
- Introduces new image provider urls for fallback images
- Moves the fallback image selection to QML since we want different fallbacks according to where it is used
- Wires up the necessary signals to propagate a changing avatar
Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
Nextcloud bot [Mon, 12 Oct 2020 03:37:35 +0000 (03:37 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Sat, 10 Oct 2020 03:42:03 +0000 (03:42 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Fri, 9 Oct 2020 03:37:01 +0000 (03:37 +0000)]
[tx-robot] updated from transifex
Camila [Thu, 8 Oct 2020 15:21:04 +0000 (17:21 +0200)]
Merge pull request #2530 from nextcloud/repair_windows_build
Repair the Windows build
Kevin Ottens [Thu, 8 Oct 2020 13:58:29 +0000 (15:58 +0200)]
Export the WordList functions
Now that they are used from gui/ they need to be properly exported so
that linking doesn't fail when visibility is activated (only on our
Windows build it seems).
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Thu, 8 Oct 2020 10:42:17 +0000 (12:42 +0200)]
Merge pull request #2521 from nextcloud/use_friendly_user_agent_during_authentication
Use friendly user agent during authentication
Kevin Ottens [Wed, 7 Oct 2020 09:40:56 +0000 (11:40 +0200)]
Use setHeader instead of setRawHeader for the user agent
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 6 Oct 2020 15:28:20 +0000 (17:28 +0200)]
Use friendly user agent during webflow2 auth
This way the server displays a less scary string while granting access
from the browser. Also this same string will be used in the "Devices and
sessions" section of the server settings.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 6 Oct 2020 15:28:01 +0000 (17:28 +0200)]
Add a function for a more friendly user agent string
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 6 Oct 2020 14:54:07 +0000 (16:54 +0200)]
Don't force user agent if one is already set on the request
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Nextcloud bot [Thu, 8 Oct 2020 03:37:16 +0000 (03:37 +0000)]
[tx-robot] updated from transifex
Michael Schuster [Wed, 7 Oct 2020 15:12:02 +0000 (17:12 +0200)]
Merge pull request #2514 from nextcloud/make_it_easier_for_user_to_provide_debug_information
Make it easier for user to provide debug information
Kevin Ottens [Mon, 5 Oct 2020 19:56:42 +0000 (21:56 +0200)]
Also add build infos in the archive
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 17:45:47 +0000 (19:45 +0200)]
Also add the command line arguments in the archive
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 17:45:40 +0000 (19:45 +0200)]
Add a button to create a debug archive
This will harvest everything we might need for debugging purposes:
* config file
* sync journal dbs
* log files
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 17:20:26 +0000 (19:20 +0200)]
Add dependency on QtGuiPrivate
I'm not a huge fan of using private APIs but QZip is really the API with
the least hassles for our debug archive need. No external dependency and
we know it is generally available and stable despite the lack of
stability promise.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 17:36:25 +0000 (19:36 +0200)]
Expose more of the logger state
It is better to rely on the Logger state to know exactly where we're
logging. Indeed due to the the various ways to impact its state the
config alone might not now where we're logging.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 17:34:46 +0000 (19:34 +0200)]
Make sure --logfile has precedence on config
Since we changed the default in the config file and since log dir had
precedence on log file, the --logfile command line option wasn't doing
anything anymore.
We make sure it has an effect again overriding --logdir or the logDir
config entry.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 15:48:30 +0000 (17:48 +0200)]
Change the defaults for logging
Turn on the logging by default for everyone. Let's use a log dir within
the config directory of the application and have debug logs expiring
after a day.
This obviously means we'll generate quite some logs but with the
automated compression it shouldn't be too horrible. Obviously that
scales with the amount of files and syncs occurring. In our tests with a
large setup we're around 100 MB for a day worth of logs, this shouldn't
be too much of an issue on today's average desktop/laptop.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Michael Schuster [Wed, 7 Oct 2020 13:30:17 +0000 (15:30 +0200)]
Merge pull request #2520 from nextcloud/handle_askForOptionalPassword_capability
Handle ask for optional password capability
Kevin Ottens [Tue, 6 Oct 2020 12:01:53 +0000 (14:01 +0200)]
If askForOptionalPassword is enabled preset a random password
This is the same approach used on the server side. Turns out I quite
like it, this avoids popping up a dialog to the user and since she won't
know the password she'll have to set a new one anyway or disable it.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 6 Oct 2020 10:45:45 +0000 (12:45 +0200)]
Since we must ask for a password this can't be a default public link
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Tue, 6 Oct 2020 10:45:19 +0000 (12:45 +0200)]
Add sharePublicLinkAskOptionalPassword to Capabilities
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Nextcloud bot [Wed, 7 Oct 2020 03:36:23 +0000 (03:36 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Tue, 6 Oct 2020 03:36:51 +0000 (03:36 +0000)]
[tx-robot] updated from transifex
Michael Schuster [Mon, 5 Oct 2020 14:56:23 +0000 (16:56 +0200)]
Merge pull request #2512 from nextcloud/fix_updater_with_github_downloads
Handle redirects when downloading updates
Kevin Ottens [Mon, 5 Oct 2020 13:48:39 +0000 (15:48 +0200)]
Handle redirects when downloading updates
This is necessary for downloads coming from Github for instance. They
are systematically redirected and we'd just fail the download.
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Kevin Ottens [Mon, 5 Oct 2020 07:43:00 +0000 (09:43 +0200)]
Merge pull request #2500 from nextcloud/docs-msi
Windows MSI: Update Docs & add SKIPAUTOUPDATE property
Michael Schuster [Fri, 2 Oct 2020 18:28:36 +0000 (20:28 +0200)]
Docs: Be slightly more modern and use 64-bit examples
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Fri, 2 Oct 2020 00:36:29 +0000 (02:36 +0200)]
Windows MSI: Add SKIPAUTOUPDATE property for the skipUpdateCheck setting
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Tue, 29 Sep 2020 17:11:01 +0000 (19:11 +0200)]
Docs: Use our app name in the MSI docs
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Tue, 29 Sep 2020 17:05:39 +0000 (19:05 +0200)]
Windows MSI: Stay compatible with the upstream "StartMenuShortcuts" feature
Even though we only create a program shortcut in the Start Menu, try to make administrators lives easier by not diverging feature and option naming.
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Tue, 29 Sep 2020 17:04:08 +0000 (19:04 +0200)]
Docs: Adopt latest MSI doc enhancements from upstream master
Signed-off-by: Michael Schuster <michael@schuster.ms>
Dominik Schmidt [Tue, 29 Sep 2020 16:21:29 +0000 (18:21 +0200)]
Docs: Adopt upstream commit
fe04300 for MSI installation
See: https://github.com/owncloud/client/commit/
fe043006c8f4a43b033243a85c294d21c7450238
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Tue, 29 Sep 2020 15:59:39 +0000 (17:59 +0200)]
Docs: Update macOS version info
Signed-off-by: Michael Schuster <michael@schuster.ms>
Nextcloud bot [Mon, 5 Oct 2020 03:38:36 +0000 (03:38 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Sun, 4 Oct 2020 03:38:54 +0000 (03:38 +0000)]
[tx-robot] updated from transifex
Nextcloud bot [Sat, 3 Oct 2020 03:40:51 +0000 (03:40 +0000)]
[tx-robot] updated from transifex
Michael Schuster [Fri, 2 Oct 2020 17:30:26 +0000 (19:30 +0200)]
Merge pull request #2497 from nextcloud/fix/mac-folderwatcher-memory-leak
macOS: Fix memory leak in FolderWatcherPrivate::startWatching
Michael Schuster [Thu, 1 Oct 2020 21:38:13 +0000 (23:38 +0200)]
Fix source file access modes
Signed-off-by: Michael Schuster <michael@schuster.ms>
Michael Schuster [Tue, 14 Jul 2020 06:54:07 +0000 (08:54 +0200)]
macOS: Fix memory leak in FolderWatcherPrivate::startWatching
Signed-off-by: Michael Schuster <michael@schuster.ms>
Nextcloud bot [Fri, 2 Oct 2020 03:32:41 +0000 (03:32 +0000)]
[tx-robot] updated from transifex
Michael Schuster [Thu, 1 Oct 2020 22:07:45 +0000 (00:07 +0200)]
Merge pull request #2478 from Aldaris1985/patch-1
Update propagateupload.cpp
Aldaris1985 [Mon, 28 Sep 2020 11:00:30 +0000 (19:00 +0800)]
Update propagateupload.cpp
Typo corrected.
Kevin Ottens [Thu, 1 Oct 2020 11:03:09 +0000 (13:03 +0200)]
Merge pull request #2493 from nextcloud/kesselb-patch-1
Delete FUNDING.yml
kesselb [Thu, 1 Oct 2020 09:21:12 +0000 (11:21 +0200)]
Delete FUNDING.yml
Nextcloud bot [Thu, 1 Oct 2020 03:40:09 +0000 (03:40 +0000)]
[tx-robot] updated from transifex
Kevin Ottens [Wed, 30 Sep 2020 12:02:27 +0000 (14:02 +0200)]
Merge pull request #2487 from nextcloud/add-talk-icon
Add a clickable icon for Talk notifications.