// Squawk messenger. // Copyright (C) 2019 Yury Gubich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . #include "expandinglist.h" QSize ExpandingList::viewportSizeHint() const { if (QAbstractItemView::sizeAdjustPolicy() != QAbstractScrollArea::AdjustToContents) return QListView::viewportSizeHint(); if (model() == nullptr) return QSize(0, 0); if (model()->rowCount() == 0) return QSize(0, 0); #if (QT_VERSION < QT_VERSION_CHECK(6, 2, 0)) const int rowCount = model()->rowCount(); int height = 0; for (int i = 0; i < rowCount; i++) { height += QListView::sizeHintForRow(i); } return QSize(QListView::viewportSizeHint().width(), height); #else return QListView::viewportSizeHint(); #endif } QSize ExpandingList::minimumSizeHint() const { return viewportSizeHint(); }