aboutsummaryrefslogtreecommitdiff
path: root/qdeduper/imageitem.cpp
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2022-09-19 12:04:52 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2022-09-19 12:04:52 -0400
commit8ec24c0ac9a0c699721c50a70630c91cc36b1c30 (patch)
treee88af59be7a19932ec2365c8412c313b126d5a79 /qdeduper/imageitem.cpp
parent15a694a83601d5ce7bce3f96d42b8e158afab70c (diff)
downloaddeduper-8ec24c0ac9a0c699721c50a70630c91cc36b1c30.tar.xz
Fix sizeHintChanged not being fired when item view size changes.
Also menu adjustments.
Diffstat (limited to 'qdeduper/imageitem.cpp')
-rw-r--r--qdeduper/imageitem.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/qdeduper/imageitem.cpp b/qdeduper/imageitem.cpp
index 6fee930..f18d32c 100644
--- a/qdeduper/imageitem.cpp
+++ b/qdeduper/imageitem.cpp
@@ -9,6 +9,9 @@
#include <QFontMetrics>
#include <QPainter>
#include <QLocale>
+#include <qnamespace.h>
+
+#define DEBUGPAINT 0
ImageItem::ImageItem(QString fn, QString dispn, QKeySequence hotkey, double pxratio)
{
@@ -40,7 +43,6 @@ void ImageItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt
so.state |= QStyle::StateFlag::State_Active;
option.widget->style()->drawPrimitive(QStyle::PrimitiveElement::PE_PanelItemViewItem, &so, painter, option.widget);
-
QPixmap pm = index.data(Qt::ItemDataRole::DecorationRole).value<QPixmap>();
QSize imd = pm.size().scaled(imr.size(), Qt::AspectRatioMode::KeepAspectRatio);
painter->setRenderHint(QPainter::RenderHint::SmoothPixmapTransform);
@@ -88,6 +90,12 @@ void ImageItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt
r.setRight(imr.right());
QString efns = option.fontMetrics.elidedText(fns, Qt::TextElideMode::ElideMiddle, r.width());
painter->drawText(r, efns, topt);
+#if DEBUGPAINT
+ painter->setPen(QPen(Qt::GlobalColor::red));
+ painter->drawRect(so.rect);
+ painter->drawRect(option.rect);
+ qDebug() << "paint" << index.row() << option.rect;
+#endif
}
QSize ImageItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
@@ -121,6 +129,9 @@ QSize ImageItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QMod
ret.setHeight(vpsz.height() / index.model()->rowCount() - lw->spacing());
ret.setHeight(std::max(min_height + extra_height, ret.height()));
ret.setHeight(std::min(max_height + extra_height, ret.height()));
+#if DEBUGPAINT
+ qDebug() << "sizehint" << index.row() << ret;
+#endif
return ret;
}