From babdd53be8b304e2c4a8786774fea7186e8d979f Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Thu, 22 Sep 2022 23:45:09 -0400 Subject: Add single image view. --- qdeduper/imageitem.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'qdeduper/imageitem.cpp') diff --git a/qdeduper/imageitem.cpp b/qdeduper/imageitem.cpp index 9ee7c6f..2958e06 100644 --- a/qdeduper/imageitem.cpp +++ b/qdeduper/imageitem.cpp @@ -128,15 +128,18 @@ 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 (singlemode) ret.setHeight(vpsz.height()); #if DEBUGPAINT qDebug() << "sizehint" << index.row() << ret; #endif return ret; } -void ImageItemDelegate::resize(const QModelIndex &index) +void ImageItemDelegate::resize() { - Q_EMIT sizeHintChanged(index); + if (im) + for (int i = 0; i < im->rowCount(); ++i) + Q_EMIT sizeHintChanged(im->index(i, 0)); } void ImageItemDelegate::setScrollbarMargins(int vw, int hh) @@ -144,3 +147,20 @@ void ImageItemDelegate::setScrollbarMargins(int vw, int hh) this->vw = vw; this->hh = hh; } + +void ImageItemDelegate::set_single_item_mode(bool enabled) +{ + if (enabled == singlemode) return; + singlemode = enabled; + resize(); +} + +bool ImageItemDelegate::is_single_item_mode() +{ + return singlemode; +} + +void ImageItemDelegate::set_model(QAbstractItemModel *m) +{ + im = m; +} -- cgit v1.2.3