QssParser: Interpret "oblique" as italic
[quassel.git] / src / uisupport / icon.h
index beed48d..18ec665 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef ICON_H_
-#define ICON_H_
+#pragma once
 
-#ifndef HAVE_KDE
+#include <vector>
 
 #include <QIcon>
-
-/// A very thin wrapper around QIcon
-/** This wrapper class allows us to load an icon by its theme name rather than its full file name.
- *  The overloaded ctor uses IconLoader to locate an icon with this basename in the current theme
- *  or in Qt Resources.
+#include <QString>
+
+namespace icon {
+
+/**
+ * Gets an icon from the current icon theme.
+ *
+ * If the theme does not provide the icon, 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 iconName     Icon name
+ * @param fallbackPath Full path to a fallback icon
+ * @returns The requested icon, if available
  */
-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 = {});
 
-#endif
+}