X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9da33680ad7bd2f2d18b894071c4cd11c3453197..f65b0899c3666561cafac14f67ab0bb8a5bfa00a:/src/kitemviews/kfileitemmodel.h diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index d15cfebc1..886a1c6de 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -1,21 +1,8 @@ -/*************************************************************************** - * 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 KFILEITEMMODEL_H #define KFILEITEMMODEL_H @@ -198,7 +185,7 @@ public: */ static QList rolesInformation(); -signals: +Q_SIGNALS: /** * Is emitted if the loading of a directory has been started. It is * assured that a signal directoryLoadingCompleted() will be send after @@ -263,7 +250,7 @@ protected: void onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems = true) override; void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override; -private slots: +private Q_SLOTS: /** * Resorts all items dependent on the set sortRole(), sortOrder() * and foldersFirst() settings. @@ -288,7 +275,7 @@ private: // User visible roles available with Baloo: CommentRole, TagsRole, RatingRole, WidthRole, HeightRole, ImageDateTimeRole, OrientationRole, WordCountRole, TitleRole, LineCountRole, ArtistRole, GenreRole, AlbumRole, DurationRole, TrackRole, ReleaseYearRole, - BitrateRole, OriginUrlRole, + BitrateRole, OriginUrlRole, AspectRatioRole, FrameRateRole, // Non-visible roles: IsDirRole, IsLinkRole, IsHiddenRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole, // Mandatory last entry: @@ -355,6 +342,11 @@ private: QHash retrieveData(const KFileItem& item, const ItemData* parent) const; + /** + * @return True if role values benefit from natural or case insensitive sorting. + */ + static bool isRoleValueNatural(const RoleType roleType); + /** * @return True if \a a has a KFileItem whose text is 'less than' the one * of \a b according to QString::operator<(const QString&). @@ -382,8 +374,6 @@ private: int stringCompare(const QString& a, const QString& b, const QCollator& collator) const; - bool useMaximumUpdateInterval() const; - QList > nameRoleGroups() const; QList > sizeRoleGroups() const; QList > timeRoleGroups(const std::function &fileTimeCb) const; @@ -506,12 +496,27 @@ private: friend class DolphinPart; // Accesses m_dirLister }; +inline bool KFileItemModel::isRoleValueNatural(RoleType roleType) +{ + return (roleType == TypeRole || + roleType == TagsRole || + roleType == CommentRole || + roleType == TitleRole || + roleType == ArtistRole || + roleType == GenreRole || + roleType == AlbumRole || + roleType == PathRole || + roleType == DestinationRole || + roleType == OriginUrlRole || + roleType == OwnerRole || + roleType == GroupRole); +} + inline bool KFileItemModel::nameLessThan(const ItemData* a, const ItemData* b) { return a->item.text() < b->item.text(); } - inline bool KFileItemModel::isChildItem(int index) const { if (m_itemData.at(index)->parent) {