File indexing completed on 2024-04-28 05:45:03

0001 /*
0002  * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KFILEITEMLISTWIDGET_H
0008 #define KFILEITEMLISTWIDGET_H
0009 
0010 #include "dolphin_export.h"
0011 #include "kitemviews/kstandarditemlistwidget.h"
0012 
0013 class KFileItemListView;
0014 
0015 class DOLPHIN_EXPORT KFileItemListWidgetInformant : public KStandardItemListWidgetInformant
0016 {
0017 public:
0018     KFileItemListWidgetInformant();
0019     ~KFileItemListWidgetInformant() override;
0020 
0021 protected:
0022     QString itemText(int index, const KItemListView *view) const override;
0023     bool itemIsLink(int index, const KItemListView *view) const override;
0024     QString roleText(const QByteArray &role, const QHash<QByteArray, QVariant> &values) const override;
0025     QFont customizedFontForLinks(const QFont &baseFont) const override;
0026 };
0027 
0028 class DOLPHIN_EXPORT KFileItemListWidget : public KStandardItemListWidget
0029 {
0030     Q_OBJECT
0031 
0032 public:
0033     KFileItemListWidget(KItemListWidgetInformant *informant, QGraphicsItem *parent);
0034     ~KFileItemListWidget() override;
0035 
0036     static KItemListWidgetInformant *createInformant();
0037 
0038     /// Force-update the displayed icon
0039     void forceUpdate();
0040 
0041 protected:
0042     virtual void hoverSequenceStarted() override;
0043     virtual void hoverSequenceIndexChanged(int sequenceIndex) override;
0044     virtual void hoverSequenceEnded() override;
0045 
0046     bool isRoleRightAligned(const QByteArray &role) const override;
0047     bool isHidden() const override;
0048     QFont customizedFont(const QFont &baseFont) const override;
0049 
0050     /**
0051      * @return Selection length without MIME-type extension
0052      */
0053     int selectionLength(const QString &text) const override;
0054 
0055 private:
0056     KFileItemListView *listView();
0057 };
0058 
0059 #endif