1
/***************************************************************************
2
krinterbriefview.h - description
4
begin : Sat Feb 14 2009
5
copyright : (C) 2009+ by Csaba Karai
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
18
#ifndef __krinterbriefview__
19
#define __krinterbriefview__
1
/*****************************************************************************
2
* Copyright (C) 2009 Csaba Karai <cskarai@freemail.hu> *
4
* This program is free software; you can redistribute it and/or modify *
5
* it under the terms of the GNU General Public License as published by *
6
* the Free Software Foundation; either version 2 of the License, or *
7
* (at your option) any later version. *
9
* This package is distributed in the hope that it will be useful, *
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12
* GNU General Public License for more details. *
14
* You should have received a copy of the GNU General Public License *
15
* along with this package; if not, write to the Free Software *
16
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
17
*****************************************************************************/
19
#ifndef KRINTERBRIEFVIEW_H
20
#define KRINTERBRIEFVIEW_H
23
22
#include <QAbstractItemView>
27
28
class KrInterBriefViewItem;
28
29
class KrMouseHandler;
32
class KrInterBriefView : public QAbstractItemView, public KrView {
33
friend class KrInterBriefViewItem;
33
class KrInterBriefView : public QAbstractItemView, public KrView
36
friend class KrInterBriefViewItem;
37
KrInterBriefView( QWidget *parent, bool &left, KConfig *cfg = krConfig );
38
virtual ~KrInterBriefView();
40
virtual void addItems(vfs* v, bool addUpDir = true);
41
virtual KrViewItem* findItemByName(const QString &name);
42
virtual QString getCurrentItem() const;
43
virtual KrViewItem* getCurrentKrViewItem();
44
virtual KrViewItem* getFirst();
45
virtual KrViewItem* getKrViewItemAt(const QPoint &vp);
46
virtual KrViewItem* getLast();
47
virtual KrViewItem* getNext(KrViewItem *current);
48
virtual KrViewItem* getPrev(KrViewItem *current);
49
virtual void makeItemVisible(const KrViewItem *item);
50
virtual KrViewItem* preAddItem(vfile *vf);
51
virtual bool preDelItem(KrViewItem *item);
52
virtual void redraw();
53
virtual void restoreSettings();
54
virtual void saveSettings();
55
virtual void setCurrentItem(const QString& name);
56
virtual void setCurrentKrViewItem(KrViewItem *current);
59
virtual void updateView();
60
virtual void updateItem(KrViewItem* item);
61
virtual QModelIndex getCurrentIndex() { return currentIndex(); }
62
virtual bool isSelected( const QModelIndex &ndx ) { return selectionModel()->isSelected( ndx ); }
63
virtual void selectRegion( KrViewItem *, KrViewItem *, bool );
64
KrInterBriefViewItem * getKrInterViewItem( const QModelIndex & );
66
static KrView* create( QWidget *parent, bool &left, KConfig *cfg ) { return new KrInterBriefView( parent, left, cfg ); }
68
virtual void prepareForActive();
69
virtual void prepareForPassive();
70
virtual bool ensureVisibilityAfterSelect() { return false; }
71
virtual int itemsPerPage();
72
virtual void setSortMode(KrViewProperties::SortSpec mode);
74
// abstract item view classes
75
virtual QRect visualRect(const QModelIndex&) const;
76
virtual void scrollTo(const QModelIndex&, QAbstractItemView::ScrollHint = QAbstractItemView::EnsureVisible);
77
virtual QModelIndex indexAt(const QPoint&) const;
78
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction, Qt::KeyboardModifiers);
79
virtual int horizontalOffset() const;
80
virtual int verticalOffset() const;
81
virtual bool isIndexHidden(const QModelIndex&) const;
82
virtual void setSelection(const QRect&, QFlags<QItemSelectionModel::SelectionFlag>);
83
virtual QRegion visualRegionForSelection(const QItemSelection&) const;
84
virtual void updateGeometries();
85
virtual QRect mapToViewport(const QRect &rect) const;
39
KrInterBriefView(QWidget *parent, bool &left, KConfig *cfg = krConfig);
40
virtual ~KrInterBriefView();
42
virtual void addItems(vfs* v, bool addUpDir = true);
43
virtual KrViewItem* findItemByName(const QString &name);
44
virtual QString getCurrentItem() const;
45
virtual KrViewItem* getCurrentKrViewItem();
46
virtual KrViewItem* getFirst();
47
virtual KrViewItem* getKrViewItemAt(const QPoint &vp);
48
virtual KrViewItem* getLast();
49
virtual KrViewItem* getNext(KrViewItem *current);
50
virtual KrViewItem* getPrev(KrViewItem *current);
51
virtual void makeItemVisible(const KrViewItem *item);
52
virtual KrViewItem* preAddItem(vfile *vf);
53
virtual bool preDelItem(KrViewItem *item);
54
virtual void redraw();
55
virtual void restoreSettings();
56
virtual void saveSettings();
57
virtual void setCurrentItem(const QString& name);
58
virtual void setCurrentKrViewItem(KrViewItem *current);
61
virtual void updateView();
62
virtual void updateItem(vfile* item);
63
virtual void updateItem(KrViewItem* item);
64
virtual QModelIndex getCurrentIndex() {
65
return currentIndex();
67
virtual bool isSelected(const QModelIndex &ndx) {
68
return selectionModel()->isSelected(ndx);
70
virtual void selectRegion(KrViewItem *, KrViewItem *, bool);
71
KrInterBriefViewItem * getKrInterViewItem(const QModelIndex &);
73
static KrView* create(QWidget *parent, bool &left, KConfig *cfg) {
74
return new KrInterBriefView(parent, left, cfg);
77
virtual void prepareForActive();
78
virtual void prepareForPassive();
79
virtual bool ensureVisibilityAfterSelect() {
82
virtual int itemsPerPage();
83
virtual void setSortMode(KrViewProperties::SortSpec mode);
85
// abstract item view classes
86
virtual QRect visualRect(const QModelIndex&) const;
87
virtual void scrollTo(const QModelIndex&, QAbstractItemView::ScrollHint = QAbstractItemView::EnsureVisible);
88
virtual QModelIndex indexAt(const QPoint&) const;
89
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction, Qt::KeyboardModifiers);
90
virtual int horizontalOffset() const;
91
virtual int verticalOffset() const;
92
virtual bool isIndexHidden(const QModelIndex&) const;
93
virtual void setSelection(const QRect&, QFlags<QItemSelectionModel::SelectionFlag>);
94
virtual QRegion visualRegionForSelection(const QItemSelection&) const;
95
virtual void updateGeometries();
96
virtual QRect mapToViewport(const QRect &rect) const;
88
virtual void refreshColors();
99
virtual void refreshColors();
91
void slotMakeCurrentVisible();
92
virtual void renameCurrentItem();
102
void slotMakeCurrentVisible();
103
virtual void renameCurrentItem();
104
virtual void currentChanged(const QModelIndex & current, const QModelIndex & previous);
96
virtual void initOperator();
98
virtual void keyPressEvent( QKeyEvent *e );
99
virtual void mousePressEvent ( QMouseEvent * );
100
virtual void mouseReleaseEvent ( QMouseEvent * );
101
virtual void mouseDoubleClickEvent ( QMouseEvent *ev );
102
virtual void mouseMoveEvent ( QMouseEvent * );
103
virtual void wheelEvent ( QWheelEvent * );
104
virtual bool event( QEvent * e );
105
virtual void dragEnterEvent(QDragEnterEvent *e);
106
virtual void dragMoveEvent(QDragMoveEvent *e);
107
virtual void dragLeaveEvent(QDragLeaveEvent *e);
108
virtual void dropEvent ( QDropEvent * );
109
virtual bool eventFilter(QObject *object, QEvent *event);
110
virtual bool viewportEvent ( QEvent * event );
111
virtual void paintEvent(QPaintEvent *e);
113
void showContextMenu( const QPoint & p );
114
int getItemHeight() const;
115
int elementWidth( const QModelIndex & index );
117
void intersectionSet( const QRect &, QVector<QModelIndex> & );
107
virtual void setup();
108
virtual void initOperator();
110
virtual void keyPressEvent(QKeyEvent *e);
111
virtual void mousePressEvent(QMouseEvent *);
112
virtual void mouseReleaseEvent(QMouseEvent *);
113
virtual void mouseDoubleClickEvent(QMouseEvent *ev);
114
virtual void mouseMoveEvent(QMouseEvent *);
115
virtual void wheelEvent(QWheelEvent *);
116
virtual bool event(QEvent * e);
117
virtual void dragEnterEvent(QDragEnterEvent *e);
118
virtual void dragMoveEvent(QDragMoveEvent *e);
119
virtual void dragLeaveEvent(QDragLeaveEvent *e);
120
virtual void dropEvent(QDropEvent *);
121
virtual bool eventFilter(QObject *object, QEvent *event);
122
virtual bool viewportEvent(QEvent * event);
123
virtual void paintEvent(QPaintEvent *e);
125
void showContextMenu(const QPoint & p);
126
int getItemHeight() const;
127
int elementWidth(const QModelIndex & index);
129
void intersectionSet(const QRect &, QVector<QModelIndex> &);
121
KrMouseHandler *_mouseHandler;
122
QHash<vfile *,KrInterBriefViewItem*> _itemHash;
126
QHeaderView * _header;
133
KrMouseHandler *_mouseHandler;
134
QHash<vfile *, KrInterBriefViewItem*> _itemHash;
138
QHeaderView * _header;
128
#endif // __krinterbriefview__