X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Ficon.h;h=18ec665c051066763da7b6d599ab23f1f1157781;hp=2586f824ef42b80dbafae0af827c24ae27c52494;hb=c27d5bfbe80bfeb583a25404f4ccee4b70b010e0;hpb=b99ff5e5d79924cffe794574cab7c92ad99cc2a2 diff --git a/src/uisupport/icon.h b/src/uisupport/icon.h index 2586f824..18ec665c 100644 --- a/src/uisupport/icon.h +++ b/src/uisupport/icon.h @@ -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 * @@ -15,27 +15,44 @@ * 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 + +#include #include +#include -/// 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. - */ -class Icon : public QIcon { +namespace icon { - public: - Icon(); - explicit Icon(const QString &iconName); - explicit Icon(const QIcon& copy); +/** + * 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 + */ +QIcon get(const QString &iconName, const QString &fallbackPath = {}); - Icon& operator=(const Icon &other); -}; +/** + * 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 &iconNames, const QString &fallbackPath = {}); -#endif +}