X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a5e266e538cb32c3689cf02f23246812acbf2d8c..9abe299c77a7bd194d781bba0e6a3d037c0431d1:/src/kitemviews/kitemrange.h diff --git a/src/kitemviews/kitemrange.h b/src/kitemviews/kitemrange.h index 70927b915..0ea068062 100644 --- a/src/kitemviews/kitemrange.h +++ b/src/kitemviews/kitemrange.h @@ -1,25 +1,11 @@ -/*************************************************************************** - * Copyright (C) 2011 by Peter Penz * - * Copyright (C) 2013 by Frank Reininghaus * - * * - * Based on the Itemviews NG project from Trolltech Labs: * - * http://qt.gitorious.org/qt-labs/itemviews-ng * - * * - * 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-FileCopyrightText: 2013 Frank Reininghaus + * + * Based on the Itemviews NG project from Trolltech Labs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef KITEMRANGE_H #define KITEMRANGE_H @@ -51,7 +37,7 @@ class KItemRangeList : public QList { public: KItemRangeList() : QList() {} - KItemRangeList(const QList& list) : QList(list) {} + explicit KItemRangeList(const QList& list) : QList(list) {} template static KItemRangeList fromSortedContainer(const Container& container); @@ -78,7 +64,10 @@ KItemRangeList KItemRangeList::fromSortedContainer(const Container& container) int index = *it; int count = 1; - ++it; + // Remove duplicates, see https://bugs.kde.org/show_bug.cgi?id=335672 + while (it != end && *it == index) { + ++it; + } while (it != end) { if (*it == index + count) { @@ -89,6 +78,11 @@ KItemRangeList KItemRangeList::fromSortedContainer(const Container& container) count = 1; } ++it; + + // Remove duplicates, see https://bugs.kde.org/show_bug.cgi?id=335672 + while (it != end && *it == *(it - 1)) { + ++it; + } } result << KItemRange(index, count);