X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/837be34333bc1b7d85649418366f26d64a6d6b2c..cebcf8db:/src/kitemviews/private/kitemlistsizehintresolver.h diff --git a/src/kitemviews/private/kitemlistsizehintresolver.h b/src/kitemviews/private/kitemlistsizehintresolver.h index 486f9b631..c5a47f130 100644 --- a/src/kitemviews/private/kitemlistsizehintresolver.h +++ b/src/kitemviews/private/kitemlistsizehintresolver.h @@ -1,28 +1,15 @@ -/*************************************************************************** - * Copyright (C) 2011 by Peter Penz * - * * - * 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 2 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, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2011 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef KITEMLISTSIZEHINTRESOLVER_H #define KITEMLISTSIZEHINTRESOLVER_H -#include +#include "dolphin_export.h" +#include "kitemviews/kitemmodelbase.h" -#include #include #include @@ -31,23 +18,29 @@ class KItemListView; /** * @brief Calculates and caches the sizehints of items in KItemListView. */ -class LIBDOLPHINPRIVATE_EXPORT KItemListSizeHintResolver +class DOLPHIN_EXPORT KItemListSizeHintResolver { public: - KItemListSizeHintResolver(const KItemListView* itemListView); + explicit KItemListSizeHintResolver(const KItemListView *itemListView); virtual ~KItemListSizeHintResolver(); - QSizeF sizeHint(int index) const; + QSizeF minSizeHint(); + QSizeF sizeHint(int index); + bool isElided(int index); - void itemsInserted(const KItemRangeList& itemRanges); - void itemsRemoved(const KItemRangeList& itemRanges); - void itemsMoved(const KItemRange& range, const QList& movedToIndexes); - void itemsChanged(int index, int count, const QSet& roles); + void itemsInserted(const KItemRangeList &itemRanges); + void itemsRemoved(const KItemRangeList &itemRanges); + void itemsMoved(const KItemRange &range, const QList &movedToIndexes); + void itemsChanged(int index, int count, const QSet &roles); void clearCache(); + void updateCache(); private: - const KItemListView* m_itemListView; - mutable QVector m_sizeHintCache; + const KItemListView *m_itemListView; + mutable QVector> m_logicalHeightHintCache; + mutable qreal m_logicalWidthHint; + mutable qreal m_minHeightHint; + bool m_needsResolving; }; #endif