~ubuntu-branches/ubuntu/vivid/krusader/vivid-proposed

« back to all changes in this revision

Viewing changes to krusader/Panel/krinterbriefview.h

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-05-05 22:26:37 UTC
  • mfrom: (3.1.4 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100505222637-ydv3cwjwy365on2r
Tags: 1:2.1.0~beta1-1ubuntu1
* Merge from Debian Unstable.  Remaining changes:
  - Retain Kubuntu doc path

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***************************************************************************
2
 
                       krinterbriefview.h  -  description
3
 
                             -------------------
4
 
    begin                : Sat Feb 14 2009
5
 
    copyright            : (C) 2009+ by Csaba Karai
6
 
    email                : 
7
 
 ***************************************************************************/
8
 
 
9
 
/***************************************************************************
10
 
 *                                                                         *
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.                                   *
15
 
 *                                                                         *
16
 
 ***************************************************************************/
17
 
 
18
 
#ifndef __krinterbriefview__
19
 
#define __krinterbriefview__
20
 
 
21
 
#include "krview.h"
 
1
/*****************************************************************************
 
2
 * Copyright (C) 2009 Csaba Karai <cskarai@freemail.hu>                      *
 
3
 *                                                                           *
 
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.                                       *
 
8
 *                                                                           *
 
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.                              *
 
13
 *                                                                           *
 
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
 *****************************************************************************/
 
18
 
 
19
#ifndef KRINTERBRIEFVIEW_H
 
20
#define KRINTERBRIEFVIEW_H
22
21
 
23
22
#include <QAbstractItemView>
24
23
#include <QVector>
25
24
#include <QFont>
26
25
 
 
26
#include "krview.h"
 
27
 
27
28
class KrInterBriefViewItem;
28
29
class KrMouseHandler;
29
30
class KrVfsModel;
30
31
class QHeaderView;
31
32
 
32
 
class KrInterBriefView : public QAbstractItemView, public KrView {
33
 
        friend class KrInterBriefViewItem;
34
 
        Q_OBJECT
 
33
class KrInterBriefView : public QAbstractItemView, public KrView
 
34
{
 
35
    Q_OBJECT
 
36
    friend class KrInterBriefViewItem;
35
37
 
36
38
public:
37
 
        KrInterBriefView( QWidget *parent, bool &left, KConfig *cfg = krConfig );
38
 
        virtual ~KrInterBriefView();
39
 
 
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);
57
 
        virtual void sort();
58
 
        virtual void clear();
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 & );
65
 
        
66
 
        static KrView* create( QWidget *parent, bool &left, KConfig *cfg ) { return new KrInterBriefView( parent, left, cfg ); }
67
 
        
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);
73
 
        
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;
86
 
        
 
39
    KrInterBriefView(QWidget *parent, bool &left, KConfig *cfg = krConfig);
 
40
    virtual ~KrInterBriefView();
 
41
 
 
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);
 
59
    virtual void sort();
 
60
    virtual void clear();
 
61
    virtual void updateView();
 
62
    virtual void updateItem(vfile* item);
 
63
    virtual void updateItem(KrViewItem* item);
 
64
    virtual QModelIndex getCurrentIndex() {
 
65
        return currentIndex();
 
66
    }
 
67
    virtual bool isSelected(const QModelIndex &ndx) {
 
68
        return selectionModel()->isSelected(ndx);
 
69
    }
 
70
    virtual void selectRegion(KrViewItem *, KrViewItem *, bool);
 
71
    KrInterBriefViewItem * getKrInterViewItem(const QModelIndex &);
 
72
 
 
73
    static KrView* create(QWidget *parent, bool &left, KConfig *cfg) {
 
74
        return new KrInterBriefView(parent, left, cfg);
 
75
    }
 
76
 
 
77
    virtual void prepareForActive();
 
78
    virtual void prepareForPassive();
 
79
    virtual bool ensureVisibilityAfterSelect() {
 
80
        return false;
 
81
    }
 
82
    virtual int  itemsPerPage();
 
83
    virtual void setSortMode(KrViewProperties::SortSpec mode);
 
84
 
 
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;
 
97
 
87
98
public slots:
88
 
        virtual void refreshColors();
89
 
        
 
99
    virtual void refreshColors();
 
100
 
90
101
protected slots:
91
 
        void slotMakeCurrentVisible();
92
 
        virtual void renameCurrentItem();
93
 
        
 
102
    void slotMakeCurrentVisible();
 
103
    virtual void renameCurrentItem();
 
104
    virtual void currentChanged(const QModelIndex & current, const QModelIndex & previous);
 
105
 
94
106
protected:
95
 
        virtual void setup();
96
 
        virtual void initOperator();
97
 
        
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);
112
 
        
113
 
        void showContextMenu( const QPoint & p );
114
 
        int getItemHeight() const;
115
 
        int elementWidth( const QModelIndex & index );
116
 
        
117
 
        void intersectionSet( const QRect &, QVector<QModelIndex> & );
118
 
        
 
107
    virtual void setup();
 
108
    virtual void initOperator();
 
109
 
 
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);
 
124
 
 
125
    void showContextMenu(const QPoint & p);
 
126
    int getItemHeight() const;
 
127
    int elementWidth(const QModelIndex & index);
 
128
 
 
129
    void intersectionSet(const QRect &, QVector<QModelIndex> &);
 
130
 
119
131
private:
120
 
        KrVfsModel *_model;
121
 
        KrMouseHandler *_mouseHandler;
122
 
        QHash<vfile *,KrInterBriefViewItem*> _itemHash;
123
 
        QFont _viewFont;
124
 
        int _numOfColumns;
125
 
        int _fileIconSize;
126
 
        QHeaderView * _header;
 
132
    KrVfsModel *_model;
 
133
    KrMouseHandler *_mouseHandler;
 
134
    QHash<vfile *, KrInterBriefViewItem*> _itemHash;
 
135
    QFont _viewFont;
 
136
    int _numOfColumns;
 
137
    int _fileIconSize;
 
138
    QHeaderView * _header;
127
139
};
128
 
#endif // __krinterbriefview__
 
140
 
 
141
#endif