diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/uicustomicon.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/uicustomicon.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/uicustomicon.cpp b/SQLiteStudio3/guiSQLiteStudio/uicustomicon.cpp new file mode 100644 index 0000000..f72eb35 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/uicustomicon.cpp @@ -0,0 +1,30 @@ +#include "uicustomicon.h" +#include "iconmanager.h" +#include <QLabel> +#include <QAbstractButton> + +#define TRY_ICON_WITH(Type, Widget, Method, Icon) \ + if (dynamic_cast<Type*>(Widget))\ + {\ + dynamic_cast<Type*>(Widget)->Method(Icon);\ + return;\ + } + +UiCustomIcon::UiCustomIcon() +{ +} + +const char* UiCustomIcon::getPropertyName() const +{ + return "customIcon"; +} + +void UiCustomIcon::handle(QWidget* widget, const QVariant& value) +{ + QString iconName = value.toString(); + QIcon* icon = ICONMANAGER->getIcon(iconName); + if (!icon) + return; + + TRY_ICON_WITH(QAbstractButton, widget, setIcon, *icon); +} |
