X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/dd18909eecce59ae23b1e921b96937fd547c9558..5d9051bba36c8690a622591b1164158f526a9f12:/src/views/dolphinitemlistview.h diff --git a/src/views/dolphinitemlistview.h b/src/views/dolphinitemlistview.h index 67302e44d..0483c0644 100644 --- a/src/views/dolphinitemlistview.h +++ b/src/views/dolphinitemlistview.h @@ -1,29 +1,14 @@ -/*************************************************************************** - * 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 DOLPHINITEMLISTVIEW_H #define DOLPHINITEMLISTVIEW_H -#include -#include - -#include +#include "dolphin_export.h" +#include "kitemviews/kfileitemlistview.h" class KFileItemListView; @@ -34,34 +19,46 @@ class KFileItemListView; * the view-properties into the corresponding KItemListView * properties. */ -class LIBDOLPHINPRIVATE_EXPORT DolphinItemListView : public KFileItemListView +class DOLPHIN_EXPORT DolphinItemListView : public KFileItemListView { Q_OBJECT public: - explicit DolphinItemListView(QGraphicsWidget* parent = 0); - virtual ~DolphinItemListView(); + explicit DolphinItemListView(QGraphicsWidget *parent = nullptr); + ~DolphinItemListView() override; void setZoomLevel(int level); int zoomLevel() const; + enum SelectionTogglesEnabled { True, False, FollowSetting }; + /** + * Sets whether the items in this view should show a small selection toggle area on mouse hover. + * The default for this view is to follow the "showSelectionToggle" setting but this method can + * be used to ignore that setting and force a different value. + */ + void setEnabledSelectionToggles(SelectionTogglesEnabled selectionTogglesEnabled); + void readSettings(); void writeSettings(); protected: - virtual KItemListWidgetCreatorBase* defaultWidgetCreator() const; - virtual bool itemLayoutSupportsItemExpanding(ItemLayout layout) const; - virtual void onItemLayoutChanged(ItemLayout current, ItemLayout previous); - virtual void onPreviewsShownChanged(bool shown); - virtual void onVisibleRolesChanged(const QList& current, - const QList& previous); + KItemListWidgetCreatorBase *defaultWidgetCreator() const override; + /** Overwriting in the Dolphin-specific class because we want this to be user-configurable. + * @see KStandardItemListView::itemLayoutHighlightEntireRow */ + bool itemLayoutHighlightEntireRow(ItemLayout layout) const override; + bool itemLayoutSupportsItemExpanding(ItemLayout layout) const override; + void onItemLayoutChanged(ItemLayout current, ItemLayout previous) override; + void onPreviewsShownChanged(bool shown) override; + void onVisibleRolesChanged(const QList ¤t, const QList &previous) override; - virtual void updateFont(); + void updateFont() override; private: void updateGridSize(); - ViewModeSettings::ViewMode viewMode() const; + using KItemListView::setEnabledSelectionToggles; // Makes sure that the setEnabledSelectionToggles() declaration above doesn't hide + // the one from the base class so we can still use it privately. + SelectionTogglesEnabled m_selectionTogglesEnabled = FollowSetting; private: int m_zoomLevel;