pgLab/pglab/IconColumnDelegate.h
eelke a99f059b70 Added list of constraints to the tables page.
Last column shows the full textual definition until I have decided on
a better way to visualize the details.
2017-12-30 13:02:40 +01:00

29 lines
802 B
C++

#ifndef ICONCOLUMNDELEGATE_H
#define ICONCOLUMNDELEGATE_H
#include <QStyledItemDelegate>
#include <map>
/** This class asumes that the string values supplies for the column data
* can be Resolved by QIcon to an actual icon. Icons are cached and reused.
*
*/
class IconColumnDelegate: public QStyledItemDelegate {
public:
IconColumnDelegate(QWidget *parent = nullptr);
~IconColumnDelegate();
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
QSize sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const override;
void clearCache();
private:
using t_IconCache = std::map<QString, QIcon*>;
mutable t_IconCache m_Icons;
QIcon* getIcon(const QString &name) const;
};
#endif // ICONCOLUMNDELEGATE_H