File: dumpview.h

package info (click to toggle)
ostinato 1.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,840 kB
  • sloc: cpp: 46,226; makefile: 8
file content (62 lines) | stat: -rw-r--r-- 2,141 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
Copyright (C) 2010 Srivats P.

This file is part of "Ostinato"

This is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>
*/

#include <QAbstractItemView>


class DumpView: public QAbstractItemView
{
public:    
    DumpView(QWidget *parent=0);

    QModelIndex indexAt( const QPoint &point ) const;
    void scrollTo( const QModelIndex &index, ScrollHint hint = EnsureVisible );
    QRect visualRect( const QModelIndex &index ) const;

protected:
    int horizontalOffset() const;
    bool isIndexHidden( const QModelIndex &index ) const;
    QModelIndex moveCursor( CursorAction cursorAction,
    Qt::KeyboardModifiers modifiers );
    void setSelection( const QRect &rect, QItemSelectionModel::SelectionFlags flags );
    int verticalOffset() const;
    QRegion visualRegionForSelection( const QItemSelection &selection ) const;
protected slots:
    void dataChanged( const QModelIndex &topLeft, 
            const QModelIndex &bottomRight,
            const QVector<int> &roles );
    void selectionChanged( const QItemSelection &selected,
    const QItemSelection &deselected );
    void paintEvent(QPaintEvent *event);

private:
    void populateDump(QByteArray &dump, int &selOfs, int &selSize, 
            QModelIndex parent = QModelIndex());
    bool inline isPrintable(char c) 
        {if ((c >= 32) && (c <= 126)) return true; else return false; }

private:
    QRect        mOffsetPaneTopRect;
    QRect        mDumpPaneTopRect;
    QRect        mAsciiPaneTopRect;
    int            mSelectedRow, mSelectedCol;
    int            mLineHeight;
    int            mCharWidth;
};