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.
This commit is contained in:
parent
22db22c6b1
commit
a99f059b70
27 changed files with 663 additions and 22 deletions
59
pglab/IconColumnDelegate.cpp
Normal file
59
pglab/IconColumnDelegate.cpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#include "IconColumnDelegate.h"
|
||||
#include <QPainter>
|
||||
|
||||
IconColumnDelegate::IconColumnDelegate(QWidget *parent)
|
||||
: QStyledItemDelegate(parent)
|
||||
{
|
||||
}
|
||||
|
||||
IconColumnDelegate::~IconColumnDelegate()
|
||||
{
|
||||
clearCache();
|
||||
}
|
||||
|
||||
void IconColumnDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
if (index.data().canConvert<QString>()) {
|
||||
QString icon_name = qvariant_cast<QString>(index.data());
|
||||
|
||||
|
||||
QIcon* icon = IconColumnDelegate::getIcon(icon_name);
|
||||
if (icon) {
|
||||
if (option.state & QStyle::State_Selected)
|
||||
painter->fillRect(option.rect, option.palette.highlight());
|
||||
icon->paint(painter, option.rect);
|
||||
}
|
||||
else
|
||||
QStyledItemDelegate::paint(painter, option, index);
|
||||
|
||||
} else {
|
||||
QStyledItemDelegate::paint(painter, option, index);
|
||||
}
|
||||
}
|
||||
|
||||
QSize IconColumnDelegate::sizeHint(const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
return QSize(16, 16);
|
||||
}
|
||||
|
||||
|
||||
void IconColumnDelegate::clearCache()
|
||||
{
|
||||
for (auto &e : m_Icons)
|
||||
delete e.
|
||||
second;
|
||||
m_Icons.clear();
|
||||
}
|
||||
|
||||
QIcon* IconColumnDelegate::getIcon(const QString &name) const
|
||||
{
|
||||
auto fr = m_Icons.find(name);
|
||||
if (fr == m_Icons.end()) {
|
||||
// load and insert icon
|
||||
QIcon *icon = new QIcon(name);
|
||||
fr = m_Icons.emplace(name, icon).first;
|
||||
}
|
||||
return fr->second;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue