File indexing completed on 2024-05-12 17:22:01
0001 /* 0002 SPDX-FileCopyrightText: 2002 Shie Erlich <erlich@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2002 Rafi Yanai <yanai@users.sourceforge.net> 0004 SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KRINTERDETAILEDVIEW_H 0010 #define KRINTERDETAILEDVIEW_H 0011 0012 // QtCore 0013 #include <QVector> 0014 // QtGui 0015 #include <QFont> 0016 // QtWidgets 0017 #include <QTreeView> 0018 0019 #include "krinterview.h" 0020 0021 class QMouseEvent; 0022 class QKeyEvent; 0023 class QDragEnterEvent; 0024 0025 class KrInterDetailedView : public QTreeView, public KrInterView 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 KrInterDetailedView(QWidget *parent, KrViewInstance &instance, KConfig *cfg); 0031 ~KrInterDetailedView() override; 0032 0033 void updateView() override; 0034 0035 bool ensureVisibilityAfterSelect() override 0036 { 0037 return false; 0038 } 0039 int itemsPerPage() override; 0040 void setSortMode(KrViewProperties::ColumnType sortColumn, bool descending) override; 0041 void setFileIconSize(int size) override; 0042 void doRestoreSettings(KConfigGroup grp) override; 0043 0044 protected slots: 0045 void renameCurrentItem() override; 0046 void sectionResized(int, int, int); 0047 void sectionMoved(int, int, int); 0048 void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override; 0049 0050 protected: 0051 void setup() override; 0052 void copySettingsFrom(KrView *other) override; 0053 void saveSettings(KConfigGroup grp, KrViewProperties::PropertyType properties) override; 0054 0055 // Don't do anything, selections are handled by the mouse handler 0056 void setSelection(const QRect &, QItemSelectionModel::SelectionFlags) override 0057 { 0058 } 0059 void selectAll() override 0060 { 0061 } 0062 0063 void keyPressEvent(QKeyEvent *e) override; 0064 void mousePressEvent(QMouseEvent *) override; 0065 void mouseReleaseEvent(QMouseEvent *) override; 0066 void mouseDoubleClickEvent(QMouseEvent *ev) override; 0067 void mouseMoveEvent(QMouseEvent *) override; 0068 void wheelEvent(QWheelEvent *) override; 0069 bool event(QEvent *e) override; 0070 void dragEnterEvent(QDragEnterEvent *e) override; 0071 void dragMoveEvent(QDragMoveEvent *e) override; 0072 void dragLeaveEvent(QDragLeaveEvent *e) override; 0073 void dropEvent(QDropEvent *) override; 0074 bool eventFilter(QObject *object, QEvent *event) override; 0075 bool viewportEvent(QEvent *event) override; 0076 void drawRow(QPainter *painter, const QStyleOptionViewItem &options, const QModelIndex &index) const override; 0077 0078 QRect itemRect(const FileItem *fileitem) override; 0079 0080 void showContextMenu(const QPoint &p) override; 0081 void recalculateColumnSizes(); 0082 0083 private: 0084 QFont _viewFont; 0085 bool _autoResizeColumns; 0086 }; 0087 #endif // __krinterview__