fix: make grid items taller
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
parent
e230c5084e
commit
c67da2ee5f
@ -19,12 +19,24 @@
|
||||
#include "InstanceDelegate.h"
|
||||
#include "InstanceList.h"
|
||||
|
||||
InstanceDelegate::InstanceDelegate(QObject* parent, int iconSize) : QStyledItemDelegate(parent), m_iconSize(iconSize) {}
|
||||
InstanceDelegate::InstanceDelegate(QObject* parent, int iconSize, bool isGrid)
|
||||
: QStyledItemDelegate(parent), m_iconSize(iconSize), m_isGrid(isGrid)
|
||||
{}
|
||||
|
||||
void InstanceDelegate::initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const
|
||||
{
|
||||
QStyledItemDelegate::initStyleOption(option, index);
|
||||
if (index.column() == InstanceList::NameColumn) {
|
||||
option->decorationSize = QSize(m_iconSize, m_iconSize);
|
||||
if (m_isGrid) // FIXME: kinda hacky way to add vertical padding. This assumes that the icon is square in the first place
|
||||
option->decorationSize.rheight() += 8;
|
||||
}
|
||||
}
|
||||
|
||||
QSize InstanceDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||
{
|
||||
QSize s = QStyledItemDelegate::sizeHint(option, index);
|
||||
if (m_isGrid)
|
||||
return s.expandedTo(QSize(m_iconSize * 2, m_iconSize * 2));
|
||||
return s;
|
||||
}
|
||||
|
@ -24,10 +24,12 @@ class InstanceDelegate : public QStyledItemDelegate {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
InstanceDelegate(QObject* parent = 0, int iconSize = 48);
|
||||
InstanceDelegate(QObject* parent = 0, int iconSize = 48, bool isGrid = false);
|
||||
|
||||
void initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const override;
|
||||
QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
|
||||
|
||||
private:
|
||||
int m_iconSize;
|
||||
bool m_isGrid;
|
||||
};
|
||||
|
@ -74,7 +74,7 @@ void InstanceView::createTable()
|
||||
{
|
||||
m_table = new QTableView(this);
|
||||
m_table->setModel(m_tableProxy);
|
||||
m_table->setItemDelegate(new InstanceDelegate(this));
|
||||
m_table->setItemDelegate(new InstanceDelegate(this, m_iconSize, false));
|
||||
|
||||
m_table->setTabKeyNavigation(false);
|
||||
m_table->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
@ -121,7 +121,7 @@ void InstanceView::createGrid()
|
||||
m_grid = new QListView(this);
|
||||
m_grid->setModel(m_gridProxy);
|
||||
m_grid->setModelColumn(InstanceList::NameColumn);
|
||||
m_grid->setItemDelegate(new InstanceDelegate(this));
|
||||
m_grid->setItemDelegate(new InstanceDelegate(this, m_iconSize, true));
|
||||
|
||||
m_grid->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
m_grid->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
|
Loading…
x
Reference in New Issue
Block a user