File indexing completed on 2024-05-12 17:22:01
0001 /* 0002 SPDX-FileCopyrightText: 2009 Csaba Karai <cskarai@freemail.hu> 0003 SPDX-FileCopyrightText: 2009-2022 Krusader Krew <https://krusader.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef KRINTERBRIEFVIEW_H 0009 #define KRINTERBRIEFVIEW_H 0010 0011 // QtCore 0012 #include <QVector> 0013 // QtGui 0014 #include <QFont> 0015 // QtWidgets 0016 #include <QAbstractItemView> 0017 #include <QHeaderView> 0018 #include <QWidget> 0019 0020 #include "krinterview.h" 0021 0022 /** 0023 * @brief Compact view showing only icon and file name of view items 0024 */ 0025 class KrInterBriefView : public QAbstractItemView, public KrInterView 0026 { 0027 Q_OBJECT 0028 public: 0029 KrInterBriefView(QWidget *parent, KrViewInstance &instance, KConfig *cfg); 0030 ~KrInterBriefView() override; 0031 0032 // ---- reimplemented from QAbstractItemView ---- 0033 QRect visualRect(const QModelIndex &) const override; 0034 QModelIndex indexAt(const QPoint &) const override; 0035 void scrollTo(const QModelIndex &, QAbstractItemView::ScrollHint = QAbstractItemView::EnsureVisible) override; 0036 0037 // ---- reimplemented from KrView ---- 0038 int itemsPerPage() override; 0039 void updateView() override; 0040 bool ensureVisibilityAfterSelect() override 0041 { 0042 return false; 0043 } 0044 void setSortMode(KrViewProperties::ColumnType sortColumn, bool descending) override; 0045 0046 // ---- reimplemented from QAbstractItemView ---- 0047 // Don't do anything, selections are handled by the mouse handler 0048 void setSelection(const QRect &, QItemSelectionModel::SelectionFlags) override 0049 { 0050 } 0051 void selectAll() override 0052 { 0053 } 0054 // this shouldn't be called 0055 QRegion visualRegionForSelection(const QItemSelection &) const override 0056 { 0057 return QRegion(); 0058 } 0059 0060 // ---- reimplemented from KrView ---- 0061 void setFileIconSize(int size) override; 0062 0063 protected slots: 0064 // ---- reimplemented from QAbstractItemView ---- 0065 void updateGeometries() override; 0066 0067 // ---- reimplemented from KrView ---- 0068 void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override; 0069 0070 void renameCurrentItem() override; 0071 0072 protected: 0073 // ---- reimplemented from KrView ---- 0074 bool handleKeyEvent(QKeyEvent *e) override; 0075 // ---- reimplemented from QAbstractItemView ---- 0076 bool eventFilter(QObject *object, QEvent *event) override; 0077 void keyPressEvent(QKeyEvent *e) override; 0078 void paintEvent(QPaintEvent *e) override; 0079 QModelIndex moveCursor(QAbstractItemView::CursorAction, Qt::KeyboardModifiers) override; 0080 int horizontalOffset() const override; 0081 int verticalOffset() const override; 0082 bool isIndexHidden(const QModelIndex &) const override; 0083 // QRegion visualRegionForSelection(const QItemSelection&) const override; 0084 bool event(QEvent *e) override; 0085 void mousePressEvent(QMouseEvent *) override; 0086 void mouseReleaseEvent(QMouseEvent *) override; 0087 void mouseDoubleClickEvent(QMouseEvent *ev) override; 0088 void mouseMoveEvent(QMouseEvent *) override; 0089 void wheelEvent(QWheelEvent *) override; 0090 void dragEnterEvent(QDragEnterEvent *e) override; 0091 void dragMoveEvent(QDragMoveEvent *e) override; 0092 void dragLeaveEvent(QDragLeaveEvent *e) override; 0093 void dropEvent(QDropEvent *) override; 0094 0095 // ---- reimplemented from KrView ---- 0096 void setup() override; 0097 void doRestoreSettings(KConfigGroup group) override; 0098 void saveSettings(KConfigGroup grp, KrViewProperties::PropertyType properties) override; 0099 void copySettingsFrom(KrView *other) override; 0100 QRect itemRect(const FileItem *fileitem) override; 0101 void showContextMenu(const QPoint &p) override; 0102 QRect mapToViewport(const QRect &rect) const; 0103 0104 int getItemHeight() const; 0105 int elementWidth(const QModelIndex &index); 0106 void intersectionSet(const QRect &, QVector<QModelIndex> &); 0107 0108 private: 0109 QFont _viewFont; 0110 int _numOfColumns; 0111 QHeaderView *_header; 0112 }; 0113 0114 #endif // KRINTERBRIEFVIEW_H