]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinitemlistview.h
DolphinStatusbar: Fix background and margins for non-Breeze styles
[dolphin.git] / src / views / dolphinitemlistview.h
index 67302e44dba687889424ea105790578d5951e6c5..0483c0644f4da5c800e6e7b21e632781ae0d6253 100644 (file)
@@ -1,29 +1,14 @@
-/***************************************************************************
- *   Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   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 <peter.penz19@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
 
 #ifndef DOLPHINITEMLISTVIEW_H
 #define DOLPHINITEMLISTVIEW_H
 
-#include <kitemviews/kfileitemlistview.h>
-#include <settings/viewmodes/viewmodesettings.h>
-
-#include <libdolphin_export.h>
+#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<QByteArray>& current,
-                                       const QList<QByteArray>& 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<QByteArray> &current, const QList<QByteArray> &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;