-class Icon : public QIcon {
-
- public:
- Icon();
- explicit Icon(const QString &iconName);
- explicit Icon(const QIcon& copy);
-
- Icon& operator=(const Icon &other);
-};
-
-#else /* HAVE_KDE */
-#include <KIcon>
-class Icon : public KIcon {
-
- public:
- inline Icon() : KIcon() {};
- inline explicit Icon(const QString &iconName) : KIcon(iconName) {};
- inline explicit Icon(const QIcon& copy) : KIcon(copy) {};
-};
-
-#endif /* HAVE_KDE */
+QIcon get(const QString &iconName, const QString &fallbackPath = {});
+
+/**
+ * Gets an icon from the current icon theme.
+ *
+ * If the theme does not provide any of the given icon names, tries to load the
+ * icon from the fallback path, if given.
+ *
+ * If no icon can be found, a warning is displayed and a null icon returned.
+ *
+ * @param iconNames List of icon names (first match wins)
+ * @param fallbackPath Full path to a fallback icon
+ * @returns The requested icon, if available
+ */
+QIcon get(const std::vector<QString> &iconNames, const QString &fallbackPath = {});