KOverlayIconPlugin Class

Base class for overlay icon plugins. More...

Header: #include <KOverlayIconPlugin>
CMake: find_package(KF6 REQUIRED COMPONENTS KIO)
target_link_libraries(mytarget PRIVATE KF6::KIOCore)
Inherits: QObject

Public Functions

virtual QStringList getOverlays(const QUrl &item) = 0

Signals

void overlaysChanged(const QUrl &url, const QStringList &overlays)

Detailed Description

Enables file managers to show custom overlay icons on files.

This plugin can be created and installed through kcoreaddons_add_plugin

 kcoreaddons_add_plugin(myoverlayplugin SOURCES myoverlayplugin.cpp INSTALL_NAMESPACE "kf6/overlayicon")
 target_link_libraries(myoverlayplugin KF6::KIOCore)

The C++ file should look like this:

 #include <KOverlayIconPlugin>

 class MyOverlayPlugin : public KOverlayIconPlugin
 {
     Q_PLUGIN_METADATA(IID "org.kde.overlayicon.myplugin")
     Q_OBJECT

 public:
     MyOverlayPlugin() {
     }

     QStringList getOverlays(const QUrl &url) override {
         // Implement your logic
     }
 };

 #include "myoverlayplugin.moc"

Member Function Documentation

[pure virtual] QStringList KOverlayIconPlugin::getOverlays(const QUrl &item)

Returns a list of overlay icons to add to a file This can be a path to an icon, or the icon name

This function is called from the main thread and must not block. It is recommended to have a cache. And if the item is not in cache just return an empty list and call the overlaysChanged when the information is available.

[signal] void KOverlayIconPlugin::overlaysChanged(const QUrl &url, const QStringList &overlays)

Emit this signal when the list of overlay icons changed for a given URL