diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2018-03-22 10:47:02 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2018-03-27 16:50:44 +0000 |
commit | 3c4ea1b3c662d17b4b82a55a4b10e50226dbb14f (patch) | |
tree | a2ca9e32253876baea3da909b6744e0c0c8cde89 /tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp | |
parent | e3fa4af68ecf50c3d32e576b4b05bfefecd18c1b (diff) |
Benchmark: move widgets benchmarks still in gui subdirectory to widgets
Move all widget-dependent benchmarks which were still in gui
subdirectory to widgets
Task-number: QTBUG-23129
Change-Id: I1359f1ea4036cacdfdbe08ff9ecdf1e2c75a005b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp')
-rw-r--r-- | tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp deleted file mode 100644 index 496919214d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qmath.h> -#include <QGraphicsLinearLayout> -#include <QGraphicsScene> - -#include "listitemcontainer.h" -#include "abstractviewitem.h" - -#include "recycledlistitem.h" -#include "listitemcache.h" -#include "itemrecyclinglist.h" - -ListItemContainer::ListItemContainer(int bufferSize, ItemRecyclingList *view, QGraphicsWidget *parent) - : AbstractItemContainer(bufferSize, parent) - , m_view(view) - , m_layout(new QGraphicsLinearLayout(Qt::Vertical)) - , m_listItemCaching(false) -{ - setContentsMargins(0,0,0,0); - m_layout->setContentsMargins(0,0,0,0); - m_layout->setSpacing(0); - setLayout(m_layout); -} - -/*virtual*/ -ListItemContainer::~ListItemContainer() -{ - setListItemCaching(false); - for (int i = 0; i < m_items.count(); ++i) { - m_layout->removeItem(m_items.at(i)); - m_items.at(i)->setParentItem(0); - } - qDeleteAll(m_items); - m_items.clear(); -} - -bool ListItemContainer::listItemCaching() const -{ - return m_listItemCaching; -} - -void ListItemContainer::setListItemCaching(const bool enabled) -{ - if (m_listItemCaching == enabled) - return; - - m_listItemCaching = enabled; - - const int itemCount = m_layout->count(); - - for (int i = 0; i < itemCount; ++i) - setListItemCaching(enabled, i); -} - -/*virtual*/ -void ListItemContainer::adjustVisibleContainerSize(const QSizeF &size) -{ - m_layout->setPreferredWidth(size.width()); -} - -/*virtual*/ -void ListItemContainer::addItemToVisibleLayout(int index, AbstractViewItem *item) -{ - m_layout->insertItem(index,item); - - setListItemCaching(m_listItemCaching, index); -} - -/*virtual*/ -void ListItemContainer::removeItemFromVisibleLayout(AbstractViewItem *item) -{ - m_layout->removeItem(item); - - RecycledListItem *recycledItem = static_cast<RecycledListItem*>(item); - - if (!recycledItem) - return; - - ListItem *listItem = recycledItem->item(); - - setListItemCaching(false, listItem); -} - -/*virtual*/ -int ListItemContainer::maxItemCountInItemBuffer() const -{ - int count = AbstractItemContainer::maxItemCountInItemBuffer(); - - if (count > 0) { - int currentItemCount = m_items.count(); - qreal heightOfOneItem = 0; - if (currentItemCount > 0) - { - heightOfOneItem = m_layout->effectiveSizeHint(Qt::PreferredSize).height() / currentItemCount; - } - int guess = 0; - if( heightOfOneItem <= 0 ) { - if (m_prototype) { - heightOfOneItem = m_prototype->effectiveSizeHint(Qt::PreferredSize).height(); - } - else - heightOfOneItem = 50; // TODO magic number, do we have better guess if prototype is not set? - } - if (heightOfOneItem > 0) { - guess = qCeil(m_itemView->boundingRect().height() / heightOfOneItem) + m_bufferSize; - - if (guess < currentItemCount) { - if( guess > currentItemCount-2) { // TODO magic number here, Can we use buffer size? - guess = currentItemCount; - } - } - } - count = qMin(guess, count); - } - return count; -} - -void ListItemContainer::setListItemCaching(const bool enabled, const int index) -{ - RecycledListItem *recycledItem = static_cast<RecycledListItem*>(m_layout->itemAt(index)); - - if (!recycledItem) - return; - - ListItem *listItem = recycledItem->item(); - - if (!listItem) - return; - - setListItemCaching(enabled, listItem); -} - -void ListItemContainer::setListItemCaching(const bool enabled, ListItem *listItem) -{ - if (!listItem) - return; - - // Deletes the effect. - listItem->setGraphicsEffect(0); - - if (enabled) { - ListItemCache* cache = new ListItemCache; - Q_ASSERT(!listItem->graphicsEffect()); - listItem->setGraphicsEffect(cache); - } -} - -void ListItemContainer::setTwoColumns(const bool twoColumns) -{ - AbstractItemContainer::setTwoColumns(twoColumns); - - if (!m_layout->isActivated()) - m_layout->activate(); -} - |