From ad2ccae5db49a2c0f6ba223733aebde83a17d261 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Wed, 22 Feb 2017 04:24:07 +0100 Subject: [PATCH] Fix funny resizing bug and increase min-padding --- src/gui/CategoryListWidget.cpp | 19 +++++++++---------- src/gui/CategoryListWidget.h | 2 +- src/gui/EditWidget.ui | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/gui/CategoryListWidget.cpp b/src/gui/CategoryListWidget.cpp index 1c3c7dcce..ddafd6949 100644 --- a/src/gui/CategoryListWidget.cpp +++ b/src/gui/CategoryListWidget.cpp @@ -49,16 +49,12 @@ QSize CategoryListWidget::sizeHint() const { QSize sizeHint = QWidget::sizeHint(); - int width = m_ui->categoryList->sizeHintForColumn(0); - if (m_ui->categoryList->verticalScrollBar()->isVisible()) { - width += m_ui->categoryList->verticalScrollBar()->width(); - } + int width = m_ui->categoryList->width(); - QSize min = minimumSizeHint(); - if (width < min.width()) { - width = min.width(); + int min = minimumSizeHint().width(); + if (width < min) { + width = min; } - width += m_ui->categoryList->frameWidth() * 2; sizeHint.setWidth(width); return sizeHint; @@ -66,7 +62,7 @@ QSize CategoryListWidget::sizeHint() const QSize CategoryListWidget::minimumSizeHint() const { - return QSize(m_ui->categoryList->sizeHintForColumn(0) + m_ui->categoryList->frameWidth() * 2, + return QSize(m_itemDelegate->minWidth() + m_ui->categoryList->frameWidth() * 2, m_ui->categoryList->sizeHintForRow(0) * 2); } @@ -204,7 +200,10 @@ int CategoryListWidgetDelegate::minWidth() const } } - return maxWidth > m_size.height() ? maxWidth + 5 : m_size.height(); + // add some padding + maxWidth += 10; + + return maxWidth < m_size.height() ? m_size.height() : maxWidth; } QSize CategoryListWidgetDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const diff --git a/src/gui/CategoryListWidget.h b/src/gui/CategoryListWidget.h index 23860f322..3cf82fd1b 100644 --- a/src/gui/CategoryListWidget.h +++ b/src/gui/CategoryListWidget.h @@ -73,13 +73,13 @@ class CategoryListWidgetDelegate : public QStyledItemDelegate public: explicit CategoryListWidgetDelegate(QListWidget* parent = nullptr); + int minWidth() const; protected: void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; private: - int minWidth() const; const int ICON_SIZE = 32; diff --git a/src/gui/EditWidget.ui b/src/gui/EditWidget.ui index 9be882121..6afce9f3e 100644 --- a/src/gui/EditWidget.ui +++ b/src/gui/EditWidget.ui @@ -38,11 +38,11 @@ - + - + 0 0