fix: make grid items taller

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
Sefa Eyeoglu 2022-10-02 15:00:45 +02:00
parent e230c5084e
commit c67da2ee5f
No known key found for this signature in database
GPG Key ID: C10411294912A422
3 changed files with 18 additions and 4 deletions

View File

@ -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;
}

View File

@ -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;
};

View File

@ -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);